问题标签 [inkcanvas]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
500 浏览

wpf - WPF InkCanvas:在墨水模式下,我可以触发 children_mousedown、children_mouseup 事件吗?

在 anInkCanvas中,我有一些UIElements 作为孩子。

UIElements 有诸如uielement_mousedown等之类的事件uielement_mouseup

如果我处于 inkcanvas 墨水模式,我可以触发uielement_mousedown,uielement_mouseup事件吗?

0 投票
2 回答
3807 浏览

wpf - 如何在 WPF 中手动向 InkCanvas 提交事件?

我如何能够手动提交事件以供 InkCanvas 接收?

我需要做的是将 InkCanvas 的模式设置为墨水模式,然后将虚拟事件发送到 InkCanvas,这样我就可以像用户使用真实鼠标一样获得绘图行为。

谢谢

0 投票
1 回答
538 浏览

wpf - 当我们有多个笔画时,InkCanvas 会变慢

我正在使用 InkCanvas 来创建类似应用程序的绘画。当我用来在画布上绘制多个笔画时,它的工作速度非常慢。

我的机器配置非常好:Intel(R) Core(TM) 2 Quad CPU Q6600 @ 2.40GHz (4CPUs),~2.4GHz and 2GB RAM.

当我有超过 1000 万笔划时,内存使用量会上升到 500 MB,而在绘制和擦除 CPU 时,使用 cross 30。正常样本也给出了相同的结果。重新调整窗口大小也很慢。我选择InkCanvas是因为我需要创建基于矢量的绘图应用程序,而 WPF 已经提供了它。

这背后的原因是什么?我应该使用 InkCanvas 进行类似油漆的应用吗?如果是,那么我应该如何解决这个问题?

0 投票
2 回答
914 浏览

c# - 如何同步两个 InkCanvas-es 绘图?

我正在尝试开发一个在远程主机上显示 WPF InkCanvas 绘图的应用程序。基本上,它将本地 InkCanvas 与多个远程主机同步。我已订阅StrokesChanged事件:

和处理程序。

当我绘制一条新曲线时,该事件仅调用一次。远程主机通过调用正确绘制它this.RemoteInkCanvas.Strokes.Add(addedStrokes)

当我通过InkCanvasEditingMode.EraseByStroke事件擦除曲线时,也调用了一次并且远程主机this.RemoteInkCanvas.Strokes.Remove(removedStrokes)成功使用。

问题来了!

如果this.DrawingCanvas.EditingMode是,InkCanvasEditingMode.EraseByPoint则事件被调用一次,但有两个集合(添加和删除)。这会导致远程主机发疯。这是擦除笔划的远程主机代码:

请注意,异常总是被捕获。

这里的一般问题:如何在集合中找到相同的笔划/点以便相应地删除它们?

0 投票
1 回答
542 浏览

wpf - 如何使笔画在 InkCanvas 上消失

我对这个论坛完全陌生,仍然是 WPF 的初学者。

我正在做一个项目,该项目需要对 inkcanvas 上的笔划进行动画处理。所需的动画之一是“消失”。我想通过单击按钮使选定的笔画逐渐消失,但出现在动画结束时。

由于笔画没有不透明度属性,我尝试使用 ColorAnimation 类和情节提要。我未能使此代码正常工作,因为我无法使用它们自己或使用它们的名称来定位笔画,因为它们没有任何内容。

现在我正在考虑通过逐渐将笔划的颜色更改为背景的颜色来实现这个系统,最后将其重置为初始值。这是一个代价高昂的循环,但我没有其他想法。

如果您可以与我分享任何其他解决方案,我将不胜感激。

提前致谢。

编辑:我没有回答评论,因为我正在处理同一项目的其他部分。

我尝试使用存储在 DrawingAttributes 中的 Alpha 值,但我无法更改该值,因为它不是变量。RGB 值也是如此。我不知道如何使笔画在循环中消失。我已经实施了大部分项目,所以我只需要一些东西让它们慢慢消失。您可以在下面找到一个示例,其中我更改了笔画本身以对其进行动画处理。

在另一堂课上,我有

我知道像这样通过调度员是不健康的,但现在就足够了。

再次提前感谢。

0 投票
1 回答
2691 浏览

wpf - 以编程方式从路径对象创建 InkCanvas Stroke

我正在尝试将一些扫描的手写材料转换为 InkCanvas,以便使用 InkAnalyser 进行手写识别。我已经在 XAML 中提供了我的手写材料。

我将此路径(字母 t 的边界形状)物理保存在 .XAML 文件中:

我读取了 Path 的 XAML 并将其从 MemoryStream 对象ms加载到 Path 对象中,如下所示:

我有一个名为 V 的 InkCanvas。我想以编程方式从 myPath 对象创建笔画数据并将其添加到 InkCanvas 中。

注意:我不想将 myPath 作为 UI 元素添加到 InkCanvas V 的 Children 中。

我试过这个: http ://code.msdn.microsoft.com/windowsdesktop/A-Coordinate-supported-03e4f1b7是一篇 MSDN 文章,描述了如何将坐标轴绘制到 InkCanvas 中。他正在解释将轴部分绘制到 DrawingContext 对象中。

但他没有解释如何通过这个 DrawingContext 对象将这些绘图实际加载到一个真实的 InkCanvas 对象上。我需要帮助。

0 投票
1 回答
586 浏览

wpf - InkCanvas 控件模板

我希望移动 InkCanvas 中的 InkPresenter 以使其 ZIndex 低于 InkCanvas 的子项。

换句话说,我想移动 Ink 以便它显示在作为子项添加到 InkCanvas 的图像和用户控件下。

我想知道是否有办法编辑 InkCanvas 的控制模板来实现这一点?我在完成这项任务方面完全没有成功。

最初我使用 InkCanvas 作为一层,并将子元素放入 InkCanvas 顶部的 Canvas 控件中;但是,我希望能够同时选择子项和笔划……因为 InkCanvas 内置了这个,所以我希望不要使用这样的 2 个控件。

谢谢。

-弗林尼

0 投票
1 回答
1160 浏览

c# - 用手指(触摸屏)而不是鼠标在 InkCanvas 上绘画 - mouseMove 而不是 MouseClick

我在 Wpf 窗口 (c#) 上使用 InkCanvas。当我将鼠标拖到画布上时,此画布正在工作,然后单击鼠标绘制我想要的任何东西。

我打算把它放在触摸屏上。据我了解,屏幕上的触摸(手指或笔)将充当鼠标移动,而不是鼠标单击,因此不会绘制任何内容。

我怎样才能做到这一点?

0 投票
1 回答
1613 浏览

c# - InkCanvas 上的 MouseLeftButtonDown 事件

嗨,我不知道为什么它不起作用。看起来我无法在 InkCanvas 上使用此事件。

XAML

代码背后

0 投票
3 回答
3354 浏览

c# - 在 InkCanvas 上选择多边形

我有一个在inkCanvas 上绘制多边形的应用程序。我想添加一个功能,在单击其中一个绘制的多边形后,它将处于编辑模式,然后我可以更改其中的一些属性,例如填充。

我编写了这段代码,但它选择了从 inkcanvas 左上角到我的多边形末尾的所有区域,但我只需要多边形区域。

xml:

背后的代码

编辑:我编辑了我的代码,我的第一个示例有点过于笼统。选择多边形看起来像这样,但我只想选择多边形区域。

例子