WPF TreeViewItem背景
当
TreeView
(或应用程序)失去焦点时,如何更改所选TreeViewItem
的Background
。默认情况下,所选项目在此情况下为浅灰色背景。
编辑:第一次回答后尝试:但是找不到带有TargetName="Bd"
的元素。
<TreeView>
<TreeView.Resources>
<Style x:Key="{x:Type TreeViewItem}" TargetType="{x:Type TreeViewItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TreeViewItem}">
<ControlTemplate.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsSelected" Value="True"/>
<Condition Property="IsSelectionActive" Value="False"/>
</MultiTrigger.Conditions>
<Setter TargetName="Bd" Property="Background" Value="{DynamicResource {x:Static SystemColors.ControlBrushKey}}" />
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" />
</MultiTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</TreeView.Resources>
<TreeViewItem Header="Test1" IsExpanded="True">
<TreeViewItem Header="Test2" />
<TreeViewItem Header="Test3" />
<TreeViewItem Header="Test4" />
<TreeViewItem Header="Test5" />
</TreeViewItem>
</TreeView>
没有找到相关结果
已邀请:
3 个回复
眠缝
的默认样式。特别是,您需要修改以下触发器:
正如您所看到的,如果项目被聚焦且选择未激活(焦点位于其他位置),则触发器将背景设置为
。 更新: Aero主题的完整风格
如下所示:
为此,你还需要这个:
在所有这些中,您只需要修改您感兴趣的部分(如果选择处于非活动状态,则为背景颜色),并将这些样式放在主窗口的App.xaml的资源部分中。
碧肮械淌设
您可以指定任何其他颜色。建议使用不透明度,因为如果您有多个TreeView / ListBox,则可以确定哪一个是聚焦的。但是,编辑完整样式当然可以为将来的自定义带来更大的灵活性。 带渐变的样本:
翰冒绢县