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>
这将做什么是在选择它时(无论控制状态如何)在列表框项目上设置突出显示背景颜色.
我的回答是基于已经给出这些答案的答案的帮助,以及以下博客:http://blogs.vbcity.com/xtab/archive/2009/06/29/9344.aspx
| 归档时间: | 
 | 
| 查看次数: | 14061 次 | 
| 最近记录: |