我有一个 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>