UIElement.RenderSize UIElement.RenderSize UIElement.RenderSize UIElement.RenderSize Property

定義

この要素の最終的な描画サイズを取得します (または、設定します)。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.

次の例では、 RenderSize OnRender実装の一部として、装飾を定義する四角形のグラフィックを作成およびサイズ設定するために、カスタム装飾が値を使用する方法を示します。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.

より一般的なシナリオは、クラスSizeChangedハンドラーのオーバーライドOnRenderSizeChangedまたはイベントを使用してイベントを処理することです。A more common scenario is handling the SizeChanged event with the class handler override or the OnRenderSizeChanged event.

適用対象

こちらもご覧ください