XAML通过SystemCommands

时间:2017-05-25 20:49:11

标签: wpf xaml

有一个名为SystemCommands的WPF类。我已经看到这些命令的示例在按钮上用于执行常见的窗口任务,如最大化,最小化和关闭。

我发现的一个例子看起来像这样(简化):

<Window x:Name="MainWindow">
    <Grid>
        <Button Content="Close"
                Command="{x:Static SystemCommands.CloseWindowCommand}"
                CommandParameter="{Binding ElementName=MainWindow}" />
    </Grid>
</Window>

当我启动应用程序时,该按钮被禁用,我无法单击它。更改IsEnabled属性无效。

我设法让按钮启用一次,但我现在无法重现它。在任何情况下,当它被启用时,我点击它时没有任何反应。

我必须做什么才能启用此按钮并实际关闭窗口(或最小化/最大化)?如果可能的话,我真的更喜欢它只是一个XAML解决方案。

1 个答案:

答案 0 :(得分:1)

这些只是预定义的RoutedCommand,没有任何实现。您必须自己提供实施。

https://msdn.microsoft.com/en-us/library/system.windows.systemcommands

  

SystemCommands类中的命令代表一组常见命令   管理窗口的命令。此类中的属性表示   RoutedCommand对象并不提供实现逻辑   命令。您可以通过绑定来为命令提供逻辑   命令与CommandBinding。或者,SystemCommands类提供实现指定Window的逻辑的静态方法。您可以将静态方法传递给实现ICommand并接受委托的类型。有关更多信息,请参阅InputBinding类中的示例。