目前我的组合框工作正常,但我希望当用户按下我的组合框的文本字段时,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>
答案 0 :(得分:1)
您可以像这样处理GotFocus
或GotKeyboardFocus
事件:
private void comboBox1_GotFocus(object sender, RoutedEventArgs e)
{
if (!comboBox1.IsDropDownOpen)
comboBox1.IsDropDownOpen = true;
}
这样可以工作但是当在组合框上按几次时,盒子不会再次打开,因为焦点没有改变
处理Loaded
的{{1}}事件并为ComboBox
的{{1}}挂钩事件处理程序,然后:
PreviewMouseLeftButtonDown