为什么我应该在WPF中使用InkCanvas?

15
在我的WPF应用程序中,我有一些绘图功能。我使用Canvas并手动处理鼠标手势来解决这个问题,并将绘制的Strokes(包装在InkPresenter中)添加到此Canvas中。
使用Blend时,我突然发现有一个叫做InkCanvas的东西。根据Blend的介绍,这是一个控件,“定义了接收和显示墨迹笔划的区域”,所以它听起来与我所做的事情相关。但是,使用普通的Canvas似乎一切正常。
那么,InkCanvas与普通Canvas有何不同,我为什么应该选择使用它?
4个回答

14

它们确实是为两种不同的目的而设计的。 Canvas 用于布局,特别是使用绝对定位更精确地控制布局。正如您所知,InkCanvas 用于捕捉和显示笔画。

您正在做的很好,但 InkCanvas 具有一些很好的附加功能,例如 EditMode 等。它旨在使您免于手动编写大量使用 Canvas 必须完成的内容。使用 Canvas 是一种自行构建的方法,而 InkCanvas 则是一种使用预构建方法的方式。


@Jeff Yates - 谢谢!我一定是出于习惯性的原因打错了服务器。 - Mike Two

8

4

就性能而言,使用真实鼠标事件的InkCanvas比将StylusPointCollection创建为笔画要快得多。我发现向StylusPointCollection添加新点是一项昂贵的操作。


2
我们可以使用InkCanvas WPF开发白板应用程序和画图应用程序。 编辑模式为我们提供了许多功能,如手势、绘画、擦除、多点触摸操作、选择元素拖放选项。 可以插入形状、图像、视频、笔画注释等元素。 我们可以保存/加载所有笔画和元素。 我们可以自定义InkCanvas类。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接