2014-03-13 47 views
0

我已经使用http://www.youtube.com/watch?v=EuhhL_NF-B0的示例并下载了源代码,以形成我的自定义窗口镶边的基础。我已经改变了外观,因为它看起来相当丑陋。此外,我还添加了自定义图片以关闭,最大化和最小化按钮。在WPF中为自定义窗口创建标准行为自定义最大化/恢复按钮

但是,我注意到,标准行为是根据窗口处于最大化还是正常状态时显示的不同图像来最大化/恢复。

有没有人得到如何做到这一点的建议?

回答

0

只需添加两个按钮并隐藏不必要的触发器。两个按钮便于轻松实现不同的行为。

添加像这样到您的模板:

<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。但是两个按钮更加灵活。

如果需要我可以发布我的窗口风格的完整源代码。它工作正常。

+0

谢谢。我想这会起作用,但实际上我是通过用触发器更改我的MaximiseButtonImage源来实现的 – Dave

+0

所以请投票答案,如果它有帮助 – Teaman