[英]change key move event to mouse click and move c#
好到目前为止我有
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光标来控制它。 任何想法我会怎么做。 我不擅长这个,刚刚开始做一些指针。
我怀疑你想要覆盖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;
}
希望这可以帮助
以下内容可帮助您进行修改以适合您的实施
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;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.