ListBox IsEnabled

时间:2017-10-26 14:00:23

标签: c# wpf listbox

我有一个带AlternationCount=2的WPF列表框 我想禁用框中项目的选择,但我想保留颜色。

当我设置IsEnabled="False"时,列表框中的项目选择被禁用,但文本和背景变为灰色。

如何禁用选择,但保持前景色和交替背景色,就好像它已启用一样?

1 个答案:

答案 0 :(得分:0)

ListBoxItem中有一些可能有用的属性:FocusableIsHitTestVisible。将其中一个设置为false以禁用视图中的选择。 (使用Focusable="false" ListBoxItems将改变鼠标上的颜色)。设置IsEnabled="false"也会阻止选择,但它会另外更改前景色。

<ListBox>
    <ListBox.ItemContainerStyle>
        <Style TargetType="ListBoxItem">
            <Setter Property="Focusable" Value="False"/>
            <!--<Setter Property="IsHitTestVisible" Value="False"/>-->
        </Style>
    </ListBox.ItemContainerStyle>
</ListBox>

请注意,仍然可以使用ListBox属性通过代码设置选择:例如SelectedIndex="3"