我再次找不到一个简单的WPF中的UI问题的解决方案。我希望组合框下拉列表在组合框获得焦点时出现。所以,我在得到了焦点事件写了这个:Combobox下拉列表的奇怪问题
private void comboBoxAC_Cat_GotFocus(object sender, RoutedEventArgs e)
{
comboBoxAC_Cat.IsDropDownOpen = true;
}
但现在的问题是,一旦下拉列表中打开,应用程序类型的卡在它。不管我做什么,无论按下输入还是其他任何东西,它都不能出现在下拉列表中。我试图注册失去焦点或其他事件,但似乎没有任何工作。这里是我的应用程序中的事件处理程序列表,一旦我进入下拉列表中,它将变得毫无用处。
private void Grid_PreviewKeyDown(object sender, KeyEventArgs e)
{
var uie = e.OriginalSource as UIElement;
if (e.Source is Button)
return;
if (e.Key == Key.Enter)
{
e.Handled = true;
uie.MoveFocus(
new TraversalRequrest(
FocusNavigationDiection.Next));
}
}
private void comboBoxAC_Cat_LostFocus(object sender, RoutedEventArgs e)
{
(sender as ComboBox).IsDropDownOpen = false;
}
任何人都可以帮我解决这个问题吗?
我的基本要求很简单:只要使用选项卡或鼠标聚焦Combobox,下拉列表应该打开。然后用户应该能够选择项目,并且一旦他按下回车键从下拉列表中选择一个项目,它应该关闭并且焦点应该移动到下一个UI元素。
现在很难实现???我认为这是完全是一个组合框
链接到IsDropDownOpen属性:http://msdn.microsoft.com/en-us/library/system.windows.controls.combobox.isdropdownopen.aspx – Oosterman
你应该看看这个http:// stackoverflow。 com/questions/1554630/c-combobox-gotfocus – MaRuf
@Marco:是的,但我无法为我的应用程序获得修复,我的要求与下拉列表行为密切相关,无论我尝试它仍然保持不变。 ... – Sudh