Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 禁用WPF组合框的下拉菜单_C#_.net_Wpf_Xaml_Combobox - Fatal编程技术网

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;
    }