ダブルクリックイベントを持っていないコントロールで判定を拾う
ソフトウェア開発担当のRyuです。
WPFで表題のことがしたいときの小技を紹介します。
GridやTextBlockなど、System.Windows.Controls.Control派生でないWPFコントロールはMouseDoubleClickイベントを持っていません。
TextBlockなら代わりにLabelを使うことも考えられますが、スタイルの異なるコントロールを使いたくないときなどもあったりします。
そんなときはContentControlを噛ませると、簡単にダブルクリックイベントを拾えます。
<ContentControl MouseDoubleClick="ContentControl_MouseDoubleClick"> <TextBlock Text="ダブルクリック!" /> </ContentControl>
コマンドで済む時はBlendを使ってこんな感じに。
<ContentControl> <i:Interaction.Triggers> <i:EventTrigger EventName="MouseDoubleClick"> <i:InvokeCommandAction Command="{Binding DoubleClickCommand}" /> </i:EventTrigger> </i:Interaction.Triggers> <TextBlock Text="ダブルクリックコマンド!!" /> </ContentControl>
ContentControlは色々便利に使えるのがいいですね。