我想知道如何以编程方式禁用ComboBox下拉按钮。我见过很多类似的主题,但是所有这些都有XAML解决方案。
顺便说一句,如果有人知道如何禁用所有ComboBox控件设计,并且只显示项目模板,那么它也会有所帮助。
更新
它是我的XAML定义
还有我怎么使用它:
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(lang_ComboBox); dropDownButton.Visibility = System.Windows.Visibility.Collapsed;
有害的行为现在只是我无法显示组合框下拉菜单,但我将通过添加点击事件以编程方式调用它,应该会很好。
如果有任何最简单的方法可以告诉我:)。