【发布时间】:2013-08-21 15:58:22
【问题描述】:
在我的程序中,我有一个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 不可见。
<Style TargetType="{x:Type TreeViewItem}" >
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TreeViewItem}">
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="True" >
<Setter Property="Foreground" Value="White" />
</Trigger>
<Trigger Property="IsSelected" Value="False" >
<Setter Property="Foreground" Value="Black" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
如何解决此问题,以便我的所有 TreeView 节点在选中时都显示为白色 foregrounds?
【问题讨论】:
-
如果我使用
TextBlock是否允许Foreground更改?
标签: c# wpf treeview foreground