我正在使用wpf中的inkcanvs开发绘图工具控件。当我绘制矩形时,这是原始图像。
我设置编辑模式是逐点擦除。当我擦除矩形时,这是工作后的图像。
我希望擦除功能与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(...)
使用标准API无法做到这一点。
仅通过将墨图像(作为增强矢量的笔划)翻译成位图图像(其包含像素),可以操纵各个像素,但是笔划信息将丢失。
通过相当多的努力,可以创建一个应用程序来跟踪其所有用户的操作(绘制一些笔划,添加像素,移除像素)并在每次UI需要重绘时重放它们,从矢量注入到位图的转换需要。
这是一个很好的练习,但可能证明太慢和/或复杂。