2017-11-12 38 views
0

私はボーダーレスアプリケーションを構築しています。私が達成する必要があるのは、ウィンドウをクリックしドラッグするだけでウィンドウを移動することですが、クリックしたときに何かしたいと思っています。C#WPF - DragMoveウィンドウとClickイベント

this is how my app looks ちょうどボタンですが、私は左クリックと右クリックの機能がありますが、今すぐドラッグを実装する方法を理解することはできません。 これは私のコードは、今だけ私は、その発生を並べ替える場合は、唯一の左クリックがうまくいく、作品をドラッグ

private void btnHome_MouseDown(object sender, MouseButtonEventArgs e) 
    { 
     if(e.LeftButton == MouseButtonState.Released) 
     { 
      toggle(); 
     } 
     else if(e.LeftButton == MouseButtonState.Pressed) 
     { 
      DragMove(); 
     } 
    } 

のように見えるものです。右クリック機能は現在、期待通りに機能しています。

+0

私は同様の質問を見つけましたが、著者が示唆しているコードをどこに置くのが正しいのか分かりません。私の評判は低いので、私はそこにコメントすることはできません https://stackoverflow.com/questions/1917176/c-sharp-wpf-dragmove-and-click –

答えて

0

EDIT:問題が見つかりました。あなたはマウスを聞くダウンイベント!!!! DragMove()メソッドが戻ったら

ちょうど

private void btnHome_MouseUp(object sender, MouseButtonEventArgs e) 
{ 
    toggle(); 
} 

private void btnHome_MouseDown(object sender, MouseButtonEventArgs e) 
{ 
    DragMove(); 
    RaiseEvent(new MouseButtonEventArgs(e.MouseDevice, e.Timestamp, MouseButton.Left) 
    { 
     RoutedEvent = MouseLeftButtonUpEvent 
    }); 
} 
+0

私はこれを入れて、すべての組み合わせを試みたが、何も動作しません。これは、ドラッグ機能はクリックしないで機能しているだけです。私はそれらを再配置しましたが、まだドラッグするだけです。 –

+0

編集を見て – Yitzchak

+0

いいえ。ここに私の現在のコードの大きな写真があります。私は奇妙な行動に遭遇した。私の最後でまだ実験中 https://1drv.ms/u/s!AiIsYCuW6f4yg9EcagXJ7wwQK4Uj7w –

0

があなたのことを行う] =次の新しい関数に新しいイベントをリンクする、すなわちマウスのキャプチャが解放されたとき:

private void btnHome_MouseDown(object sender, MouseButtonEventArgs e) 
{ 
    if (e.LeftButton == MouseButtonState.Pressed) 
    { 
     DragMove(); 
     System.Diagnostics.Debug.Write("some action..."); 
    } 
} 

かマウスがキャプチャされる前に何かしたい場合は、ブール値のフラグを使用できます。

関連する問題