このドキュメントはアーカイブされており、メンテナンスされていません。

UIElement.DesiredSize プロパティ

更新 : 2007 年 11 月

レイアウト処理の測定パスの実行中にこの要素が計算したサイズを取得します。

名前空間 :  System.Windows
アセンブリ :  PresentationCore (PresentationCore.dll 内)

public Size DesiredSize { get; }
/** @property */
public Size get_DesiredSize()

public function get DesiredSize () : Size

このプロパティは XAML では設定できません。

プロパティ値

型 : System.Windows.Size

計算されたサイズ。これが、配置パスの目的のサイズになります。

このプロパティから返される値は、IsMeasureValid プロパティの値が true の場合にのみ、有効な測定値となります。

DesiredSize は通常、ArrangeOverrideMeasureOverrideOnRender などのレイアウト動作のオーバーライドを実装した場合に、測定要素の 1 つとしてチェックされます。シナリオによっては、実装ロジックで DesiredSize が完全に尊重されることも、DesiredSize に制約が適用されることも、そうした制約が親要素または子要素のその他の特性を変更することもあります。たとえば、スクロール可能領域をサポートする (ただし、既にスクロール可能領域が有効な WPF フレームワーク レベルのコントロールからは派生していない) コントロールでは、使用可能なサイズを DesiredSize と比較できます。その後、このコントロールの UI でスクロール バーを有効にする内部状態を設定できます。また、一部のシナリオでは、DesiredSize を無視することも可能です。

OnRender 実装の一部として、カスタム装飾で DesiredSize 値を使用し、その装飾を定義する四角形グラフィックスを作成してサイズ設定する方法を次の例に示します。

protected override void OnRender(DrawingContext drawingContext)
{
  // Get a rectangle that represents the desired size of the rendered element
  // after the rendering pass.  This will be used to draw at the corners of the 
  // adorned element.
  Rect adornedElementRect = new Rect(this.AdornedElement.RenderSize);

  // Some arbitrary drawing implements.
  SolidColorBrush renderBrush = new SolidColorBrush(Colors.Green);
  renderBrush.Opacity = 0.2;
  Pen renderPen = new Pen(new SolidColorBrush(Colors.Navy), 1.5);
  double renderRadius = 5.0;

  // Just draw a circle at each corner.
  drawingContext.DrawEllipse(renderBrush, renderPen, adornedElementRect.TopLeft, renderRadius, renderRadius);
  drawingContext.DrawEllipse(renderBrush, renderPen, adornedElementRect.TopRight, renderRadius, renderRadius);
  drawingContext.DrawEllipse(renderBrush, renderPen, adornedElementRect.BottomLeft, renderRadius, renderRadius);
  drawingContext.DrawEllipse(renderBrush, renderPen, adornedElementRect.BottomRight, renderRadius, renderRadius);
}


Windows Vista

.NET Framework および .NET Compact Framework では、各プラットフォームのすべてのバージョンはサポートしていません。サポートされているバージョンについては、「.NET Framework システム要件」を参照してください。

.NET Framework

サポート対象 : 3.5、3.0
表示: