2009-09-11 14 views
23

Expression Blend 3からVisual Studioに戻ったとき、Blendが参考に「d:LayoutOverrides」プロパティをXAMLに追加していることがよくあります。 ASP.NETデザイナーと一緒に成長して、私は自分自身をタイプしないものを当然不信に思っています。なぜBlendは[d:LayoutOverrides = "Height"]を追加するのですか?気にする必要がありますか?

「d:」プロパティはデザイナーのみで実行時には影響しませんが、誰でもこのプロパティが何をしているのか、そしてなぜBlendが私のマークアップ上にあるように強くなるのかについての洞察を提供できますか?

<Border d:LayoutOverrides="Height" /> 

答えて

31

BlendはデザインモードでXAMLを表示する方法を知っています。具体的には、コンテナを満たすために伸びる流体レイアウトがある場合、ブレンドがデザインの高さを知るための明確な方法はありません。 LayoutOverridesはそれを定義します。

これらのLayoutOverride設定エントリは、ユーザー(またはブレンドを実行している他の人)がデザインサーフェスの要素のサイズを手動で変更したときに追加されます。あなたは(そのような境界要素のように)すべてのコードの上にそれらを見ている場合:

  1. あなたは通常、任意の顕著せずに削除することができますあなたはブレンドを使用しているどのように見えるかもしれません
  2. に影響を与える - 具体的には、親コタイナーのサイズを適切なサイズ(UserControl/LayoutRoot)に設定し、流体レイアウトに基づいて子サイズを設定する必要があります。 padding and margin or *サイズ

Blendの無視できる属性は、コンパイル時に削除され、アプリケーションのパフォーマンスには影響しません。そのため、コードの可読性を向上させるためにそれらを削除することはできますが、アプリケーションの実行方法には影響しません。

+1

優秀答え。 – heltonbiker

+5

@jon私はまだそれを得ることはありません!私は完全にd:DesignWidth = "500"とは分かりますが、LayoutOverridesは実際にどのディメンションも指定していないので、正確に何をしますか?あなたは「LayoutOverridesはそれを定義する」と言ったが、何を定義するのか? Blendでコンポーネントのサイズを変更した場合は、LayoutOverridesまたはd:DesignHeightではなくHeightに配置されます。 TextBlockでは非常に普及しているようですが、実際にBlendの何かに実際には影響していないような気がします。 - / –

2

D:プロパティは、実行時に固定値に設定されていますが、設計時にそれを上書きしたいされている場合はLayoutOverrides

、あなたはDを使用することができます。LayoutOverrides属性。デシジョンタイムで無視すべきすべてのプロパティは、セミコロンで区切ってリストすることができます。

(ソース:http://wpftutorial.net/DesigntimeVsRuntime.html

関連する問題