• 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
23 wizyt
pytanie zadane 18 lutego w C# i .NET przez multim Obywatel (1,510 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,160 p.)
Czy takie zachowanie występuje również w nowym projekcie, czy tylko w tym?
komentarz 19 lutego przez multim Obywatel (1,510 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ź 42 wizyt
+1 głos
2 odpowiedzi 341 wizyt
0 głosów
1 odpowiedź 232 wizyt
pytanie zadane 30 września 2016 w Offtop przez Ultron682 Nowicjusz (120 p.)
Porady nie od parady
Pytania na temat serwisu SPOJ należy zadawać z odpowiednią kategorią dotyczącą tej strony.SPOJ

63,386 zapytań

109,654 odpowiedzi

229,100 komentarzy

44,412 pasjonatów

Przeglądających: 257
Pasjonatów: 12 Gości: 245

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.

...