6

エンティティ (イメージなど) をクリックすると 1 つのことを実行し、ダブルクリックすると別のことを実行するアプリケーションのインスタンスを誰か挙げることができますか?

私が見つけた唯一の例は、iTunesでトラックをダブルクリックすることですが、それはそれを選択し(シングルクリック機能)、それを再生します(ダブルクリック機能)。これは(論理的に)ダブルクリックがスーパーセットであることを意味します(シングルクリックを含む)。

基本的に、あることを行う画像のシングルクリックと別のことを行う画像のダブルクリックを(WPFで)実装するように求められていますが、これが概念的に正しいかどうかはわかりません。

誰かがこれを賢明に行っている例を持っているとしたら、それはありがたいですか?

4

8 に答える 8

18

Windows メッセージングの観点からは、ダブルクリックは常に最初にシングル クリック メッセージを生成します。Windows は、別のクリックが間に合ってダブルクリックに変わることを事前に予測することはできません。WPF がこの物理的な事実を隠しているとは思えません。

于 2009-06-09T15:49:49.483 に答える
11

直接の質問への回答: ダブルクリックとシングルクリック - これらは相互に排他的ですか? 答えはノーです。Windows がマウスでの動作を解釈する必要があるため、これらは相互に排他的ではありません。

ただし、ダブル クリックにシングル クリックの動作が含まれていない [つまり、2 つのイベントが相互に排他的な動作を示している] という先例に関するより漠然とした質問への回答として、Windows には、あなたの動作を示すように見える特定のイベントがいくつかあります。について尋ねています。

たとえば、タスクバー アプレットは次のようになります。

  • 通常、1 回クリックすると、その項目のショートカット メニューが開きます。
  • 通常、ダブルクリックすると、ショートカット メニューを開かずに、タスク バー項目がリンクされているアプリケーションのプロパティ メニューが開きます。

タスクバーの時計:

  • シングルクリックは何もしません。
  • ダブルクリックすると、日付と時刻のプロパティが開きます。

ただし、要求に応答するのに少し時間がかかることに気付くかもしれません。他の人が指摘しているように、一時停止は Windows がダブルクリックするかどうかを確認するのを待っています。ダブルクリックしないと、クリック動作が発生します。ダブルクリックすると、DoubleClick 動作が発生します。これらの特定の状況では、相互に排他的な動作を行うことが適切であると見なされ、他にもいくつかの動作がある可能性があります.

異なる行動が「正しい」か「間違っている」かは、状況によって大きく異なると思います。すべての状況で一方が正しく、他方が間違っていると明確に言うことはできないと思います。表示しようとしている動作が、 [自分のプログラマーの観点からではなく]ユーザーの観点から論理的に理にかなっている場合は、その動作を相互に排他的なものにしてください。ただし、ユーザーにとって論理的に意味がない場合は、使用を避けてください。

于 2009-06-09T15:59:33.433 に答える
2

シングル クリックの動作とは関係のないことをダブル クリックにさせるのは、一般的に悪いパターンです。シングル クリックとダブル クリックを区別するために、2 回目のクリックが来るかどうかを確認するためにしばらく待つ必要があります。何かを 1 回クリックしただけの場合、これにより当惑するような遅延が発生する可能性があります。

Raymond Chen は、この問題について、その方法を含めた優れたブログ投稿を行っています。

しかし、私は最初にデザイナーに押し返します。

于 2009-06-09T16:12:16.607 に答える
1

最もわかりやすいのは Finder/Explorer で、ファイルをシングルクリックすると選択され、ダブルクリックすると開きます。この種のことには多くの先例があり、人々は OS レベルに組み込むことで、ダブルクリックで別のことができると期待するよう十分に訓練されています。

  • テキスト選択 (存在するほとんどすべてのアプリで) - シングルクリックでカーソルを置き、ダブルクリックで単語を選択し、トリプルクリックで行全体を選択します。
  • Explorer / Finder - シングルクリックでファイルを選択し、ダブルクリックで開きます。
  • Outlook - シングル クリックで電子メールをプレビューし、ダブル クリックで新しいウィンドウで開きます。
于 2009-06-09T15:49:39.577 に答える
1

Coolirisでは、壁のセルをクリックすると選択されます。画像をダブルクリックすると、その画像から始まる全画面スライド ショー モードに移行します。

于 2009-06-09T15:49:55.647 に答える
0

ここで他の人が言ったことをまとめると、ダブルクリックはシングルクリックを「キャンセル」しません。

その結果として、シングルクリックによって変更される状態に依存するダブルクリックイベントで何かを実行しないでください。シングルクリックは常に最初に実行されるためです。

逆に、ダブルクリックアクションを開始するときに、シングルクリック後の状態が有効であると信頼できます。例:ファイルリストをシングルクリックするとファイルが選択されるため、ダブルクリックイベントではクリックされたファイルが選択されていることがわかります...

于 2009-10-26T08:54:20.500 に答える
0

マイクロソフトエクセル。選択されていないセルにマウスを移動します。

シングルクリック = セル選択

ダブルクリック = そのセルの編集モードに入る

于 2009-06-09T15:51:11.763 に答える
0
private void OnItemMouseDown(object sender, MouseButtonEventArgs e) {
    if(e.ClickCount==2) {
        // DoubleClick Function
    }

    if(e.ClickCount==1) {
        // Click Function
    }
}
于 2011-04-12T09:18:48.547 に答える