在WPF中按下按钮后检测鼠标单击的最佳方法

时间:2015-01-26 18:20:26

标签: c# wpf

我的目标是在程序上创建一个线条工具,这样当按下按钮时,用户可以使用鼠标左键选择两个点,在第二次点击后,应该在选定的点之间绘制一条直线。分。

或类似于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);
}

1 个答案:

答案 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
}