Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I create a WPF style so all Image controls have a MouseDown(click) event on it?

Tags:

c#

styles

wpf

Since the Image control doesn't have a Click event, I simulate it using MouseDown event and it works exactly like a Click.

Here's my style:

 <Window.Resources>
    <Style x:Key="imageStyle" TargetType="{x:Type Image}">
        <Setter Property="RenderTransform">
            <Setter.Value>
                <ScaleTransform />
            </Setter.Value>
        </Setter>
        <Setter Property="RenderTransformOrigin" Value="0.5, 0.5" />
        <Style.Triggers>
            <EventTrigger RoutedEvent="Image.MouseEnter">
                <BeginStoryboard>
                    <Storyboard>
                        <DoubleAnimation Duration="0:0:0.5" From="1" To="1.2" AutoReverse="True"
                                 Storyboard.TargetProperty="RenderTransform.ScaleX"/>
                        <DoubleAnimation Duration="0:0:0.2" From="1" To="1.2" AutoReverse="True" 
                                 Storyboard.TargetProperty="RenderTransform.ScaleY"/>
                    </Storyboard>
                </BeginStoryboard>
            </EventTrigger>
        </Style.Triggers>
    </Style>
</Window.Resources>

Where/how can I create a click event so I don't have to do this to EVERY SINGLE IMAGE on my Form:

like image 500
Sergio Tapia Avatar asked Dec 02 '25 03:12

Sergio Tapia


1 Answers

You can use an EventSetter :

<EventSetter Event="MouseClick" Handler="image_Click"/>

And in code-behind :

private void image_Click(object sender, MouseButtonEventArgs e)
{
    Image image = sender as Image;
    if (image != null)
    {
        // do something with the image
    }
}
like image 102
Thomas Levesque Avatar answered Dec 04 '25 20:12

Thomas Levesque



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!