Control から継承しているカスタム コントロールに依存関係プロパティ (Foreground) があります。コントロールをロードするときに、ユーザーが依存関係プロパティを設定したかどうか、または値を設定する前にデフォルト値を使用しているかどうかを確認したいと考えています。問題はそれよりも少し複雑です。
コントロールは、ユーザーがプロジェクトに追加するカスタム コントロール ライブラリにあります。彼らがプロジェクトをセットアップしているときに、コントロールのデフォルト値を設定するときに読み取った設定を含む、特定の x:key を使用して app.xaml ファイルに行を追加することができます。ただし、コードまたは xaml で値を設定する場合、このグローバル値で値を設定したくありません。私が話していることを視覚化するのに役立ついくつかのケースを次に示します。
ユーザーは私のライブラリからコントロールを作成し、それを自分のページに配置します。次に、前景を緑に設定します。そのコントロールの前景の値を緑にしたい。
ユーザーは app.xaml に特別な行を追加し、特定の種類のすべてのコントロールの前景を赤にしたいと述べています。その種のすべてのコントロールの前景の値を赤にしたい。
ユーザーは app.xaml に特別な行を追加し、特定の種類のすべてのコントロールの前景を赤にしたいと述べています。次に、1 つのコントロール (xaml 内) の前景の値を黄色に設定します。その種類のすべてのコントロールの前景の値を、別の方法で黄色に指定されているものを除いて、赤にしたいと考えています。
コントロールをロードするときに、依存関係プロパティを読み取って、値が設定されているかどうか、またはスタイルで定義されているデフォルト値であるかどうかを確認したいと考えています。それがデフォルト値の場合、app.xaml ファイルから特別な行を読み取り、前景をその色に設定します。