可编辑的组合框将不允许编写

时间:2018-06-20 16:25:46

标签: c# wpf

我正在使用具有以下代码创建的属性IsEditable=true的ComboBox:

ComboBox buffer = new ComboBox()
{
        BorderBrush = null,
        Foreground = new SolidColorBrush(Colors.Black),
        Background = null,
        FontFamily = new FontFamily("Segoe UI Semilight"),
        FontSize = 24,
        IsEditable = true,
        IsTextSearchEnabled = true,
        IsTextSearchCaseSensitive = false,
        StaysOpenOnEdit = true,
};

它被添加到ScrollViewer的WrapPanel中,定义如下:

<ScrollViewer Margin="582,107,142,240" 
              HorizontalAlignment="Left" 
              VerticalAlignment="Top" 
              Height="226" Width="357">
        <Border Background="White" 
                CornerRadius="10" 
                BorderBrush="Black" 
                BorderThickness="1" 
                MouseDown="Border_MouseDown" 
                MouseLeave="Border_MouseLeave" 
                MouseUp="Border_MouseUp">
            <WrapPanel x:Name="sourcesWrapPanel" Width="357"/>
        </Border>
</ScrollViewer>

在手动选择时它可以正常工作,但是无法进行书写(按键不会输入任何文本)。唯一有效的方法是使用鼠标或向上/向下箭头选择一个项目,然后使用退格键删除其中的字符。我想念什么?

2 个答案:

答案 0 :(得分:0)

看看ComboBox.IsEditable的文档:

enter image description here

我认为您需要将ComboBox.IsReadOnly设置为false

答案 1 :(得分:0)

在父控件中将e.Handled设置为true,因此仅对子(PreviewKeyDown)执行ComboBox处理程序,这就是为什么我只能删除文本的原因或粘贴但不写任何内容。