选择时更改TreeViewItem的前景
在我的程序中,我有一个TreeView
,用户将从中选择不同的项目。 我的TreeView
中有一些项目是在我的c#代码隐藏中创建的。
像这样:
public static TreeViewItem newItem = new TreeViewItem() //Child Node { Header = new StackPanel //ICON { Orientation = Orientation.Horizontal, Children = { new Border { Width = 12, Height = 14, Background = Brushes.Blue, BorderThickness = new Thickness(1.0), BorderBrush = Brushes.Black }, new Label { Content = "Node1" } } } };
我希望这些项目在选中时显示WHITE foregrounds
(就像默认节点行为一样)。
这是我到目前为止在XAML中尝试过的。 这是我为TreeViewItems
设置的样式模板。 我没有收到编译器错误,但由于某些原因,当我运行程序时,我的TreeView
不可见。
如何解决这个问题,以便所有TreeView
节点在选中时显示白色foregrounds
?
这是因为你完全重写了模板,而你却没有写任何东西。 只是设置触发器,不一定要在模板中执行它们,您只需在Style
设置它们即可。 模板通常设置为更改可视树中的元素。 试试这个例子:
有关更多信息,请参阅:
MSDN上的样式和模板
MSDN上的TreeView样式/模板示例
EDIT
试试这个:
public TreeViewItem newItem = new TreeViewItem() //Child Node { Header = new StackPanel { Orientation = Orientation.Horizontal, Children = { new Border { Width = 12, Height = 14, Background = Brushes.Blue, BorderThickness = new Thickness(1.0), BorderBrush = Brushes.Black }, new Label { Content = "Node1", Foreground = Brushes.Black, } } } }; private void AddItem_Click(object sender, RoutedEventArgs e) { // Set Selected handler on Selected event newItem.Selected += new RoutedEventHandler(newItem_Selected); // Set Unselected handler on Unselected event newItem.Unselected += new RoutedEventHandler(newItem_Unselected); // Add your item MyTreeView.Items.Add(newItem); } // Set the black color for foreground private void newItem_Unselected(object sender, RoutedEventArgs e) { TreeViewItem MyTreeViewItem = sender as TreeViewItem; StackPanel MyStackPanel = MyTreeViewItem.Header as StackPanel; Label MyLabel = MyStackPanel.Children[1] as Label; MyLabel.Foreground = Brushes.Black; } // Set the white color for foreground private void newItem_Selected(object sender, RoutedEventArgs e) { TreeViewItem MyTreeViewItem = sender as TreeViewItem; StackPanel MyStackPanel = MyTreeViewItem.Header as StackPanel; Label MyLabel = MyStackPanel.Children[1] as Label; MyLabel.Foreground = Brushes.White; }
Note:
如果您使用TreeViewItem
的模板,则可以缩短此代码并使其更容易。
上述就是C#学习教程:选择时更改TreeViewItem的前景分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/987390.html