Skip to main content
 首页 » 编程设计

c#之禁用选择或聚焦列表框项目

2024年04月12日37powertoolsteam

我有一个 WPF 应用程序,其中包含动态生成的列表框项目。我想禁用列表框项目的选择或“可聚焦性”,而不禁用每个列表框项目中的所有控件(它们包含用户需要能够交互的按钮和链接)。下面是我试图阻止的图片:

这张图片显示了两个列表框项目。我单击了顶部列表框项目的背景区域并选择了它,这使得文本难以阅读并且在视觉上没有吸引力。

请您参考如下方法:

您可以将 ListBoxItem.IsEnabled 属性设置为 false,如下所示:

<ListBox x:Name="_sampleListBox"> 
    <ListBox.ItemContainerStyle> 
        <Style TargetType="ListBoxItem"> 
            <Setter Property="IsEnabled" Value="False"/> 
        </Style> 
    </ListBox.ItemContainerStyle> 
</ListBox> 

这将使项目无法被选择。不过,它可能看起来有点有趣...您可以尝试使用这样的模板:

<ListBox x:Name="_sampleListBox"> 
    <ListBox.ItemContainerStyle> 
        <Style TargetType="ListBoxItem"> 
            <Setter Property="IsEnabled" Value="False"/> 
            <Style.Triggers> 
                <Trigger Property="IsEnabled" Value="False"> 
                    <Setter Property="Foreground" Value="Red" /> 
                </Trigger> 
            </Style.Triggers> 
        </Style> 
    </ListBox.ItemContainerStyle> 
</ListBox>