mousemove时我有一个圆圈我可以得到e.GetPosition(this)。但如何以编程方式获取相对于圆心的角度?获取WPF中鼠标位置相对于圆心的最简单方法
我在网上看到了一些带有XAML绑定的示例时钟。这不是我想要的,我想从鼠标位置相对于圆心获取角度值。
这是我的尝试:
private void ellipse1_MouseMove(object sender, MouseEventArgs e)
{
Point position = e.GetPosition(this);
double x = position.X;
double y = position.Y;
double angle;
double radians;
radians = Math.Atan2(y, x);
angle = radians * (180/Math.PI);
}
角度似乎不正确的永远不会是0也不是90 180
e.GetPosition(this)究竟返回什么? – 2011-01-24 16:08:25
那么这是我的问题的一部分,它是WPF标准mousemove处理程序:) – user310291 2011-01-24 16:26:40
获取'this'的位置会给你包含处理程序的对象的位置,可能是您的情况中的一个窗口。如果您想要相对于引发事件的椭圆的位置,或者直接命名它,即e.GetPosition(ellipse1),则可以使用e.GetPosition(sender)。 – 2011-01-24 16:55:56