15

在我的 WPF 应用程序中,我有一些绘图功能。我已经使用 Canvas 解决了这个问题并手动处理鼠标手势,我还将绘制的 Strokes(包装在 InkPresenter 中)添加到这个 Canvas。

使用 Blend 我突然发现有一个叫做InkCanvas的东西。根据 Blend 的说法,这是一个“定义一个接收和显示墨水笔划的区域”的控件。,所以这听起来与我的工作有关。但是使用普通的 Canvas 一切似乎都可以正常工作。

所以; InkCanvas 与普通 Canvas 有何不同,我为什么要选择使用它呢?

4

4 回答 4

14

它们实际上是为了服务于两个不同的目的。Canvas用于布局。专门用于使用绝对定位更精确地控制布局。InkCanvas如您所知,用于捕捉和显示笔画。

您所做的一切都很好,但InkCanvas还有一些不错的附加功能,例如EditMode其他功能。它旨在使您免于编写大量您必须使用Canvas. 使用Canvas是一种你自己的方法,InkCanvas而使用是一种预先构建的方法。

于 2010-03-09T14:27:42.697 回答
7

InkCanvas 处理鼠标事件,以便您在画布上绘图。它还有这个功能:

  • 保存/加载
  • 调整大小/缩放
  • 突出显示文本后面
  • 橡皮擦模式

http://www.kirupa.com/blend_wpf/inkcanvas_pg1.htm

于 2010-03-09T14:31:19.803 回答
4

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

于 2011-09-04T13:05:20.083 回答
2

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

于 2020-09-03T10:27:34.193 回答