2012-01-09 94 views
1

在我的WPF應用程序中,我希望用戶可以像他或她想要的那樣更改背景顏色。我怎樣才能從一個窗口中設置背景顏色,我可以將它設置爲我應用中的所有窗口?所有窗口的BackgroundColor

我該如何管理?

回答

2

可以動態引用(使用DynamicResource)在所有窗口的背景的Application.Resources定義相同SolidColorBrush,如果再更換另一個刷子窗口將更新該資源。

或者,您可以創建一個Brush屬性,並在其中可以綁定更改通知(例如,在App類的某些全局可訪問的設置中)。

+0

這很高興知道。出於某種原因,我一直認爲畫筆在.NET中是不可變的(我猜是因爲字體),但我顯然是錯的。 – Groo 2012-01-09 09:27:33

+0

@格羅:其實你是對的。對不起,您應該通過DynamicResource引用畫筆並完全切換畫面,我的記憶不準確 – 2012-01-09 09:31:36

+0

當我閱讀您的文章時,我去MSDN檢查['SolidColorBrush.Color'](http://msdn.microsoft.com /en-us/library/system.windows.media.solidcolorbrush.color(v=VS.90).aspx)可以修改,它實際上有一個'set'訪問器。我希望所有表格都應該明確無效,但爲什麼它不起作用? – Groo 2012-01-09 09:37:44

0

你不會說它是一個網頁還是桌面應用程序,也不是你是否使用MVVM模式,但是我建議你在應用程序的樣式表中設置它。然後在XAML中爲每個「窗口」引用它。

+0

不幸的是,使用主題樣式通常不適用於Windows,因爲樣式不會被繼承,並且窗口是通過從'Window'繼承而創建的。 – 2012-01-09 09:43:52