2009-11-02 61 views
1

我已經創建了類似thisthis
實際上,我有一個爲我的應用程序提供「樣式程序」的dll - 它包含我所有的基本樣式以及一個工廠,在應用程序上調用StylerFactory.DefaultStyler.ApplyStyles(this) - 將提供的ResourceDictionaries與現有的樣式進行合併。這樣我就不需要組件中的所有基本樣式,也不需要顯式引用我的sesource-xaml文件。
現在 - 雖然這是真正的好工作。樣式是(顯然)在設計時 不可見的,我的問題:設計時間Resourcedictionaries

  1. 是做法明智,或者將它得到了更好的部署XAML的資源,並在每一個應用程序/窗/控制使用它們?
  2. 有人看到任何可能將我的樣式應用於VS2008的設計時顯示?
+0

由於這個問題有點老,很多這些答案都過時了:我想要注意Expression Blend(我不知道過去是否允許)支持設計時資源字典。 – Warty 2015-07-17 07:22:32

回答

0

在我看來,這是一個可以接受的方法。原因是,我沒有看到更好的方法。

在我自己的情況下,我已經在運行時加載資源字典using the code I described here,我會假設它也適用於從其他程序集加載資源。缺點是設計人員不會首先運行此代碼,這意味着默認情況下不會應用任何樣式,您所遇到的情況。

爲了抵消這一點,我在設計時需要編輯的每個<Window.Resources>中都添加了一個默認的<ResourceDictionary.MergedDictionaries>定義。雖然這樣做有點多餘,但是這使我有一個可用的設計時窗口,而適當的MergedDictionary可以在運行時加載。也許你可以用它來找到更好的方法。

+0

請問,你在描述問題#786183是相當我在做什麼,但是我有xaml文件作爲嵌入式資源。 所以要按照你的建議去做,我也必須複製資源文件... – Nils 2009-11-02 21:09:02

+0

即使將資源文件作爲另一個DLL中的嵌入資源,我也會考慮將資源包含在http:// stackoverflow中.com/questions/946869/is-it-it-possible-share-a-resourcedictionary-file-between-multiple-projects should be work。你有沒有嘗試過,發現它不? – 2009-11-02 21:22:43

+0

是的,沒有,當然 - 如果我包括資源,設計師會向他們展示他們,但是那樣我的資源會翻倍增加。我開始想,使用svn:external創建一個包含在源代碼中的xaml文件會更好 - 這樣我就可以確保只有一個「真實」副本,並讓設計人員顯示更改... – Nils 2009-11-04 07:04:19