我正在使用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运行。我错过了什么?