默认按钮在窗口加载时触发

时间:2009-10-23 20:33:07

标签: wpf

我有一个带“登录”按钮的登录窗口,该按钮被设置为默认按钮(IsDefault =“True”)。登录按钮应该打开一个新窗口,该窗口也有一个默认按钮。

当用户点击回车键时,会引发登录按钮点击事件并打开一个新窗口。但是,由于某种原因,一旦窗口打开,新窗口上的默认按钮的单击事件也会立即引发。

如果用户使用鼠标或标签单击登录按钮并按空格键,则不会出现此行为。

关于为什么会发生这种情况或如何解决这个问题的任何想法?

注意:我尝试在新窗口加载的事件中设置IsDefault = true(而不是在xaml中),但这没有帮助。

2 个答案:

答案 0 :(得分:0)

在我看到您的代码之前,我无法确切地说明为什么会发生这种情况。你能创建一个可重复的小例子吗?

值得一提的是,IsDefault / IsCancel按钮实现基于AccessKeys机制,这是框架中最直观的部分(imho)。

我认为您可能会遇到某种访问键范围冲突,或者您的重复键率太高,或者您的Enter键只是卡住了?)?

您可以在Neil Mosafi's blog上阅读有关访问键和默认按钮的更多信息。谁知道,也许你会在AccessKeyScoper中找到答案。

答案 1 :(得分:0)

不幸的是,有一个错误的传达。显然,第一个窗口没有使用IsDefault。相反,窗口上的KeyUp事件正在监视回车键。此外,e.Handled尚未设置。这导致第二个窗口上的默认按钮处理从第一个窗口按下的回车键。