変なお願いがあります。動的リソースが FrameworkElement に関連して変更されたときに通知を受ける必要がありますが、その FrameworkElement にプロパティを設定していません。そのため{DynamicResource someKey}
、XAML やsomeElement.SetResourceReference()
コード ビハインドでは使用できません。
現在の値を取得するのは簡単です。呼び出すだけでsomeElement.FindResource("someKey")
、現在の値が何であれ取得できますが、それにはポーリングが必要です。
バインドできる偽のバインディング ソース オブジェクトを作成することを検討しましたが、問題はビジュアル ツリーの一部ではないため、そのリソースがアプリ レベルで定義されていない限り、取得できません。ビジュアル ツリーに詰め込むこともできません。
DependencyProperty を定義できる Behaviors を使用する回答を見てきました。FrameworkElement にアタッチすると、疑うように更新されますが、FrameworkElement の setResourceReference に相当する Behaviors を呼び出す方法がわからないため、XAML が必要です。 .
それで...考え?