이 설명서는 보관되지만 유지 되지 않습니다.

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는 대개 ArrangeOverride, MeasureOverride 또는 OnRender 같은 레이아웃 동작 재정의를 구현할 때 측정 요소 중 하나로 확인됩니다. 시나리오에 따라 구현 논리에서 DesiredSize를 그대로 적용하는 경우도 있고, DesiredSize에 대해 제약 조건이 적용될 수도 있습니다. 이러한 제약 조건으로 인해 부모 요소 또는 자식 요소의 다른 특성이 변경될 수도 있습니다. 예를 들어 스크롤 가능한 영역을 지원하는 컨트롤(이미 스크롤 가능한 영역을 활성화하는 상태인 WPF 프레임워크 수준 컨트롤에서는 파생시킬 수 없음)은 사용 가능한 크기를 DesiredSize와 비교할 수 있습니다. 그런 다음 이 컨트롤은 해당 컨트롤에 대해 UI에 스크롤 막대를 사용하도록 설정한 내부 상태를 설정할 수 있습니다. 특정 시나리오에서는 DesiredSize를 무시할 수도 있습니다.

다음 예제에서는 사용자 지정 표시기가 DesiredSize 값을 사용하여 해당 OnRender 구현의 일부로 표시기를 정의하는 사각형 그래픽을 만들고 크기를 지정하는 방법을 보여 줍니다.

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에서 지원
표시: