2
私はカスタムコントロールを持っており、ユーザーがドラッグできるようにしたい。だから私は、カスタムコントロールに次のコードを入れます:移動可能なカスタムコントロール
void MoveableStackPanel_MouseMove(object sender, MouseEventArgs e)
{
if (IsMoving)
{
Point newLoc = e.GetPosition(null);
MainWindow.Instance.Title = newLoc.ToString(); // Debug
Margin = new Thickness(newLoc.X - 48, newLoc.Y - 48, 0, 0);
}
}
コードの "-48"に注意してください。 マウスを上または左に移動すると、マウスはコントロール領域にはもう存在しないため、MouseMoveイベントはトリガーされなくなります。だから、私はそれを回避するために-48を2度追加しました。しかし、ユーザーがフレームワークが更新できるよりも速くマウスを動かすと、マウスはコントロール領域の外に出て、コントロールも動かなくなります。
私はIMovableInterfaceを割り当て、メインフォームなどで移動しているコントロールのリストを保持することを考えていましたが、それはすべて面倒なことです...適切な解決策は何ですか?
P .:コントロールが動的に生成されるため、私はC#コードで解決策が必要であり、XMLでは解決されません。
をパーフェクト!魅力のように動作します。 – Napoleon