我的目标是在程序上创建一个线条工具,这样当按下按钮时,用户可以使用鼠标左键选择两个点,在第二次点击后,应该在选定的点之间绘制一条直线。分。
或类似于Microsoft绘图上的线条工具,如果这更容易。只要用户可以绘制一条线。
到目前为止我的代码很少。我遇到的问题是在下面的函数内部检测到鼠标。我最初使用了
的while循环if (MouseButton.Left == MouseButtonState.Pressed)
检查点击次数,但我刚创建了一个无限循环,因为条件永远不会满足。
我唯一的另一个想法是在LineTool_Click函数中使用一个事件,例如drawingCanvas.MouseDown
,但我不知道它是如何工作的:/
我是c#/ wpf的新手。
// When the LineTool button is clicked.....
private void LineTool_Click(object sender, RoutedEventArgs e)
{
Point startPoint = new Point(0,0);
Point endPoint = new Point(0, 0);
}
答案 0 :(得分:0)
最简单的选项可能是存储方法的外的开始/结束点,然后检查方法是否已被捕获:
// Store these outside of the method
Point lastPoint = new Point(0,0);
bool captured = false;
// When the LineTool button is clicked.....
private void LineTool_Click(object sender, MouseButtonEventArgs e)
{
if (!this.captured)
{
this.captured = true;
this.lastPoint = e.GetPosition(this.LineTool);
return;
}
// Okay - this is the second click - draw our line:
this.captured = false; // Make next click "start" again
Point endPoint = e.GetPosition(this.LineTool);
// draw from this.lastPoint to endPoint
}