我需要能够在Xamarin Forms中进行一些直接绘制。是否有与画布等效的控件?我看到某个地方可能是AbsoluteLayout,但是我需要一些可以执行的命令,例如,执行DrawString
或DrawArc
。这样的事情是否存在,还是您必须创建一个自定义控件?
答案 0 :(得分:4)
尝试使用SkiaSharp,它基本上可以使您执行与在Android本机画布中执行的操作大致相同的操作。
要使用它:
将NuGet软件包SkiaSharp.Views.Forms
添加到您的项目中。
将Skia命名空间添加到您的页面或布局:
xmlns:skia="clr-namespace:SkiaSharp.Views.Forms;assembly=SkiaSharp.Views.Forms"
<skia:SKCanvasView
x:Name="CanvasView"
PaintSurface="OnCanvasViewPaintSurface"/>
private void OnCanvasViewPaintSurface(object sender, SKPaintSurfaceEventArgs args)
{
var info = args.Info;
var surface = args.Surface;
var canvas = surface.Canvas;
canvas.Clear();
// In this example, we will draw a circle in the middle of the canvas
var paint = new SKPaint
{
Style = SKPaintStyle.Fill,
Color = Color.Red.ToSKColor(), // Alternatively: SKColors.Red
};
canvas.DrawCircle(info.Width / 2, info.Height / 2, 100, paint);
}