xamarin.forms - 在特定点替换 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(); 不清除以前的
解决方案
推荐阅读
- ios - Tableview 单元格填充和间距
- excel - 有没有办法在 for 循环中合并一个计时器以循环以防代码执行时间过长?
- python - 获取具有其他两个之间绝对差异的数据框
- android - kotlin Android 中以编程方式生成的视图的数据绑定
- bash - 在bash中使用通配符复制多个文件
- jenkins-pipeline - 在 Jenkins 管道中,如何将字符串转换为日期?
- json - 从 JSON 字符串中提取全名
- visual-studio - Visual Studio 中的 CMake 未正确设置 CMAKE_BINARY_DIR
- flutter - 如何在地图中的两个标记之间进行缩放
- html - Angular - View 打印旧值和新值