C# Avalonia 11.0.6 绘图
在 Avalonia 11.0.6 中,Render
方法是被标记为 sealed
的,意味着不能直接在子类中重写这个方法。这样的设计可能是为了确保一致性和避免误用。
如果你需要在 Avalonia 中进行自定义的绘图操作,可以使用 DrawingContext
,但是需要通过注册 Rendering
事件来执行绘制操作,而不是重写 Render
方法。以下是一个示例:
using Avalonia;
using Avalonia.Controls;
using Avalonia.Media;
class MyCanvas : Canvas
{
public MyCanvas()
{
// 注册 Rendering 事件
this.AddHandler(RenderingEvent, (s, e) => OnRendering(new DrawingContext(RenderingEventArgsBase.New((IVisual)s))));
}
private void OnRendering(DrawingContext drawingContext)
{
// 绘制操作
// ...
// 举例:绘制一个矩形
Rect rectangleBounds = new Rect(50, 50, 100, 100);
IBrush rectangleBrush = Brushes.Blue;
Pen rectanglePen = new Pen(Brushes.Black, 2);
drawingContext.DrawRectangle(rectangleBrush, rectanglePen, rectangleBounds);
}
}