【问题标题】:How do I make the WPF ComboBox items visible, but non-selectable?如何使 WPF ComboBox 项目可见但不可选择?
【发布时间】:2020-10-30 01:43:54
【问题描述】:

我正在尝试使我的 WPF 组合框的项目可见(最好是灰色的),但不允许用户使用 c# 代码选择它们。

我尝试了以下方法:

comboBoxName.IsHitTestVisible = false comboBoxName.Focusable = false

但是,这会阻止他们一起看到组合框的内容。如何使内容可见但不能在 c# 中选择?

【问题讨论】:

  • 一个包含不可选择项目的组合框一开始听起来是个坏主意。无论如何,使用 <Setter Property="IsEnabled" Value="False"/> 声明一个 ItemContainerStyle。

标签: c# wpf combobox


【解决方案1】:

设置将禁用每个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;

【讨论】:

    猜你喜欢
    • 2021-12-15
    • 2015-11-05
    • 1970-01-01
    • 1970-01-01
    • 2016-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多