好到目前为止我有
private void UserControl_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Up)
this.Pin.Move(Direction.Up);
if (e.Key == Key.Down)
this.Pin.Move(Direction.Down);
if (e.Key == Key.Left)
this.Pin.Move(Direction.Left);
if (e.Key == Key.Right)
this.Pin.Move(Direction.Right);
}
很棒,我可以向左和向右移动我的物体。我想用我的souse光标来控制它。任何想法我会怎么做。 我不擅长这个并且刚刚开始做一些指针。
答案 0 :(得分:1)
我怀疑您要覆盖UserControl的OnMouseMove方法。然后,您可以查看从该处理程序获得的MouseEventArgs,并使用GetPosition方法获取鼠标坐标。
如果您将此点存储在某处的局部变量中,则在第一次鼠标移动后,您可以将其进行比较并沿适当的方向移动它。代码的示例可能是
private Point prev;
private void UserControl_OnMouseMove(object sender, MouseEventArgs e)
{
Point p = e.GetPosition();
if(prev == null)
prev = p;
if(p.Y > prev.Y)
this.Pin.Move(Direction.Up);
else if(p.Y < prev.Y)
this.Pin.Move(Direction.Down);
etc.
prev = p;
}
希望这有帮助
答案 1 :(得分:1)
以下内容可能会帮助您进行修改以适合您的实施
private bool _isMouseDown;
private void UserControl_MouseMove(object sender, MouseEventArgs e)
{
if (_isMouseDown)
{
this.Pin.Location = new Point(e.X,e.Y);
}
}
private void UserControl_MouseDown(object sender, MouseEventArgs e)
{
_isMouseDown = true;
}
private void UserControl_MouseUp(object sender, MouseEventArgs e)
{
_isMouseDown = false;
}