我正在爲其他供應商提供的WPF Composite應用程序編寫一些擴展模塊。該應用程序是主題化的,並允許用戶從多個主題中進行選擇,這些主題將改變整個應用程序的外觀,包括任何自定義模塊,這些模塊會自行向主題管理器註冊。如何發現在另一個程序集中定義的WPF資源?
我真的希望我的自定義擴展看起來像一個集成組件,所以我試圖只使用在主應用程序中定義爲資源的樣式。由於我仍然在學習XAML的細微差別,所以我的造型更多的是反覆試驗。
我想知道是否有一種方式來「發現」不同裝配中可用的樣式。這是我目前正在做的一個例子。
<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<common:DesignTimeResourceDictionary Source="/Vendor.Desktop.WPFCommon;component/themes/generic.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Window.Resources>
<Border
Background="{DynamicResource LightGradientBackgroundBrush}"
Margin="0"
>
LightGradientBackgroundBrush
在供應商組件中定義。通過包含上述ResourceDictionary
,樣式在設計時出現,並且刷子在XAML編輯器中不加下劃線。
我可以找到其他樣式的定義嗎?我只知道這種風格,因爲它是在提供供應商提供的樣本中提到的。
編輯:
我知道一個BAML附加在反射器的,但除非它已被重新編譯/修補它不與反射器7的工作。有人已經完成了here though。
雖然我希望有更好的解決方案。 Intellisense風格將會很棒。
這裏有一個補丁版本的Reflector版本7的BAML插件:http://forums.reflector.net/questions/217/baml-add-in – 2011-06-15 03:21:17