私は、テーマにたくさんのブラシを作成し、それらをカスタムコントロールで DynamicResource と一緒に使用するために、1日を無駄にしようとしました。私がしたことはこれです:
- スタイルを含むテーマ generic.xaml を作成します (動作)
- アプリケーションで使用されるブラシを含めるために、generic.xaml にマージする辞書を追加します (機能します)。
- ブラシに ComponentResourceKey キーを持たせる (動作)
- コントロールがブラシを静的リソースとして使用するようにします(機能)
- コントロールが動的リソースとしてブラシを使用するようにします (DOESN'T WORK、リソース トレース ソースは次のように述べています: System.Windows.ResourceDictionary Warning: 9 : Resource not found; )
- App.Resources に同じキーを持つブラシを動的に追加します (動的リソースで動作し、色を変更し、静的リソースでは動作しません)。
したがって、私の問題は、アプリケーションでプログラムで変更できるように、テーマでデフォルト値を定義する方法が見つからないことです。StaticResource はどのようにしてブラシを見つけ、DynamicResource は見つけられないのでしょうか?!
コンポーネント リソース キーをプロパティとして保持する静的クラスを作成し、それを xaml で {x:Static UI:ResourceScheme.ControlBackgroundKey} として使用することを追加する必要があります。私の問題はこれに似ているようです: ComponentResourceKey as DynamicResourceの問題は、静的プロパティキーをコンポーネントリソースキーのXAMLマークアップに置き換えても、まだ機能しません。
誰かがここで私を助けてくれますか? :(