UIElement.RenderSize 속성

정의

이 요소의 최종 렌더링 크기를 가져옵니다(또는 설정합니다).Gets (or sets) the final render size of this element.

public:
 property System::Windows::Size RenderSize { System::Windows::Size get(); void set(System::Windows::Size value); };
public System.Windows.Size RenderSize { get; set; }
member this.RenderSize : System.Windows.Size with get, set
Public Property RenderSize As Size

속성 값

이 요소의 렌더링된 크기입니다.The rendered size for this element.

예제

다음 예제에서는 OnRender 구현의 일부로 표시기를 정의 하는 사각형 그래픽을 만들고 크기를 조정 하기 위해 사용자 지정 표시기가 RenderSize 값을 사용 하는 방법을 보여 줍니다.The following example shows how a custom adorner uses the RenderSize value in order to create and size the rectangle graphic that defines the adorner, as part of its OnRender implementation.

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);
}
Protected Overrides Sub OnRender(ByVal drawingContext As 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.
  Dim adornedElementRect As New Rect(Me.AdornedElement.RenderSize)

  ' Some arbitrary drawing implements.
  Dim renderBrush As New SolidColorBrush(Colors.Green)
  renderBrush.Opacity = 0.2
  Dim renderPen As New Pen(New SolidColorBrush(Colors.Navy), 1.5)
  Dim renderRadius As Double = 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)
End Sub

설명

중요

WPF 프레임 워크 수준 레이아웃 시스템을 사용 하는 경우 XAMLXAML 또는 코드에서이 속성을 설정 하려고 하지 마십시오.Do not attempt to set this property, either in XAMLXAML or in code, if using the WPF framework-level layout system. 거의 모든 일반적인 애플리케이션 시나리오는이 레이아웃 시스템을 사용 합니다.Nearly all typical application scenarios will use this layout system. 레이아웃 시스템은 RenderSize 속성에 설정 된 크기를 직접 반영 하지 않습니다.The layout system will not respect sizes set in the RenderSize property directly. RenderSize 속성은 Adorner 클래스 지원과 같은 일반적인 레이아웃 프로토콜을 의도적으로 회피 하는 특정 WPF 코어 수준 브리징 사례를 사용할 수 있도록 쓰기 가능 하 게 선언 됩니다.The RenderSize property is declared writable only to enable certain WPF core-level bridging cases that deliberately circumvent the typical layout protocols, such as support for the Adorner class.

이 속성은 OnRender 또는 GetLayoutClip와 같은 레이아웃 시스템 재정의 내에서 적용 가능한 렌더링 크기를 확인 하는 데 사용할 수 있습니다.This property can be used for checking the applicable render size within layout system overrides such as OnRender or GetLayoutClip.

보다 일반적인 시나리오는 클래스 처리기 재정의 또는 OnRenderSizeChanged 이벤트를 사용 하 여 SizeChanged 이벤트를 처리 하는 것입니다.A more common scenario is handling the SizeChanged event with the class handler override or the OnRenderSizeChanged event.

적용 대상

추가 정보