只需添加两个按钮并隐藏不必要的触发器。两个按钮便于轻松实现不同的行为。
添加像这样到您的模板:
<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