В отличие от WPF, TextBlock не имеет свойства фона.
Я видел, что для обхода этой проблемы можно заключить текстовый блок в рамку и изменить фон рамки.
Теперь я хочу изменить фон рамки в событии, которое запускается при загрузке текстового блока.
проверка свойства Parent сработавшего текстового блока. Я вижу, что он имеет только ссылку на панель стека, но не на границу. Как изменить фон границ в функции события?
неработающий код, который я пробовал, это:
private void BitText_Loaded(object sender, RoutedEventArgs e)
{
TextBlock bitText = sender as TextBlock;
Border border = bitText.Parent as Border;
if ((int)bitText.DataContext == 1)
{
bitText.Foreground = new SolidColorBrush(Windows.UI.Colors.LightGreen);
border.Background = new SolidColorBrush(Windows.UI.Colors.DarkGreen);
}
else
{
bitText.Foreground = new SolidColorBrush(Windows.UI.Colors.Gray);
border.Background = new SolidColorBrush(Windows.UI.Colors.LightGray);
}
}
Код XAML:
<ListBox.ItemTemplate>
<DataTemplate>
<Border Background="Gray">
<StackPanel Orientation="Horizontal">
<TextBlock x:Name="BitText" Text="{Binding}" Loaded="BitText_Loaded"/>
</StackPanel>
</Border>
</DataTemplate>
</ListBox.ItemTemplate>