C# 禁用WPF组合框的下拉菜单
我有一个组合框,如下所示:C# 禁用WPF组合框的下拉菜单,c#,.net,wpf,xaml,combobox,C#,.net,Wpf,Xaml,Combobox,我有一个组合框,如下所示: <ComboBox Height="31" Margin="7,7,0,0" Name="callerID" IsEditable="True" Background="LightBlue" KeyDown="callerIDbar_KeyDown" Foreground="White" FontSize="17" FontWeight="Bold" HorizontalContentAlignment="Center" VerticalAlignment=
<ComboBox Height="31" Margin="7,7,0,0" Name="callerID" IsEditable="True" Background="LightBlue" KeyDown="callerIDbar_KeyDown" Foreground="White" FontSize="17" FontWeight="Bold" HorizontalContentAlignment="Center" VerticalAlignment="Top" Grid.Row="0" Grid.Column="0" />
这一切都很好。我填充项目
主要是因为我喜欢由组合框
的项目
集合中的值驱动的自动完成。有没有办法让XAML禁用下拉错误并禁用下拉菜单?例如,制作一个简单的自动完成文本框控件
我已经看到了完整的
TextBox
控件,这些控件包含大量代码和复杂的标记,这不是我想要做的。我只需要禁用下拉菜单的显示功能。您可以处理DropDownOpened
事件,然后将其关闭。因此,在XAML中,您可以得到:
<ComboBox x:Name="cb" DropDownOpened="cb_DropDownOpened"/>
我预先接受此解决方案,然后将MaxDropDownHeight
设置为0。
您的选择。我相信您必须更改模板。从我所看到的来看,它有点大……您正在寻找一个
自动完成文本框
。你可以在商店里找到一个。顺便说一句,不要在WPF的过程代码中操作UI元素。为此创建一个合适的ViewModel。@Tico您能否详细介绍一下更改模板的内容以及可能需要做什么?我不是一个专职的WPF开发人员。@HighCore,是的,我担心我可能必须包含另一个资源或使用一个已经烘焙的控件。这样问是我走这条路之前的最后一次努力。感谢您的推荐。@kmark2如果您右键单击您的组合框->编辑模板->编辑副本…
您将看到控件是如何设计的。但是既然你已经说过你不是一个全职的WPF开发人员,那现在可能非常困难!。核心建议可能是你的答案!
<ComboBox x:Name="cb" DropDownOpened="cb_DropDownOpened"/>
private void cbCategoria_DropDownOpened(object sender, EventArgs e)
{
ComboBox cb = sender as ComboBox;
cb.IsDropDownOpen = false;
}