【问题标题】:Can't get mouse event to trigger on canvas无法在画布上触发鼠标事件
【发布时间】:2020-08-09 11:32:31
【问题描述】:

我正在玩学校的一个画布项目。我玩过一些触发器,我发现它们适用于具有鼠标和键盘事件的绘图功能,但我无法在画布上触发鼠标事件。

我一直在寻找可以与鼠标移动一起使用的东西,因为它是一个拖放绘图项目,我需要鼠标移动。我尝试在GridCanvas_MouseLeftButtonDown 方法中设置断点,但无法触发。

CS 代码

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
        GridCanvas.MouseMove += GridCanvas_MouseMove;
        GridCanvas.MouseDown += GridCanvas_MouseLeftButtonDown;
        GridCanvas.MouseUp   += GridCanvas_MouseLeftButtonUp;
        KeyDown += new KeyEventHandler(Mainwindow_ColorKeyDown);
    }
    void Mainwindow_ColorKeyDown(object sender, KeyEventArgs e)
    {
        switch (e.Key)
        {
            case Key.B:
                {
                    mySolidColorBrush.Color=Color.FromArgb(0,255,255,255);
                }
                break;
            default:
                {

                }
                break;
        }
    }
   private void GridCanvas_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
   {
        _startingPoint = Mouse.GetPosition(GridCanvas);
   }

    private void GridCanvas_MouseMove(object sender, MouseEventArgs e)
    {
        if (!GridCanvas.IsMouseCaptured) { return; }
        Point endPoint = e.MouseDevice.GetPosition(GridCanvas);
      
        if (Keyboard.Modifiers == ModifierKeys.None)
        {
            //draw line
            Line myLine = new Line();
            myLine.Stroke = mySolidColorBrush;
            myLine.X1 = _startingPoint .X;
            myLine.Y1 = _startingPoint .Y;
            myLine.X2 = endPoint .X;
            myLine.Y2 = endPoint .Y;
        }
    }

    private void GridCanvas_MouseLeftButtonUp(object sender, MouseEventArgs e)
    {
        GridCanvas.ReleaseMouseCapture();
    }

    private Point _startingPoint ;
    private SolidColorBrush mySolidColorBrush = new SolidColorBrush();
   }
}

【问题讨论】:

    标签: c# wpf canvas


    【解决方案1】:

    首先给 GridCanvas 一个透明的背景,无论是在 xaml 中,还是在代码中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-17
      • 2022-01-10
      • 1970-01-01
      • 2020-03-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多