0
我有一个ComboBox
动态创建的,我已经设置下列属性:防止项目选择在组合框(或,AutoSuggestTextBox而不ItemSelection)
var keyUpHandler = new KeyEventHandler(
(s, e) =>
{
var cell = s as UIElement;
if (e.Key == Key.Up)
{
cell.MoveFocus(new TraversalRequest(FocusNavigationDirection.Up));
}
else if (e.Key == Key.Right)
{
cell.MoveFocus(new TraversalRequest(FocusNavigationDirection.Right));
}
else if (e.Key == Key.Down)
{
cell.MoveFocus(new TraversalRequest(FocusNavigationDirection.Down));
}
else if (e.Key == Key.Left)
{
cell.MoveFocus(new TraversalRequest(FocusNavigationDirection.Left));
}
});
ComboBox cb = new ComboBox();
Grid.SetRow(cb, row);
Grid.SetColumn(cb, col);
cb.IsEditable = true;
cb.DataContext = myDataContext;
cb.ItemsSource = myDataItems;
cb.FocusVisualStyle = null;
cb.KeyUp += keyUpHandler;
cb.Resources.Add(SystemParameters.VerticalScrollBarWidthKey, 0.0);
myGrid.Children.Add(cb);
这ComboBox
是我想它像一个AutoSuggestTextBox作用可编辑。它是一个动态Grid
的一部分,它是一个具有相同大小的行和列的表结构。我正在使用箭头键将焦点移至Grid
内的相邻单元格。
我的问题是,在使用向上箭头键时,我需要将焦点导航到上方/下方控件,而不是ComboBox的默认选择项目。
我该怎么做?
这工作,谢谢!我还需要设置'IsTabStop = true',这在我的默认组合框样式中设置为false。 –