如何在WPF中手动将事件提交到InkCanvas?
如何手动提交InkCanvas接收的事件 我需要做的是,将InkCanvas的模式设置为ink模式,然后将虚拟事件发送到InkCanvas,这样我就可以像用户使用真实鼠标一样获得绘图行为如何在WPF中手动将事件提交到InkCanvas?,wpf,inkcanvas,Wpf,Inkcanvas,如何手动提交InkCanvas接收的事件 我需要做的是,将InkCanvas的模式设置为ink模式,然后将虚拟事件发送到InkCanvas,这样我就可以像用户使用真实鼠标一样获得绘图行为 感谢以下代码片段显示了在InkCanvas中绘制形状的示例: StylusPointCollection stroke1Points = new StylusPointCollection(); stroke1Points.Add(new StylusPoint(50,10)); stroke1Points.A
感谢以下代码片段显示了在InkCanvas中绘制形状的示例:
StylusPointCollection stroke1Points = new StylusPointCollection();
stroke1Points.Add(new StylusPoint(50,10));
stroke1Points.Add(new StylusPoint(90,50));
stroke1Points.Add(new StylusPoint(10,50));
stroke1Points.Add(new StylusPoint(50,10));
Stroke stroke1 = new Stroke(stroke1Points);
canvas.Strokes.Add(stroke1);
其中canvas为InkCanvas类型。上图在画布中生成一个三角形
是的,如果答案对你有帮助,你可以接受。像这样的问题
private void inkSurface_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
inkSurface.CaptureMouse();
_inkStroke = new Stroke(
e.StylusDevice.GetStylusPoints(inkSurface));
_inkStroke.DrawingAttributes.Width = 5;
_inkStroke.DrawingAttributes.Height = 5;
_inkStroke.DrawingAttributes.Color = Colors.Black;
inkSurface.Strokes.Add(_inkStroke);
e.Handled = true;
}
private void inkSurface_MouseMove(object sender, MouseEventArgs e)
{
if (_inkStroke != null)
{
_inkStroke.StylusPoints.Add(
e.StylusDevice.GetStylusPoints(inkSurface));
}
e.Handled = true;
}
private void inkSurface_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
inkSurface.ReleaseMouseCapture();
e.Handled = true;
}
这不是我想要的,我想要使用InkCanvas中构建的手绘绘图,它在Ink模式下激活,我想要在没有真实鼠标事件的情况下实现它,这是可能的吗?如果没有鼠标,输入来自哪里???无论形状是什么,你必须知道点。我们有一个双笔板,通过串行端口连接,每支笔流坐标,我需要使用内置的徒手画将这些坐标传递到InkCanvas。这正是你可以用上面的代码做的。可以将坐标作为触针点添加到stroke1集合。如果检测到正在创建新笔划,则可以如上所述添加新StylusPointCollection。感谢Loxy,但InkCanvas中内置的徒手绘制要比使用StylusPointCollection快得多。我已经尝试过StylusPointCollection方法,它工作得很好,但速度不如InkCanvas上的徒手绘制