按下Enter键时防止关闭关闭按钮

时间:2012-09-11 15:46:24

标签: c# wpf

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

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

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