UIElement.RenderSize Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает (или задает) окончательный размер отрисовки этого элемента.
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
Значение свойства
Отрисованный размер для этого элемента.
Примеры
В следующем примере показано, как настраиваемое украшение использует RenderSize значение для создания и размера прямоугольника, определяющего украшение в рамках его 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);
}
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
Комментарии
Это важно
Не пытайтесь задать это свойство либо в XAML, либо в коде, если используется система макета на уровне платформы WPF. Почти все типичные сценарии приложений будут использовать эту систему макета. Система макета не будет учитывать размеры, заданные непосредственно в свойстве RenderSize . Свойство RenderSize объявляется доступным для записи только для включения определенных случаев бриджинга на уровне ядра WPF, которые намеренно обходит типичные протоколы макета, такие как поддержка Adorner класса.
Это свойство можно использовать для проверки применимого размера отрисовки в переопределениях системы макета, таких как OnRender или GetLayoutClip.
Более распространенный сценарий — обработка SizeChanged события с переопределением обработчика классов или событием OnRenderSizeChanged .