【问题标题】:Disable ComboBox and make the color of the ComboBox Gray禁用 ComboBox 并使 ComboBox 的颜色变为灰色
【发布时间】:2017-06-06 14:56:33
【问题描述】:
  1. 我有一个组合框。我想让 ComboBox 禁用并在禁用时将颜色更改为 DarkGray。我希望在我的应用程序启动时进行此操作。

  2. 选择一个按钮后,它应该再次启用组合框并将其颜色更改为白色。

我们将不胜感激选项 1 的任何解决方案。

提前致谢。

【问题讨论】:

  • 关键字:样式触发器...

标签: wpf wpf-controls wpfdatagrid


【解决方案1】:

在 XAML 标记中将 ComboBoxIsEnabled 属性设置为 false

<ComboBox x:Name="cmb" IsEnabled="False">
    <ComboBoxItem>1</ComboBoxItem>
    <ComboBoxItem>2</ComboBoxItem>
    <ComboBoxItem>3</ComboBoxItem>
</ComboBox>

...然后在Button的点击事件处理程序中将其设置为true

<Button Content="Enabled" Click="Button_Click" />

private void Button_Click(object sender, RoutedEventArgs e)
{
    cmb.IsEnabled = true;
}

默认颜色就足够了。如果您想更改这些,则必须按照此处的建议修改ComboBoxControlTemplatehttps://blog.magnusmontin.net/2014/04/30/changing-the-background-colour-of-a-combobox-in-wpf-on-windows-8/

【讨论】:

  • 谢谢mm8。我尝试了您建议的上述选项。它确实为我启用和禁用,但是当组合框被禁用时,颜色不会将其更改为灰色。但是,我尝试了控制模板选项。第一次加载页面时,它确实将颜色更改为灰色。但启用后颜色不会变回白色。
【解决方案2】:

在表单构造函数中,您必须禁用组合框并更改其背景颜色:

public Form1()
        {
            InitializeComponent();
            comboBox1.Enabled = false;
            comboBox1.BackColor = Color.DarkGray;
        }

当您的选项 2(例如使用事件处理程序)发生时添加此代码:

comboBox1.Enabled = true;
comboBox1.BackColor = Color.White;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多