WPF 按钮的 IsDefault - 覆盖一切
IsDefault for WPF button - overriding everything
是否有一个选项可以强制 Enter 成为某些视图的主键?我想要实现的是每当我单击 "Enter" 键时,我想调用 "IsDefault" 属性 设置为 true 的按钮,无论焦点是什么。
一种可能性是在 RoutedEvent
到达尝试对其做出反应的控件之前拦截它:
连接到 PreviewKeyDown
事件,直到您想要捕获它为止。如果按下回车键,则相应地对其作出反应,例如运行 与按钮中的代码相同,然后在 eventargs Handled
中设置为 true
。
private void previewKeyDownHandler(object sender, KeyEventArgs e)
{
if(e.Key == Key.Enter || e.Key == Key.Return)
{
e.Handled = true;
//Do your stuff
}
}
Preview
事件是 WPF 中 RoutedEvent
系统的一部分。这两种机制称为隧道和冒泡。 Here you can read more on that.
是否有一个选项可以强制 Enter 成为某些视图的主键?我想要实现的是每当我单击 "Enter" 键时,我想调用 "IsDefault" 属性 设置为 true 的按钮,无论焦点是什么。
一种可能性是在 RoutedEvent
到达尝试对其做出反应的控件之前拦截它:
连接到 PreviewKeyDown
事件,直到您想要捕获它为止。如果按下回车键,则相应地对其作出反应,例如运行 与按钮中的代码相同,然后在 eventargs Handled
中设置为 true
。
private void previewKeyDownHandler(object sender, KeyEventArgs e)
{
if(e.Key == Key.Enter || e.Key == Key.Return)
{
e.Handled = true;
//Do your stuff
}
}
Preview
事件是 WPF 中 RoutedEvent
系统的一部分。这两种机制称为隧道和冒泡。 Here you can read more on that.