我使用以下代码,当我单击按钮时,它允许我设置大小并将正方形添加到 inkcanvas。它将形状添加到画布的左上角。我希望能够在画布上单击鼠标的位置将形状添加到画布。
目前我得到鼠标位置:
private void inkCanvas_MouseMove(object sender, MouseEventArgs e)
{
cursorCoords.Content = Mouse.GetPosition(Application.Current.MainWindow);
// Get the x and y coordinates of the mouse pointer.
System.Windows.Point position = e.GetPosition(this);
pX = position.X;
pY = position.Y;
}
选择形状工具(工具== 3)在我单击Inkcanvas的位置上绘制一个正方形。然而,这不起作用,只是画一个标准的笔划。此外,当我单击 inkcanvas 上的某个位置时,它不会将标签内容更新为当前位置坐标。
private void inkCanvas_MouseDown(object sender, MouseButtonEventArgs e)
{
if (tool == 3)
{
coordstest.Content = pX + '-' + pY;
switch (chosenShape)
{
case "square":
Stroke oS = NewRectangle(pY, pX, size * 4, size * 4);
DrawingAttributes attribs = new DrawingAttributes();
attribs.Color = shapeColour;//Colors.LimeGreen;
attribs.Height = 5.0;
attribs.Width = 5.0;
attribs.FitToCurve = false;
oS.DrawingAttributes = attribs;
inkCanvas.Strokes.Add(oS);
break;
}
}
}
tool
是选择的工具,以 1、2 或 3 的形式存储在一个字节中,用于笔、背景颜色和形状。
shapeChosen
是一个字符串,会有正方形、星形、圆形、三角形的选项。
我在 inkcanvas 鼠标按下事件处理程序中缺少什么来实现上述情况吗?当我想放置一个形状时,如何停止画笔?