画像をクリックして実装するには:
- System.Windows.Control.Imageを拡張するクラスを作成します。
- RoutedEventとRoutedEventHandlerを作成して、マウス クリック イベントを容易にします。
- OnMouseLeftButtonDown をオーバーライドする
私の例では、クリック数を評価します。これを改善する方法がわからないためです
public class ImageHelper : Image
{
public static readonly RoutedEvent MouseLeftButtonClick =
EventManager.RegisterRoutedEvent(
"MouseLeftButtonClick",
RoutingStrategy.Bubble,
typeof(RoutedEventHandler),
typeof(ImageHelper));
public event RoutedEventHandler MouseLeftButtonClickEvent
{
add
{
AddHandler(MouseLeftButtonClick, value);
}
remove
{
RemoveHandler(MouseLeftButtonClick, value);
}
}
protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e)
{
if (e.ClickCount == 1)
{
RaiseEvent(new MouseLeftButtonClickEventArgs(
MouseLeftButtonClick, this));
}
base.OnMouseLeftButtonDown(e);
}
public class MouseLeftButtonClickEventArgs : RoutedEventArgs
{
public MouseLeftButtonClickEventArgs(RoutedEvent routedEvent, object source)
: base(routedEvent, source)
{
// some code.....
}
}
}
XAML:
<local:ImageHelper>
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseLeftButtonClickEvent">
<i:InvokeCommandAction Command="{Binding Path=MyCommand}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</local:ImageHelper>