2014-03-13 46 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