如何通过WPF中MVVM模式实现按下ESC键退出窗口的功能?
- 内容介绍
- 文章标签
- 相关推荐
本文共计163个文字,预计阅读时间需要1分钟。
在XAML中设置监听Esc键关闭窗口:
xml
首先在XAML中定义监听按键
<Window.InputBindings>
<KeyBinding
Key="Esc"
Command="{Binding CloseWindowCommand}"
CommandParameter="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}" />
</Window.InputBindings>
此处,绑定了一个ICommand命令CloseWindowCommand。
在后台ViewModel中定义一个ICommand命令
/// <summary>
/// 窗口关闭
/// </summary>
public DelegateCommand<Window> CloseWindowCommand { get; set; }
定义一个关闭窗口的方法。
/// <summary>
/// 关闭窗口
/// </summary>
/// <param name="obj"></param>
private void CloseWindow(Window obj)
{
var window = (Window)obj;
if (window != null)
{
window.Close();
}
}
初始化的时候,进行命令绑定。
CloseWindowCommand = new DelegateCommand<Window>(CloseWindow);
本文共计163个文字,预计阅读时间需要1分钟。
在XAML中设置监听Esc键关闭窗口:
xml
首先在XAML中定义监听按键
<Window.InputBindings>
<KeyBinding
Key="Esc"
Command="{Binding CloseWindowCommand}"
CommandParameter="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}" />
</Window.InputBindings>
此处,绑定了一个ICommand命令CloseWindowCommand。
在后台ViewModel中定义一个ICommand命令
/// <summary>
/// 窗口关闭
/// </summary>
public DelegateCommand<Window> CloseWindowCommand { get; set; }
定义一个关闭窗口的方法。
/// <summary>
/// 关闭窗口
/// </summary>
/// <param name="obj"></param>
private void CloseWindow(Window obj)
{
var window = (Window)obj;
if (window != null)
{
window.Close();
}
}
初始化的时候,进行命令绑定。
CloseWindowCommand = new DelegateCommand<Window>(CloseWindow);

