Skip to content

Commit 1f3c276

Browse files
committed
修复删除笔迹之后,没有对应的删除渲染的笔迹内容
1 parent cec72bd commit 1f3c276

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

src/DotNetCampus.AvaloniaInkCanvas/Core/AvaloniaSkiaInkCanvas.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,15 @@ public void RemoveStaticStroke(SkiaStroke skiaStroke)
200200

201201
_staticStrokeList.Remove(skiaStroke);
202202
skiaStroke.InkCanvas = null;
203+
204+
// 删除笔迹时,关闭位图缓存。这是因为可能存在以下情况:
205+
// 1. 第一次绘制时,笔迹 A 和 B 都在,此时有前置的渲染正在进入等待
206+
// 2. 用户删除了笔迹 A,设置缓存失效
207+
// 3. 此时渲染线程执行第一次绘制,获取的信息是笔迹 A 和 B 都在,生成了缓存
208+
// 4. 第二次绘制时,使用了缓存,笔迹 A 仍然显示
209+
// 此逻辑无法规避,只能直接在删除笔迹时关闭位图缓存
210+
UseBitmapCache(false);
211+
203212
InvalidateVisual();
204213
}
205214

0 commit comments

Comments
 (0)