如何隐藏组合框中的箭头按钮?
How to hide arrow button in combobox?
现在我只想通过代码下拉组合框。
IsDropDownOpen = true;
那么如何隐藏(而不是禁用)组合框中的箭头按钮?
要隐藏 ComboBoxToggleButton
,您必须编辑组合框模板的副本。
右键单击组合框并select编辑模板。 Select 编辑副本并为其命名。 (考虑到内容大小,您可能希望将副本放入它自己的资源字典中)
生成的 ComboBox
样式将引用两个模板,ComboBoxTemplate
和 ComboBoxEditableTemplate
。
在每个模板中,您会发现一个 ToggleButton
和 x:Name:toggleButton
,即您要隐藏的切换按钮。
您可以完全删除它,或者使用给定 Visibility
属性 的 WPF。你来电 ;)
我会考虑在组合框的顶部放置一个文本框并隐藏它的那一部分。
类似于:
<Grid>
<ComboBox Name="YourCombo"/>
<TextBox Name="VisibleValueTextBox"/>
</Grid>
您可以将 VisibleValueTextBox 的文本绑定到 YourCombo 的文本。
当您将其下拉时,下拉菜单仍将位于所有内容之上。
我不确定您的全部要求是什么,但这是一种可行的快速且可能相当肮脏的方法。
现在我只想通过代码下拉组合框。
IsDropDownOpen = true;
那么如何隐藏(而不是禁用)组合框中的箭头按钮?
要隐藏 ComboBoxToggleButton
,您必须编辑组合框模板的副本。
右键单击组合框并select编辑模板。 Select 编辑副本并为其命名。 (考虑到内容大小,您可能希望将副本放入它自己的资源字典中)
生成的 ComboBox
样式将引用两个模板,ComboBoxTemplate
和 ComboBoxEditableTemplate
。
在每个模板中,您会发现一个 ToggleButton
和 x:Name:toggleButton
,即您要隐藏的切换按钮。
您可以完全删除它,或者使用给定 Visibility
属性 的 WPF。你来电 ;)
我会考虑在组合框的顶部放置一个文本框并隐藏它的那一部分。 类似于:
<Grid>
<ComboBox Name="YourCombo"/>
<TextBox Name="VisibleValueTextBox"/>
</Grid>
您可以将 VisibleValueTextBox 的文本绑定到 YourCombo 的文本。 当您将其下拉时,下拉菜单仍将位于所有内容之上。
我不确定您的全部要求是什么,但这是一种可行的快速且可能相当肮脏的方法。