只需添加兩個按鈕並隱藏不必要的觸發器。兩個按鈕便於輕鬆實現不同的行爲。
添加像這樣到您的模板:
<ControlTemplate TargetType="{x:Type Window}">
...
<cc:ImageButton ImageSource=".../CloseWindow.png" x:Name="closeButton" Click="OnCloseClick" />
<cc:ImageButton ImageSource=".../MaximizeWindow.png" x:Name="maximizeButton" Visibility="Collapsed" Click="OnMaximizeClick" />
<cc:ImageButton ImageSource=".../RestoreWindow.png" x:Name="restoreButton" Visibility="Collapsed" Click="OnRestoreClick" />
<cc:ImageButton ImageSource=".../Help.png" x:Name="helpButton" Click="OnHelpClick" />
...
<ControlTemplate.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="ResizeMode" Value="CanResizeWithGrip" />
<Condition Property="WindowState" Value="Normal" />
</MultiTrigger.Conditions>
<Setter TargetName="maximizeButton" Property="Visibility" Value="Visible" />
</MultiTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
沒關係CC:ImageButton的 - 只是圖片或更換。 如果您不需要調整不可調整大小的窗口樣式,則可以省略第一個觸發條件。
也可以更改單個圖像的ImageSource。但是兩個按鈕更加靈活。
如果需要我可以發佈我的窗口風格的完整源代碼。它工作正常。
謝謝。我想這會起作用,但實際上我是通過用觸發器更改我的MaximiseButtonImage源來實現的 – Dave
所以請投票答案,如果它有幫助 – Teaman