UIElement.RenderSize Propriedade

Definição

Obtém (ou define) o tamanho final de renderização deste elemento.

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

Valor de Propriedade

O tamanho renderizado deste elemento.

Exemplos

O exemplo seguinte mostra como um adorner personalizado usa o RenderSize valor para criar e dimensionar o gráfico retangular que define o adorner, como parte da sua OnRender implementação.

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

Observações

Importante

Não tente definir esta propriedade, nem em XAML nem em código, se estiver a usar o sistema de layout ao nível do framework WPF. Quase todos os cenários típicos de aplicação utilizam este sistema de layout. O sistema de layout não respeita diretamente os tamanhos definidos na RenderSize propriedade. A propriedade RenderSize é declarada escrita apenas para permitir certos casos de bridge a nível WPF núcleo que contornam deliberadamente os protocolos típicos de layout, como o suporte para a classe Adorner.

Esta propriedade pode ser usada para verificar o tamanho de renderização aplicável dentro de sobreposições do sistema de layout, como OnRender ou GetLayoutClip.

Um cenário mais comum é gerir o SizeChanged evento com o override do handler de classe ou o OnRenderSizeChanged evento.

Aplica-se a

Ver também