• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Problem ze znikającymi obramowaniami kontrolek UWP

0 głosów
20 wizyt
pytanie zadane 18 lutego w C# i .NET przez multim Obywatel (1,450 p.)
zamknięte 19 lutego przez multim

Jeżeli użytkownik wprowadza dane do kontrolki UWP właściwość BorderBrush jest nie zmieniana. Kiedy jednak edytuje jej zawartość z poziomu kodu po zmianie wartości obramowanie znika.

Czy jest możliwość wyłączenia lub nadpisania tego zachowania?

XAML:

<!-- Przykładowe kontrolki w których występuje problem -->
<TextBox Name="DescriptionCtrl" 
                 Style="{StaticResource TextBoxStyle}" 
                 Grid.Row="1" Grid.Column="1" 
                 TextChanged="TextCtrl_TextChanged" />

<ComboBox Name="CategoryCtrl" 
                  Style="{StaticResource ComboBoxStyle}"  
                  Grid.Row="2" Grid.Column="1" 
                  ItemsSource="{x:Bind categories}" 
                  SelectionChanged="ComboBoxCtrl_SelectionChanged" />

<!-- fragment pliku ze stylami -->
<Style TargetType="TextBox" x:Key="TextBoxStyle">
            <Setter Property="VerticalAlignment" Value="Center" />
            <Setter Property="HorizontalAlignment" Value="Center" />
            <Setter Property="Width" Value="300" />
            <Setter Property="TextAlignment" Value="Center" />
</Style>
<Style TargetType="ComboBox" x:Key="ComboBoxStyle">
            <Setter Property="VerticalAlignment" Value="Center" />
            <Setter Property="HorizontalAlignment" Value="Center" />
            <Setter Property="Width" Value="300" />
 </Style>

C#:

 public MyPage()
{
           //fragment:
           defaultBorderColor = AutoSuggestBoxCtrl.BorderBrush;
}

private void NameCtrl_SuggestionChosen(AutoSuggestBox sender, AutoSuggestBoxSuggestionChosenEventArgs args)
{
            StoreProduct product = args.SelectedItem as StoreProduct;
            DescriptionCtrl.Text = product.Description;
            Category category = FindCategory(product);
            CategoryCtrl.SelectedItem = category;
            Manufacturer manufacturer = FindManufacturer(product);
            ManufacturerCtrl.SelectedItem = manufacturer;
            PriceCtrl.Text = product.Price.ToString();
            QuantityCtrl.Text = product.Quantity.ToString();
}

private void TextCtrl_TextChanged(object sender, TextChangedEventArgs e)
{
            TextBox textCtrl = sender as TextBox;
            textCtrl.BorderBrush = defaultBorderColor;
}

 

 

 

Przed:

Po:

komentarz zamknięcia: Problem został rozwiązany
1
komentarz 19 lutego przez MikDal Mądrala (5,140 p.)
Czy takie zachowanie występuje również w nowym projekcie, czy tylko w tym?
komentarz 19 lutego przez multim Obywatel (1,450 p.)
edycja 19 lutego przez multim
Problemem było nadpisywanie właściwości BorderBrush w innej metodzie.
Po zmianie zawartości kontrolki ta właściwość była zastępowana wartością defaultBorderColor, która nie była zainicjalizowana (przyjmuje wartość null dla AutoSuggestBox).

Podobne pytania

+1 głos
1 odpowiedź 40 wizyt
+1 głos
2 odpowiedzi 315 wizyt
0 głosów
1 odpowiedź 227 wizyt
pytanie zadane 30 września 2016 w Offtop przez Ultron682 Nowicjusz (120 p.)
Porady nie od parady
Komentarze do pytań nie służą do odpowiadania, od tego jest wydzielona sekcja odpowiedzi. Funkcją komentarzy jest natomiast możliwość uzyskania dodatkowych informacji na temat samego posta.Komentarze

61,378 zapytań

107,319 odpowiedzi

223,525 komentarzy

33,122 pasjonatów

Przeglądających: 334
Pasjonatów: 11 Gości: 323

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...