UIElement.OnRender(DrawingContext) 方法


在派生类中重写时,会参与由布局系统控制的呈现操作。When overridden in a derived class, participates in rendering operations that are directed by the layout system. 调用此方法时,不直接使用此元素的呈现指令,而是将其保留供布局和绘制在以后异步使用。The rendering instructions for this element are not used directly when this method is invoked, and are instead preserved for later asynchronous use by layout and drawing.

 virtual void OnRender(System::Windows::Media::DrawingContext ^ drawingContext);
protected virtual void OnRender (System.Windows.Media.DrawingContext drawingContext);
abstract member OnRender : System.Windows.Media.DrawingContext -> unit
override this.OnRender : System.Windows.Media.DrawingContext -> unit
Protected Overridable Sub OnRender (drawingContext As DrawingContext)



特定元素的绘制指令。The drawing instructions for a specific element. 此上下文是为布局系统提供的。This context is provided to the layout system.


下面的代码示例演示面板派生类的可能实现。The following code example shows a possible implementation for a panel derived class.

// Override the OnRender call to add a Background and Border to the OffSetPanel
protected override void OnRender(DrawingContext dc)
    SolidColorBrush mySolidColorBrush  = new SolidColorBrush();
    mySolidColorBrush.Color = Colors.LimeGreen;
    Pen myPen = new Pen(Brushes.Blue, 10);
    Rect myRect = new Rect(0, 0, 500, 500);
    dc.DrawRectangle(mySolidColorBrush, myPen, myRect);
' Override the OnRender call to add a Background and Border to the OffSetPanel
Protected Overrides Sub OnRender(ByVal dc As DrawingContext)
    Dim mySolidColorBrush As New SolidColorBrush()
    mySolidColorBrush.Color = Colors.LimeGreen
    Dim myPen As New Pen(Brushes.Blue, 10)
    Dim myRect As New Rect(0, 0, 500, 500)
    dc.DrawRectangle(mySolidColorBrush, myPen, myRect)
End Sub


此方法在类中没有默认实现 UIElementThis method has no default implementation in the UIElement class.


OnRender(DrawingContext)可以重写方法,以添加更多的图形元素, (之前未在逻辑树中定义的) 到呈现的元素(如效果或装饰器)。The OnRender(DrawingContext) method can be overridden to add further graphical elements (not previously defined in a logical tree) to a rendered element, such as effects or adorners. DrawingContext对象作为参数传递,该参数提供用于绘制形状、文本、图像或视频的方法。A DrawingContext object is passed as an argument, which provides methods for drawing shapes, text, images or videos.