如何在UWP

时间:2019-06-26 13:14:20

标签: c# uwp background border textblock

与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>

1 个答案:

答案 0 :(得分:0)

bitText.Parent投射到StackPanel,然后将Parent的{​​{1}}投射到StackPanel

Border