我需要能够在 Xamarin Forms 中进行一些直接绘图。是否有与 Canvas 等效的控件?我在某个地方看到了可能是 AbsoluteLayout,但我需要一些我可以执行的东西,例如,在其上执行 DrawString
或 DrawArc
。有这样的东西存在吗,还是必须要创建自定义控件?
最佳答案
试试 SkiaSharp ,它基本上允许你做的事情与在 Android 的原生 Canvas 中做的差不多。
使用它:
将 NuGet 包
SkiaSharp.Views.Forms
添加到您的项目中。将 Skia 命名空间添加到您的页面或布局中:
xmlns:skia="clr-namespace:SkiaSharp.Views.Forms;assembly=SkiaSharp.Views.Forms"
- 添加 Skia Canvas View ,从后面的代码中定义将用于在其上绘制的回调方法的名称:
<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);
}
关于xamarin - Xamarin 中是否有 Canvas 控件的等价物,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55936160/