有一個名爲SystemCommands
的WPF類。我見過在按鈕上使用這些命令的例子來執行常見的窗口任務,如最大化,最小化和關閉。XAML通過SystemCommands最小化/最大化/關閉按鈕
一個我發現的例子看起來像這樣(簡化):
<Window x:Name="MainWindow">
<Grid>
<Button Content="Close"
Command="{x:Static SystemCommands.CloseWindowCommand}"
CommandParameter="{Binding ElementName=MainWindow}" />
</Grid>
</Window>
當我啓動應用程序的按鈕將被禁用,我不能點擊它。更改IsEnabled
屬性不起作用。
我設法讓按鈕啓用一次,但我現在無法再現它。無論如何,當它被啓用時,我點擊它時什麼也沒有發生。
我必須做些什麼來啓用此按鈕並實際關閉窗口(或最小化/最大化)?如果可能的話,我真的更喜歡它是僅限XAML的解決方案。
我明白了。不過,這讓我很好奇。無論如何你必須提供你自己的實現,這些命令的意義是什麼? SystemCommands有一個常規的按鈕單擊事件處理程序不具有什麼優勢? – GTHvidsten
'RoutedCommand'是WPF去完整MVVM之前的一個保留位。在MVVM模式中,您將使用自己的'ICommand'實現。這樣做的好處是命令代碼存在於視圖模型中,而不是視圖中。 'RoutedCommand' *確實*有一個好處。你可以從支持它的任何東西中提取一個,但通過'CommandBinding'在視覺樹中的任何位置處理它。 –
這將允許您在擁有自己的「保存」按鈕的窗口上擁有任意數量的用戶控件。然後,你可以在窗口級別捕獲該命令,因爲'RoutedCommand'冒出可視化樹,就像事件一樣。這可以讓你在一個地方保存邏輯,但從任何地方都可以「提升」, –