当焦点移出WPF列表框时,所选项目将失去样式
我有什么 我有一个用XML文件中的项目填充的列表框。在ItemContainerStyle中为IsSelected提供了样式属性的DynamicSource和写入触发器 我想做什么 即使在焦点移出列表框后,我仍希望所选项目保持高亮显示 我面临什么问题 当我选择一个项目时,IsSelected触发器中指定的样式起作用。但是,当我将焦点移出列表框时,按tab键或单击其他控件,所选项目将失去其样式。是否有任何方法可以保留所选项目的样式当焦点移出WPF列表框时,所选项目将失去样式,wpf,listbox,styles,Wpf,Listbox,Styles,我有什么 我有一个用XML文件中的项目填充的列表框。在ItemContainerStyle中为IsSelected提供了样式属性的DynamicSource和写入触发器 我想做什么 即使在焦点移出列表框后,我仍希望所选项目保持高亮显示 我面临什么问题 当我选择一个项目时,IsSelected触发器中指定的样式起作用。但是,当我将焦点移出列表框时,按tab键或单击其他控件,所选项目将失去其样式。是否有任何方法可以保留所选项目的样式 提前谢谢 如果只设置背景色,请尝试替换列表框的ControlBru
提前谢谢 如果只设置背景色,请尝试替换列表框的ControlBrush,如所示。在某些情况下会解决问题,但并不理想,因为当控件被禁用/只读时,它会中断,并且还会覆盖颜色方案,而不是利用它们。我的建议是在列表框标记中添加以下内容:
<ListBox....>
<ListBox.Resources>
<Style TargetType="ListBoxItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBoxItem">
<Border Name="Border" Padding="2" SnapsToDevicePixels="true">
<ContentPresenter />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="true">
<Setter TargetName="Border" Property="Background"
Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListBox.Resources>
</ListBox>
无论控件状态如何,只要选中列表框项,都会在列表框项上设置高亮背景色
我的答案基于对这些答案已经给出的答案的帮助,以及以下博客:Oops!!这是错误的。很抱歉嗨,我面临着同样的问题,并尝试了发布的解决方案,但我无法解决问题。你能编辑你的帖子,让它包含解决方案吗?thanks@jpsstavares尝试第二种解决方案——更流行但尚未被接受的解决方案——它可以工作,并且不会破坏其他WPF UI元素。让我试试看。谢谢这是一个坏主意-对于关闭视觉主题的用户来说,这将搞乱很多事情-滚动条和按钮将更改为当前的突出显示颜色默认为蓝色-因此您的内部按钮和ListView滚动条将变为蓝色,非常糟糕!。