组合:鼠标按下,鼠标移动和按钮单击

时间:2015-05-28 16:38:17

标签: button mousemove mousedown

我正在使用c#wpf。我想做的是,

按钮:当用户点击按钮时,启用矩形选择。然后用户可以在面板上绘制矩形。

鼠标按下事件:当用户点击鼠标按钮时,它会获取面板上当前位置的x轴。

鼠标移动事件:点击后,如果用户将鼠标移到左侧,我的code1将会运行。如果用户将鼠标向右移动,我的code2将会运行。

代码1: 当用户在点击面板后向右移动鼠标时,用户将绘制绿色矩形,当用户释放矩形消失的鼠标按钮并选择矩形中的对象时。

代码2: 当用户在点击面板后将鼠标移动到左侧时,用户将绘制红色矩形,当用户重新按下鼠标按钮时,矩形消失并选择矩形中的对象和矩形相交的对象。

这是我得到的:

public static System.Drawing.Point mouseLocation2;

public static System.Drawing.Point posmousedoWN;

按钮点击活动:

private void btnSelectBox_OnClick(object sender, RoutedEventArgs e)    
    {
        if (btnSelectBox.IsChecked.Value)
        {

            if (mypartialclass.mouseLocation2.X > mypartialclass.posmousedoWN.X)
            {
                //code1
            }

            if (mypartialclass.mouseLocation2.X < mypartialclass.posmousedoWN.X)
            {
                //code2
            }
          }  
        }

鼠标停止事件: (此事件在mypartial类中)

protected override void OnMouseDown(MouseButtonEventArgs e)         
    {

        posmousedoWN =  RenderContextUtility.ConvertPoint(e.GetPosition(this));     
} 

鼠标移动事件: (此事件在mypartial类中)

protected override void OnMouseMove(MouseEventArgs e)          
    {

        mouseLocation2 = RenderContextUtility.ConvertPoint(e.GetPosition(this));
}

此代码无效。当我点击按钮时,第一个code1运行。然后总是code2运行。我错过了什么?

0 个答案:

没有答案