如何在wpf组合框中点击文字?

时间:2017-09-27 14:18:06

标签: c# wpf

目前我的组合框工作正常,但我希望当用户按下我的组合框的文本字段时,dropdownmenu显示。

我可以在代码中执行此操作,例如使用MouseLeftButtonUp等事件,但这种方法效果不佳,尤其是在标题上连续多次按下鼠标左键时。

                <ComboBox Name="comboBox1" IsTextSearchEnabled="False"  HorizontalContentAlignment="Stretch" Grid.Column="1" IsEditable="True" DropDownClosed="OnDropDownClosed" Text="The title for my combobox" Margin="30,0,0,0" Grid.ColumnSpan="2"  IsReadOnly="True">
                    <ComboBox.ItemTemplate>
                        <DataTemplate>
                            <CheckBox Name="CheckBox1" IsChecked="{Binding IsChecked, Mode=TwoWay}" Visibility="{Binding IsVisible, Mode=TwoWay}">
                                <CheckBox.Content>
                                    <TextBlock Text="{Binding name}" Margin="5" />
                                </CheckBox.Content>
                            </CheckBox>
                        </DataTemplate>
                    </ComboBox.ItemTemplate>
                </ComboBox>

1 个答案:

答案 0 :(得分:1)

您可以像这样处理GotFocusGotKeyboardFocus事件:

private void comboBox1_GotFocus(object sender, RoutedEventArgs e)
{
    if (!comboBox1.IsDropDownOpen)
        comboBox1.IsDropDownOpen = true;
}
  

这样可以工作但是当在组合框上按几次时,盒子不会再次打开,因为焦点没有改变

处理Loaded的{​​{1}}事件并为ComboBox的{​​{1}}挂钩事件处理程序,然后:

PreviewMouseLeftButtonDown