我应该使用 ApplicationCommands.Close
用于关闭模式对话框还是该命令被认为是为关闭应用程序保留的?如果是后者,请大家创建Close
每个命令 Dialog
盒子或只是一个 Close
所有模式对话框的命令?
最佳答案
以下是 WPF 如何使用 ApplicationCommand.Close:
ApplicationCommands.Close
的内置命令处理程序。 ,但是 ApplicationCommand.Close
RoutedCommand 每当它收到 Win32 消息时 WM_APPCOMMAND
与 lParam=APPCOMMAND_CLOSE
.这意味着如果任何 Win32 应用程序向您发送 APPCOMMAND_CLOSE
,您的 ApplicationCommand.Close
处理程序将被调用。 documentation为
APPCOMMAND_CLOSE
给出这个定义:Close the window (not the application).
我认为 WPF 应用程序应该处理
ApplicationCommand.Close
以同样的方式,“窗口”将包括对话框(它通常在 Win32 世界中)。你为什么关心 Win32 文档所说的内容?在三种情况下它可能很重要:
所以回答你的问题:不,
ApplicationCommand.Close
不保留用于关闭应用程序。它的目的是关闭窗口,包括一个对话框窗口。因此无需创建单独的命令来关闭对话框。许多应用程序简单地使用 App.xaml 中的样式在 Window 类上设置 CommandBinding,并在处理程序中通过调用
((Window)sender).Close()
结束。 .这是一个简单而优雅的解决方案。
关于wpf - WPF 命令基础结构中的对话框是否有关闭命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3088846/