2010-02-15 71 views

回答

11

做到這一點的一種方法是創建一個新的silverlight類庫,它將成爲您的共享主題/樣式程序集,該程序集將被其他silverlight項目引用。該程序集中將包含一個或多個Resource Dictionary XAML文件,該文件可以定義所有樣式,畫筆和模板。您甚至可以使用Style類的BasedOn屬性設置一些級聯樣式層次結構。

然後,您可以使用MergedDictionaries將這些樣式合併到App.xaml級別或頁面級別的應用程序中。

<Application.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="/SharedThemeAssembly;component/MyStyles.xaml"/> 
      ...other ResourceDictionaries to merge in... 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
</Application.Resources> 

然後,您會像通常其他StaticResource一樣引用共享樣式/畫筆。

+0

希望我能投票這兩次:)。 – retrodrone 2011-12-14 02:27:02

4

有兩個選項,首先是Dan表示您可以創建一個由其他項目共享的庫。如果客戶端訪問多個項目,並且您的項目使用應用程序庫緩存,那麼您可以減少總下載大小。

另一種方法是在一個項目中創建一個資源字典,然後將相同的文件添加到其他項目。在添加現有項目對話框中注意,添加按鈕有一個小的下拉圖片,放下它,然後選擇「添加爲鏈接」。

這留下了一個簡單的Xaml文件的dicitionary。我能看到的一個優點是實際上將字典文件從Xap中移出,並將其放在clientBin文件夾(或Xap所在的文件夾)中。這種方法允許所有Xaps共享單個字典(與第一種方法相同),但允許對Xaml進行調整而不會造成混亂的重建。

+0

http://stackoverflow.com/questions/9215906/cant-find-my-styles-in-silverlight-5/9216046#9216046。你能幫我解決嗎? – Vinicius 2012-02-09 19:59:01