2009-12-08 60 views
3

下面是這種情況:DynamicResource沒有工作,但靜態資源呢?

1)打開Visual Studio 2008,創建新的項目...

2)選擇WPF自定義控件庫作爲項目類型

3)打開Generic.xaml位於該主題資源字典文件夾

4)添加一個簡單的刷,例如:

<的SolidColorBrush X:鍵= 「BackgroundBrush」 共LOR = 「黃色」/>

5)

背景變化嵌套鏜牀控制的背景屬性= 「{TemplateBinding背景}」

背景= 「{DynamicResource BackgroundBrush}」

現在,當您編譯並在任何項目中使用該控件,backg輪不會是黃色的。但是,如果你改變的背景屬性是一個靜態資源這樣

背景= 「{StaticResource的BackgroundBrush}」

...它會工作。爲什麼是這樣?爲什麼StaticResource工作,但不是DynamicResource?

+0

在這裏有相同的問題。 Expression Blend默認會創建DynamicResource,這是由程序錯誤地運行引起的。這很奇怪!自你發佈這個問題以來,你有沒有發現什麼? – 2012-04-10 18:23:36

回答

0

如果你是硬編碼在XAML文件中的畫筆,這聽起來很靜給我。

DynamicResource的MSDN條目說這是用於當您希望在運行時使用解析資源的名稱(即該名稱存儲在另一個資源中),在編譯時知道名稱的位置。

聽起來很像是指針對從C指針指向一個指針。

+0

我不明白你的答案。沒有硬編碼,這是資源定義的方式。這裏沒有關於指針的信息。 – Max 2009-12-11 14:44:15