Vij*_*jay 24 wpf styles listbox
我有什么?
我有一个ListBoxXML文件中的项目.给定DynamicResource的Style财产和书面触发器IsSelected在ItemContainerStyle.
我想做什么?
即使焦点移出后,我仍希望保持所选项目突出显示ListBox.
我面临什么问题?
当我选择一个项目时,IsSelected触发器中指定的样式有效.但是,当我将焦点移出列表框(按Tab键或单击其他控件)时,所选项目将失去其样式.有什么方法可以保留所选的项目风格吗?
提前致谢!
Thi*_*ies 35
在某些情况下,引用的答案将解决问题,但并不理想,因为它在控件被禁用/只读时中断,并且它也会覆盖颜色方案,而不是利用它们.我的建议是在ListBox标签中添加以下内容:
<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>
Run Code Online (Sandbox Code Playgroud)
这将做什么是在选择它时(无论控制状态如何)在列表框项目上设置突出显示背景颜色.
我的回答是基于已经给出这些答案的答案的帮助,以及以下博客:http://blogs.vbcity.com/xtab/archive/2009/06/29/9344.aspx
| 归档时间: |
|
| 查看次数: |
14061 次 |
| 最近记录: |