プレーンなPropertyMetadataではなくFrameworkPropertyMetadataまたはUIPropertyMetadataを使用する必要があるのはいつですか?


81

サンプル添付プロパティと動作を見ると、私はの用途の寄せ集めを見てきたFrameworkPropertyMetadataUIPropertyMetadataPropertyMetadata。それらはすべて継承階層を形成するので、どの方法を使用するかを選択するにはどうすればよいですか?

回答:


80

これらのクラスは、依存関係プロパティのいくつかの動作の側面を報告するためのものです。

提供されるオプションについては、さまざまなクラスを確認してください。

例えば、

プロパティをdpでバックアップし、デフォルト値を指定するだけの場合は、、を使用しますPropertyMetadata

あなたはアニメーションの動作を指定したい場合は、使用してUIPropertyMetadata

ただし、要素のレイアウト、親のレイアウト、データバインディングなど、一部のプロパティがwpfフレームワークレベルのものに影響を与える場合は、を使用しますFrameworkPropertyMetadata

詳細はmsdnhttp //msdn.microsoft.com/en-us/library/ms751554.aspxで確認できます


2
本当の問題は、特にSilverlightにPropertyMetadataサブクラスがないため、propdpスニペットがUIPropertyMetadataを使用するのはなぜですか?それは私を狂わせる。
Grank 2010年

6
これは、同じスニペットがWPFとSilverlightの間で共有されているためです。あなたは、このリンクからSilverlightの異なるスニペットを試すことができます。blog.nerdplusart.com/archives/silverlight-code-snippets
GPを。

2
MSDNによると、「一般的に、特にプロパティがプロパティシステムや、レイアウトやデータバインディングなどのWPF関数と相互作用する場合は、FrameworkPropertyMetadataを使用する必要があります。」-(メタデータの指定)msdn.microsoft.com/en-us/library/ms751554.aspx
Wayne Bloss

FrameworkPropertyMetadataはどのような種類のデータバインディングに使用する必要がありますか?コントロールのIsEnabledにバインドされているプロパティが必要なだけです。
Monstieur 2013年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.