如何使 WPF ComboBox 项目可见但不可选择?
How do I make the WPF ComboBox items visible, but non-selectable?
我试图使我的 WPF 组合框的项目可见(最好是灰色)但不允许用户使用 c# 代码 select 它们。
我试过以下方法:
comboBoxName.IsHitTestVisible = false
comboBoxName.Focusable = false
但是,这会阻止他们一起看到组合框的内容。如何使内容可见但不能在 c# 中编辑 select?
设置一个项目容器样式,将禁用每个 ComboBoxItem
。
<ComboBox x:Name="comboBoxName" ItemsSource="{Binding Collection}">
<ComboBox.ItemContainerStyle>
<Style TargetType="{x:Type ComboBoxItem}">
<Setter Property="IsEnabled" Value="False"/>
</Style>
</ComboBox.ItemContainerStyle>
</ComboBox>
如果您使用代码隐藏,可以像这样定义和应用项目容器样式。
var itemContainerStyle = new Style(typeof(ComboBoxItem));
var isEnabledSetter = new Setter(IsEnabledProperty, false);
itemContainerStyle.Setters.Add(isEnabledSetter);
comboBoxName.ItemContainerStyle = itemContainerStyle;
我试图使我的 WPF 组合框的项目可见(最好是灰色)但不允许用户使用 c# 代码 select 它们。
我试过以下方法:
comboBoxName.IsHitTestVisible = false
comboBoxName.Focusable = false
但是,这会阻止他们一起看到组合框的内容。如何使内容可见但不能在 c# 中编辑 select?
设置一个项目容器样式,将禁用每个 ComboBoxItem
。
<ComboBox x:Name="comboBoxName" ItemsSource="{Binding Collection}">
<ComboBox.ItemContainerStyle>
<Style TargetType="{x:Type ComboBoxItem}">
<Setter Property="IsEnabled" Value="False"/>
</Style>
</ComboBox.ItemContainerStyle>
</ComboBox>
如果您使用代码隐藏,可以像这样定义和应用项目容器样式。
var itemContainerStyle = new Style(typeof(ComboBoxItem));
var isEnabledSetter = new Setter(IsEnabledProperty, false);
itemContainerStyle.Setters.Add(isEnabledSetter);
comboBoxName.ItemContainerStyle = itemContainerStyle;