5

シナリオは次のとおりです。

1) Visual Studio 2008 を開き、新しいプロジェクトを作成します...

2) プロジェクト タイプとして WPF カスタム コントロール ライブラリを選択します。

3) Themes フォルダーにある Generic.xaml リソース ディクショナリを開きます。

4) 次のような単純なブラシを追加します。

< SolidColorBrush x:Key="BackgroundBrush" Color="Yellow" / >

5) ネストされた Borer Control の Background プロパティを

Background="{TemplateBinding 背景}"

Background="{DynamicResource BackgroundBrush}"

このコントロールをコンパイルしてプロジェクトで使用すると、背景は黄色になりません。ただし、background プロパティを StaticResource に変更すると、

Background="{StaticResource BackgroundBrush}"

...それが動作します。どうしてこれなの?StaticResource は機能するのに DynamicResource が機能しないのはなぜですか?

4

1 に答える 1

1

Xaml ファイルでブラシをハード コーディングしている場合、それはかなり静的に聞こえます。

DynamicResourceの MSDN エントリは、これは、コンパイル時に名前がわかっている場合に、実行時にリソースの名前を解決する (つまり、名前が別のリソースに格納される) 場合に使用すると述べています。

C のポインターからポインターへのポインターのように聞こえます。

于 2009-12-08T20:46:38.087 に答える