我想知道如何以编程方式禁用ComboBox下拉按钮。我看到了许多类似的主题,但所有这些主题都有一个XAML解决方案。
顺便说一下,如果有人知道如何禁用所有ComboBox控件设计,并仅保留项目模板可见,那也可能会有所帮助。
更新
这是我的XAML定义
这是我使用它的方式:
顺便说一下,如果有人知道如何禁用所有ComboBox控件设计,并仅保留项目模板可见,那也可能会有所帮助。
更新
这是我的XAML定义
<ComboBox Name="lang_ComboBox" SelectionChanged="LanguageSelection_ComboBox_SelectionChanged"/>
这是我使用它的方式:
String text = "dorf";
BitmapImage image = new BitmapImage(new Uri("http://img88.imageshack.us/img88/4351/butchermi4.png"));
lang_ComboBox.Width = 100;
lang_ComboBox.Height = 30;
Grid sp;
for (int i = 0; i < 5; i++)
{
ColumnDefinition gridCol1 = new ColumnDefinition();
gridCol1.Width = new GridLength(30.0);
ColumnDefinition gridCol2 = new ColumnDefinition();
gridCol2.Width = new GridLength(70.0);
sp = new Grid()
{
Width = 100,
Height = 30
};
Image im = new Image()
{
Source = image,
Width = 25,
Height = 25
};
Label la = new Label()
{
Content = text
};
sp.ColumnDefinitions.Add(gridCol1);
sp.ColumnDefinitions.Add(gridCol2);
Grid.SetColumn(im, 0);
Grid.SetColumn(la, 1);
sp.Children.Add(la);
sp.Children.Add(im);
lang_ComboBox.Items.Add(sp);
}
更新2 嗯,我现在明白了,我用错了单词。它应该是“隐藏”控件设计,但仍然可以从列表中选择。我的错误,抱歉。但是我知道如何使用Anatoliy Nokolaev的代码解决这个问题。要隐藏控件设计,我使用:
ToggleButton dropDownButton = GetFirstChildOfType<ToggleButton>(lang_ComboBox);
dropDownButton.Visibility = System.Windows.Visibility.Collapsed;
现在不需要显示组合框下拉菜单,但我会通过添加点击事件来编程调用它,这是唯一的不希望出现的行为,应该没问题了。
如果有更简单的方法,请告诉我 :)。
ComboBox
模板,你是如何安排它的?如果是的话,那么我可以在答案中给出一个示例。 - Anatoliy Nikolaev