我正在处理myDialog1_KeyDown事件,如果按下Enter键,我的方法将焦点移动到下一个元素,如下所示:
UIElement focusedElement = Keyboard.FocusedElement as UIElement;
if (focusedElement != null)
{
if(focusedElement.MoveFocus(newTraversalRequest(FocusNavigationDirection.Next)))
e.Handled = true;
}
myDialog1是myDockBase对象。 myDockBase是一个扩展DXWindow的类,用于应用程序中的每个模态对话框。
然后问题是当用户位于最后一个字段时 - 当他按下Enter键时焦点移动到关闭按钮(最小化和最大化按钮被隐藏)然后如果他再次按Enter键则窗口关闭。
编辑:我想要的:如果关闭按钮聚焦,则不允许用户在按下回车键时关闭窗口或不将焦点移动到关闭按钮
答案 0 :(得分:2)
解决方案可能是禁止关闭按钮完全聚焦,假设您不需要它。请参阅Focusable属性。如果您在代码中创建按钮:closeButton.Focusable = false
。如果在XAML中:<Button Focusable="false" Command="...">Close</Button>
。这样,当你导航焦点时,关闭按钮不会出现在循环中。
答案 1 :(得分:0)
你没有说你期望发生什么。您可以检查当前控件是否是最后一个字段(您必须具有该ID)。如果用户当前位于最后一个字段中,请不要前进到下一个字段。