相关疑难解决方法(0)

WPF Button.IsCancel属性如何工作?

"取消"按钮背后的基本思想是使用Escape Keypress关闭窗口.

您可以将"取消"按钮上的IsCancel属性设置为true,从而使"取消"按钮自动关闭对话框而不处理Click事件.

资料来源:编程WPF(格里菲斯,卖出)

所以这应该工作

<Window>
<Button Name="btnCancel" IsCancel="True">_Close</Button>
</Window>
Run Code Online (Sandbox Code Playgroud)

然而,我期望的行为并不适合我.父窗口是Application.StartupUri属性指定的主应用程序窗口.有效的是

<Button Name="btnCancel" IsCancel=True" Click="CloseWindow">_Close</Button>

private void CloseWindow(object sender, RoutedEventArgs) 
{
    this.Close();
}
Run Code Online (Sandbox Code Playgroud)
  • 根据窗口是普通窗口还是对话框,IsCancel的行为是否不同?只有在调用ShowDialog时,IsCancel才能像宣传的那样工作吗?
  • 按钮是否需要显式的Click处理程序(IsCancel设置为true)才能关闭Escape印刷机上的窗口?

wpf button

32
推荐指数
3
解决办法
3万
查看次数

如何为项目中的所有WPF窗口分配"关闭退出键按下"行为?

是否有任何直接的方式告诉整个WPF应用程序通过尝试关闭当前关注的寡妇来对Escape键按下做出反应?手动设置命令和输入绑定并不是很麻烦但是我想知道在所有窗口中重复这个XAML是否是最优雅的方法?

<Window.CommandBindings>
        <CommandBinding Command="Close" Executed="CommandBinding_Executed" />
</Window.CommandBindings>
<Window.InputBindings>
        <KeyBinding Key="Escape" Command="Close" />
</Window.InputBindings>
Run Code Online (Sandbox Code Playgroud)

任何建设性的建议欢迎!

wpf command escaping key-bindings windows-applications

22
推荐指数
2
解决办法
2万
查看次数