Sdílet prostřednictvím


UIElement.RenderSize Vlastnost

Definice

Získá (nebo nastaví) konečnou velikost vykreslení tohoto prvku.

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

Hodnota vlastnosti

Vykreslená velikost pro tento prvek.

Příklady

Následující příklad ukazuje, jak vlastní adorner používá RenderSize hodnotu k vytvoření a velikost obdélník grafiky, která definuje doplňky, jako součást jeho OnRender implementace.

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

Poznámky

Důležité

Nepokoušejte se nastavit tuto vlastnost v XAML nebo v kódu, pokud používáte systém rozložení na úrovni architektury WPF. Téměř všechny typické scénáře aplikací budou používat tento systém rozložení. Systém rozložení nerespektuje velikosti nastavené ve RenderSize vlastnosti přímo. Vlastnost RenderSize je deklarována zapisovatelná pouze pro povolení určitých případů přemostění na úrovni jádra WPF, které záměrně obcházejí typické protokoly rozložení, jako je například podpora pro Adorner třídu.

Tuto vlastnost lze použít ke kontrole příslušné velikosti vykreslování v rámci přepsání systému rozložení, jako OnRender je nebo GetLayoutClip.

Častějším scénářem je zpracování SizeChanged události s přepsání obslužné rutiny třídy nebo událostí OnRenderSizeChanged .

Platí pro

Viz také