首页 > 解决方案 > 在特定点替换 SK Canvas 上已绘制的位图

问题描述

我想更新在 SK Canvas 上绘制的现有位图 >@particular coords>,同时调用 InvalidateSurface 能够绘制但之前的位图未清除。新图像低于旧图像!Canvas.Clear(0)没有清除所有以前的位图。

需要帮助来解决这个问题。

void OnCanvasViewPaintSurface(object sender, SKPaintSurfaceEventArgs args)
{
    canvas.Clear(0) // Dont seems be clearing old Bitmaps
    if (condition)
    {
        using (Stream streami = assembly.GetManifestResourceStream(resourceID))
        {

            resourceBitmap = SKBitmap.Decode(streami);
        }

        canvas.DrawBitmap(resourceBitmap, listPoint);
    }
    else
    {
        using (Stream streami = assembly.GetManifestResourceStream(secondID))
        {

            secondBitmap = SKBitmap.Decode(streami);
        }
        canvas.DrawBitmap(secondBitmap, listPoint); // Drawn beneath the older
    }
}

现在if 条件在代码块之外更改为 true,并再次调用 canvasView.InvalidateSurface(); 不清除以前的

标签: xamarin.formsxamarin.androidxamarin.iosskiasharpskia

解决方案


推荐阅读