2012-04-26 8 views
8

私の要素にIsMouseOverトリガがあります。私はまたドラッグアクションが起こっているので、別の要素がマウスをキャプチャするので、IsMouseOverトリガは起こりませんが、ドラッグしたときに特定の要素(マウスのキャプチャされたもの)で明示的に発生するようにします。これは可能ですか?マウスをキャプチャしたときのIsMouseOver

+0

質問の回答は見つかりましたか? –

答えて

0

ユーザーが何かをドラッグしているとき、マウスはその瞬間に「キャプチャ」され、マウスイベントはマウスが通過するコントロールに送信されません。実際に「マウスをキャプチャした」コントロールだけがマウスイベントを受け取ります。したがって、あなたはそれらのイベントをそこで処理する必要があります。これは簡単なはずです。 問題がある場合は、サンプルコードを電子メールでお送りください。私はあなたにチェックします。最高の願い。

0

私はこれが何年も前に尋ねられたことを知っていますが、誰かが(私のような)検索エンジンからここに来る場合は、ここで自分で問題を解決する方法です。代わりにIsMouseOverプロパティを使用しての、マウスがあなたのコントロール内にあるかどうかを判断するために、あなたのコード内でヒットテストを使用します。

bool IsMouseOverEx = false; 

VisualTreeHelper.HitTest(this, d => 
{ 
    if (d == this) 
    { 
    IsMouseOverEx = true; 
    return HitTestFilterBehavior.Stop; 
    } 
    else 
    return HitTestFilterBehavior.Continue; 
}, 
ht => HitTestResultBehavior.Stop, 
new PointHitTestParameters(Mouse.GetPosition(this))); 

if (IsMouseOverEx) 
{ 
    //Do whatever you need in case of MouseOver 
} 

N.B.質問を読んでいない場合、このメソッドは、マウスが "捕捉され"、したがってIsMouseOverプロパティが正しく動作しない状況の回避策であることに注意してください。通常の状況では、常にIsMouseOverを使用する必要があります。

関連する問題