gpt4 book ai didi

wpf - 如何只允许在圆形路径中拖动?

转载 作者:行者123 更新时间:2023-12-04 18:52:35 25 4
gpt4 key购买 nike

是否可以限制拖动源在拖动时只能在圆形路径的边界内移动?

最佳答案

您不需要360点路径。相反,在拖动时,请使用Math.Atan2(Y,X)计算当前角度,然后在圆上生成点。您仍然需要在调整大小时计算centerradius并将其存储,或在MouseMove中进行计算。

    private void UserControl_MouseMove(object sender, MouseEventArgs e)
{
if (!isDraggingMarker)
return;
var position = e.GetPosition(this);

double angle = Math.Atan2(position.Y - center.Y, position.X - center.X);
var closest = new Point(center.X + radius*Math.Cos(angle),
center.Y + radius*Math.Sin(angle));

SetMarkerPosition(closest);
}

关于wpf - 如何只允许在圆形路径中拖动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3996687/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com