Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.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
使用快捷键选择项目的WPF组合框_Wpf_Combobox_Selection_Shortcuts - Fatal编程技术网

使用快捷键选择项目的WPF组合框

使用快捷键选择项目的WPF组合框,wpf,combobox,selection,shortcuts,Wpf,Combobox,Selection,Shortcuts,我在WPF中有一个组合框,它使用以下数据模板。在论坛的帮助下,我能够让它正常显示和运行 当下拉菜单打开时,我希望用户能够键入一封信,并让下拉菜单跳到该选项。我看到了两种实现方式,一种是它基本上在组合框的文本框中捕获键盘输入,并根据用户键入的内容进行选择。这允许用户等待并键入更多文本,以添加到条件中。另一种情况是,键盘输入似乎不会在任何地方被捕获,如果您键入一个字母,请等待几秒钟,然后键入另一个字母,它会将您带到从您键入的第二个字母开始的选择。如果要键入搜索条件的多个字母,则必须将它们快速键入在一

我在WPF中有一个组合框,它使用以下数据模板。在论坛的帮助下,我能够让它正常显示和运行

当下拉菜单打开时,我希望用户能够键入一封信,并让下拉菜单跳到该选项。我看到了两种实现方式,一种是它基本上在组合框的文本框中捕获键盘输入,并根据用户键入的内容进行选择。这允许用户等待并键入更多文本,以添加到条件中。另一种情况是,键盘输入似乎不会在任何地方被捕获,如果您键入一个字母,请等待几秒钟,然后键入另一个字母,它会将您带到从您键入的第二个字母开始的选择。如果要键入搜索条件的多个字母,则必须将它们快速键入在一起

无论哪种方法我都会很满意。他们只能选择列表中的项目,所以我不太喜欢在组合框中放置编辑控件,以便他们可以输入任何想要的内容。我可以这样做,而不是验证他们的输入,但宁愿强迫他们选择列表中的内容

在本例中,它是一个系统颜色列表,超过140种,因此我需要一种快速绕过列表的方法

这是我正在使用的数据模板

    <DataTemplate x:Key="ColorSelectionComboBox" DataType="ComboBox">
        <StackPanel Orientation="Horizontal">
            <Rectangle Width="16" Height="16" Margin="0,2,4,2">
                <Rectangle.Fill>
                    <SolidColorBrush Color="{Binding Color}"/>
                </Rectangle.Fill>
            </Rectangle>
            <TextBlock Text="{Binding Name}"/>
        </StackPanel>
    </DataTemplate>

欢迎提出任何想法。

ComboBox内置支持使用键盘进行增量搜索。我还没有实际使用过它,所以我不适合帮助进行高级故障排除,但我知道它就在那里


看起来您需要将组合框的属性设置为true,然后将附加属性设置为要搜索的文本的绑定路径,以便与文本块文本相对应。

是否需要类似于下拉列表中列出建议的自动完成框?太好了,这正是我需要的。