ダブルクリックイベントを持っていないコントロールで判定を拾う
ソフトウェア開発担当の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は色々便利に使えるのがいいですね。