1

我正在处理 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 窗口将关闭。

编辑:我想要什么:如果关闭按钮被聚焦,则不允许用户在按下回车键时关闭窗口或不要将焦点移至关闭按钮

4

2 回答 2

4

一个解决方案可能是禁止关闭按钮获得焦点,假设您不需要它。请参阅可聚焦属性。如果您在代码中创建按钮:closeButton.Focusable = false. 如果在 XAML 中:<Button Focusable="false" Command="...">Close</Button>. 这样,当您导航焦点时,关闭按钮不会出现在循环中。

于 2012-09-11T18:36:24.280 回答
0

你没有说你期望会发生什么。您可以检查当前控件是否是最后一个字段(您必须有一个 ID)。如果用户当前在最后一个字段中,请不要前进到下一个字段。

于 2012-09-11T16:13:28.873 回答