2012-04-02 140 views
24

我們正在開發一個WPF應用程序,它使用Telerik的控件套件,一切正常,看起來很好。不幸的是,我們最近需要替換所有對話框的基類,用標準的WPF窗口改變RadWindow(理由與本次討論無關)。在這樣做的過程中,我們最終得到了一個在所有開發人員的計算機上都很漂亮的應用程序(啓用了Aero的Windows 7),但在客戶端環境(Windows Server 2008 R2下的終端服務)中使用時很難看。如何在WPF中設置窗口的邊框和標題欄?

Telerik的RadWindow是一個標準的用戶控件,它模仿對話框的行爲,所以它的樣式不是問題。儘管WPF的窗口,我很難改變它的「邊界」。我在這裏所說的「邊框」是指帶有圖標的標題欄和3個標準按鈕(最小化,最大化/恢復,關閉)以及窗口周圍的調整大小。

我怎樣才能改變這些項目的外觀:

  • 標題欄的顏色
  • 3個標準按鍵
  • 窗口真實的邊框顏色

帶圓角如果可能的話。

回答

22

這些是「非客戶端」區域,由Windows控制。 Here is the MSDN docs on the subject(相關信息在頂部)。

基本上,你設置你的Window的WindowStyle =「None」,然後建立你自己的窗口界面。 (similar question on SO

+0

你的鏈接是我一直在搜索,但沒有找到。很顯然,我需要提高我的谷歌技能;-) – 2012-04-04 04:46:56

+1

@MarcelGosselin有人告訴我,我的谷歌福強:)很高興我能幫助出 – 2012-04-04 05:46:17

+0

錯誤答案。首先,RadWindow不支持WindowStyle屬性。而且,這兩個「類似的問題」甚至不是關於Telerik的控制。 – dvallejo 2013-11-22 01:01:28

11

您需要設置

WindowStyle="None"AllowTransparency="True",以及可選ResizeMode="NoResize"
,然後在窗口的樣式屬性設置爲自定義窗口風格,在那裏你設計窗口的外觀(標題欄,按鈕,邊框)添加到您想要的任何內容,並在ContentPresenter中顯示窗口內容。

This似乎是一篇關於如何實現這一目標的好文章,但互聯網上還有很多其他文章。

+0

此[代碼示例](https://code.msdn.microsoft.com/WPF-styling-a-Window-in-fcf4e4ce)給出瞭如何更換默認的樣式,同時保持所有的默認功能性的實例(標題欄,窗口邊框,窗口按鈕,拖動,拖放和調整大小)。 – JayChase 2015-12-14 15:10:06

+0

WindowStyle =「無」,AllowsTransparency =「真」(你忘了「S」的允許) – mcissel 2016-03-26 23:15:20

+0

爲什麼會改變需要的調整模式?這通過使用鍵盤(Win +箭頭鍵)打破窗戶的任何移動或要求添加它。 – StingyJack 2017-04-18 12:02:50

5

我發現從@DK評論更直接的解決方案在this question,該解決方案由Alex和described here與源, 寫盡定製窗口:

  1. 下載示例項目here
  2. 編輯generic.xaml文件以自定義佈局。
  3. 享受:)。
1

我建議您從基礎解決方案開始,並根據您的需求對其進行定製,然後從頭開始更好!

我一直在尋找同樣的東西,我落在this開源解決方案,我希望它會有所幫助。

2

檢查下面的示例WPF customizing the appearance of a window in XAML

此示例演示如何完全自定義樣式/外觀的窗口,包括非客戶端領域:標題欄,邊框,最大值,最小值和關閉按鈕,同時仍然提供所有預期的功能。

+0

歡迎您訪問解決方案的鏈接,但請確保您的答案在沒有它的情況下很有用:[添加鏈接的上下文](// meta.stackexchange.com/a/8259),以便您的同行用戶瞭解它是什麼以及爲什麼它在那裏,然後引用您鏈接的頁面中最相關的部分,以防目標頁面不可用。 [答案只是一個鏈接,可能會被刪除。](// stackoverflow.com/help/deleted-answers) – paper1111 2017-09-13 11:41:20

+0

@ paper1111爲什麼投了票,你的評論是不夠的? – 2017-09-13 11:47:12

+0

我沒有downvote它,也許有人從審查隊列這樣做 – paper1111 2017-09-13 11:48:09

相關問題