`ます。private void Grid_Loaded(オブジェクト送信者、RoutedEventArgs e)は、画面の周りにWPFフォームをドラッグするためにいくつかの単純化されたコードです。別の投稿でこのコードの一部を見たことがあるかもしれませんが、WPFフォームをドラッグする必要性に合わせて変更しました。
MouseLeftButtonDownでフォームの位置を取得する必要があるので、マウスポインタをフォーム上の同じ場所に配置して、画面上でドラッグします。
あなたはまた、画面にマウス位置を取得するには、次の参照を追加する必要があります。必要なのSystem.Windows.Forms
プロパティ:
private bool _IsDragInProgress { get; set; }
private System.Windows.Point _FormMousePosition {get;set;}
コード:
protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e)
{
this._IsDragInProgress = true;
this.CaptureMouse();
this._FormMousePosition = e.GetPosition((UIElement)this);
base.OnMouseLeftButtonDown(e);
}
protected override void OnMouseMove(MouseEventArgs e)
{
if (!this._IsDragInProgress)
return;
System.Drawing.Point screenPos = (System.Drawing.Point)System.Windows.Forms.Cursor.Position;
double top = (double)screenPos.Y - (double)this._FormMousePosition.Y;
double left = (double)screenPos.X - (double)this._FormMousePosition.X;
this.SetValue(MainWindow.TopProperty, top);
this.SetValue(MainWindow.LeftProperty, left);
base.OnMouseMove(e);
}
protected override void OnMouseLeftButtonUp(MouseButtonEventArgs e)
{
this._IsDragInProgress = false;
this.ReleaseMouseCapture();
base.OnMouseLeftButtonUp(e);
}
ありがとう、私はちょうどそのような答えのための2日を見ていた:) –