【发布时间】:2017-06-06 14:56:33
【问题描述】:
我有一个组合框。我想让 ComboBox 禁用并在禁用时将颜色更改为 DarkGray。我希望在我的应用程序启动时进行此操作。
选择一个按钮后,它应该再次启用组合框并将其颜色更改为白色。
我们将不胜感激选项 1 的任何解决方案。
提前致谢。
【问题讨论】:
-
关键字:样式触发器...
标签: wpf wpf-controls wpfdatagrid
我有一个组合框。我想让 ComboBox 禁用并在禁用时将颜色更改为 DarkGray。我希望在我的应用程序启动时进行此操作。
选择一个按钮后,它应该再次启用组合框并将其颜色更改为白色。
我们将不胜感激选项 1 的任何解决方案。
提前致谢。
【问题讨论】:
标签: wpf wpf-controls wpfdatagrid
在 XAML 标记中将 ComboBox 的 IsEnabled 属性设置为 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;
}
默认颜色就足够了。如果您想更改这些,则必须按照此处的建议修改ComboBox 的ControlTemplate:https://blog.magnusmontin.net/2014/04/30/changing-the-background-colour-of-a-combobox-in-wpf-on-windows-8/
【讨论】:
在表单构造函数中,您必须禁用组合框并更改其背景颜色:
public Form1()
{
InitializeComponent();
comboBox1.Enabled = false;
comboBox1.BackColor = Color.DarkGray;
}
当您的选项 2(例如使用事件处理程序)发生时添加此代码:
comboBox1.Enabled = true;
comboBox1.BackColor = Color.White;
【讨论】: