1

添付プロパティがあり、デザイン時アセンブリを使用してデザイナーに登録しています。 TextBoxが選択されたときにプロパティが表示されるようにAttachedPropertyBrowsableForTypeAttributeを使用しています。添付プロパティがBlendデザイナーで表示されますが、VS2010では表示されないのはなぜですか?

プロパティはExpression Blend 4では上手く表示されますが、Visual Studio 2010 SP1では表示されません。

Expression Blend

Visual Studio

それは、Visual Studioに表示されないだろう、なぜ誰でも知っていますか? 問題を示すテストプロジェクトをここからダウンロードできます。 Test Project

ありがとう!

答えて

1

サイダーデザイナーは完全なものだから、短い答えは確かです。心に留めておくべきMicrosoft blog:

一つのことから、

デザイナーに 添付プロパティを示すの要件の一つが所有タイプがによってロードされている する必要があるということであるとされています。ここで長い答えがありますデザイナー。これは、デザイナー がXAMLソースにあるか、またはXAMLソースからロードされた要素の依存関係 であるため、型にアクセスするたびに発生します。

したがって、サイダーデザイナーは、既に読み込まれたタイプについてのみ気にします。グリッドをStackPanelに変更すると、Grid.RowとGrid.Columnの添付プロパティがVisual Studio内のTextBoxプロパティのリストから消えます。ブレンドデザインのサーフェスは、あなたのタイプをいくらか寛容にし、認識します。さらに、Blendは、StackPanelを使用している場合でも、Grid.IsSharedSizeScope(Layoutプロパティの下)を忠実に表示します。

添付されたプロパティをMicrosoftがどのように使用してサポートしているかを見ると、それらはレイアウトコンテナでの使用を推奨しているようです。たとえば、AttachedPropertyBrowsableForChildrenAttributeがあります。キャンバス要素の子供のためにCanvas.Leftを表示するようなことができます。私は、今日、ほとんどの人が実際に付属のプロパティをどのように使っているかを徹底的には考えていないという印象を受けました。

関連する問題