2010-09-27 32 views
0

我們正在着手開發WPF中的第一個Silverlight項目。這是一個相對簡單的Web門戶,鑑於我們使用WPF工具包的經驗,我們希望避免引用Silverlight工具包。Silverlight 4:在不使用Toolkit的情況下更改整個應用程序的主題/樣式

我沒有太大的編碼器,並有相關的主題,一對夫婦的問題:

  • 隱風格使它更容易些。看起來你很清楚你可以轉換資源字典來改變你的主題。我如何在不依賴工具包的情況下做到這一點?

  • 如何將樣式應用於整個應用程序,如在WPF中,而不是將事物包裝在主題容器中?我看到您可以使用ApplicationThemeURI,但需要使用該工具包。

謝謝。

回答

0

只是關於Siverlight Toolkit的說明。上次我使用WPF工具包(前一段時間)時,我覺得它可能是或多或少是可選的。我不會說Silverlight Toolkit也是如此。它增加了很多重要的功能,這些功能很難自行實現,雖然它不是無缺陷的,但它非常可靠。我不能保證它的每一個方面,但我們廣泛地使用它在一個大的Silverlight項目(大約30K行代碼)中,我們發現它是不可或缺的。除非您知道您的項目會遇到的具體問題,否則我會建議您重新考慮不使用它的決定。

+0

這部分不合我心,這最終不錯。我們並沒有因爲沒有它而感到沮喪,一些團隊成員發現了任何依賴性的詛咒。該網站是如此簡單,我真的不明白我們爲什麼使用Silverlight。 – dex3703 2010-09-27 21:03:34

1

應用風格整個應用程序是在Silverlight 4一項簡單的任務將這個代碼在App.xaml中或主題/ generic.xaml:

<!-- Sample style for each button in the application --> 
<Style TargetType="Button"> 
</Style> 

這篇文章可以幫助你: http://www.silverlightshow.net/items/Implicit-Styles-in-Silverlight-4.aspx

您可以通過以下方式更改資源字典:

var dict = Application.Current.Resources.MergedDictionaries.FirstOrDefault(rd => rd.Source == new Uri("Dictionary1.xaml", UriKind.Relative)); 
if (dict != null) 
    dict.Source = new Uri("Dictionary2.xaml", UriKind.Relative); 
+0

是的,這是從我們以前的經驗很好理解。我想第一個問題更重要 - 如何在應用程序運行時切換資源緩存? – dex3703 2010-09-27 21:01:47

+0

此外,您可以刪除並添加resourcedictionary而不是更改源。 – vorrtex 2010-09-27 21:41:20

+0

這會更新一個正在運行的silverlight應用程序嗎?我正在修補你的樣本和我在網上找到的其他人,但樣式不會改變。 – dex3703 2010-09-27 22:01:02

相關問題