我试图在Xamarin.forms中使用SkiaSharp在图像上绘制一些多边形。 图像从服务器下载,而不是在后台缓存。所以我宁愿不操纵图像本身,而是绘制一个新的画布并将其放置在图像顶部的新视图中,就像在屏幕截图中一样。 (使用相对布局) 正如您在屏幕截图中看到的那样,放置矩形不是问题,而是透明"部分不是真的透明。
第一个屏幕截图的代码:
using (var paint = new SKPaint ()) {
paint.IsAntialias = true;
using (var path = new SKPath ()) {
path.MoveTo (0f, 0f);
path.LineTo (width, height);
path.LineTo (0, width);
path.Close ();
paint.Color = SKColors.Orange;
canvas.DrawPath (path, paint);
}
}
在第二次我尝试使用
canvas.Clear(SKColors.Transparent);
但它只会变为黑色背景。
有谁知道在滑雪视图中是否可以拥有完全透明的部分?
答案 0 :(得分:7)
你的问题帮我今天解决了这个问题:
除了设置画布'颜色为透明,包含Xamarin Forms元素也需要透明!
C#
canvas.Clear(SKColors.Transparent);
XAML
<views:SKCanvasView ... BackgroundColor="Transparent" />
答案 1 :(得分:0)
在这里猜测导致您忘记了屏幕截图,
您可能想使用clipping
类似:
canvas.Clear();
canvas.ClipPath(path);
canvas.ResetMatrix();
canvas.DrawBitmap(...)