日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。XAML依存関係プロパティのメタデータは、PropertyMetadataクラスの他に、PropertyMetadataクラスを継承したUIPropertyMetadataクラスや、FrameworkPropertyMetadataクラスがあります。UIPropertyMetadataクラスは、WPFのアニメーションを無効化にする機能を提供します。UIPropertyMetadataクラスを継承したFrameworkPropertyMetadataクラスは、FrameworkPropertyMetadataOptions列挙体によるレイアウトシステムへの影響の有無の設定や値の継承の有無の設定、データバインディングのデフォルト値の設定などWPFのフレームワークレベルの設定をサポートしています。カスタムコントロールを作成する場合などは通常FrameworkPropertyMetadataクラスを依存関係プロパティのメタデータに使用するといいでしょう。FrameworkPropertyMetadataクラスの使用方法の一例として、子要素へ継承するプロパティの定義方法を以下に示します。}}FrameworkElementという、DependencyObjectを間接的に継承したオブジェクトを継承してPersonクラスを作成しています。Personクラスには、名前を表すFirstName依存関係プロパティと、苗字を表すLastName依存関係プロパティがあります。苗字は、親子関係にある場合は同じものを使用するのが自然なので、FrameworkPropertyMetadataを使って、Inheritsを指定しています。親子関係の構築は、FrameworkElementクラスのAddLogicalChildメソッドを使って指定しています。Personクラスの使用例を以下に示します。親と子のインスタンスを作って親のほうにだけLastNameプロパティを指定します。その状態で、親と子の両方のLastNameプロパティとFirstNameプロパティを表示しています。child.FirstName);}実行すると以下のような結果になります。LastNameプロパティの値が継承されていることが確認できます。jiroここで紹介したFrameworkPropertyMetadataクラスは、カスタムコントロールを作成する場合でもない限り使用することはありませんが、カスタムコントロールを作成するときには、以下のリンクを読んでおくと役に立ちます。C#の組み合わせをメインに、たまにASP.NETやJavaなどの.NET系以外のことも書いています。Blogの内容は個人の見解であり、所属する企業を代表するものではありません。)はてなブログをはじめよう!okazukiさんは、はてなブログを使っています。ブログを報告する引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。