20

XAMLにListViewコントロールがあります。アイテムは、グリッド内にTextBlockを備えたテンプレートコントロールによって定義されます。ここで、TextBlockをダブルクリックしたときにアクションをトリガーしたいと思います。驚いたことに、フックするDoubleDoubleイベントがないことがわかりました...!それを持っていないのはTextBlockだけだと思いましたが、実際にはコントロールにはありません。私はDoubleClickとMouseDoubleClickを探していますが、それらは間違いなく存在しません。

私は、EventTriggerがGesture="MouseDoubleClick"でコントロールに追加される提案を読みました。有望に見えますが、私の場合、コンパイラは文句を言って、MouseDoubleClickのようなジェスチャはないと言っています。ActiveXと同じです。

.Netの一部のバージョンでDoubleClickが表示されなくなりましたか?私は.NetFramework4.5を使用しており、プロジェクトはWPFアプリケーションです。

MouseDownを検出し、最後のMouseDownからの経過時間を確認して、愚かな回避策を実行する必要がありますか?石のように聞こえる...

4

3 に答える 3

28

あなたの問題を定式化することは常に新鮮です!しばらく考えた後、彼らは別々のイベントを持つのではなく、マウスイベントにカウンターを追加したのではないかと思いました。そうです!!! MouseButtonEventArgsにはClickCountプロパティがあります。値2を確認すると、DoubleClickが検出されます。

ActiveXをキックアウトするだけでも、まだ少し奇妙です。検索した後でも、いつ、なぜそれが消えたのかについての言及は見つかりません。

于 2012-11-01T07:48:57.317 に答える
23

ヤコブが意味する解決策を示すだけです:

private void img_MouseDown(object sender, MouseButtonEventArgs e)
        {
            if (e.LeftButton == MouseButtonState.Pressed && e.ClickCount == 2)
            {
                //DO SOMETHING
            }
        }
于 2012-11-01T10:13:00.363 に答える