wpf inkcanvas笔划按像素擦除

问题描述 投票:-1回答:1

我正在使用wpf中的inkcanvs开发绘图工具控件。当我绘制矩形时,这是原始图像。

Original Image

我设置编辑模式是逐点擦除。当我擦除矩形时,这是工作后的图像。

Erased Image

我希望擦除功能与Windows中的默认绘图工具一样有效。它将按像素工作。按像素擦除形状。

部分源代码

public class Label : Stroke
{
protected override void DrawCore(DrawingContext drawingContext, DrawingAttributes drawingAttributes)

Rect rect = new Rect((Point)this.StylusPoints[0], (Point)this.StylusPoints[1]);

drawingContext.DrawRectangle(...)
c# wpf drawing pixel
1个回答
0
投票

使用标准API无法做到这一点。

仅通过将墨图像(作为增强矢量的笔划)翻译成位图图像(其包含像素),可以操纵各个像素,但是笔划信息将丢失。

通过相当多的努力,可以创建一个应用程序来跟踪其所有用户的操作(绘制一些笔划,添加像素,移除像素)并在每次UI需要重绘时重放它们,从矢量注入到位图的转换需要。

这是一个很好的练习,但可能证明太慢和/或复杂。

© www.soinside.com 2019 - 2024. All rights reserved.