Question

I'm trying to achive a fade out effect on an image in wpf and c#

<Image.Triggers> 
  <EventTrigger RoutedEvent="Image.Loaded">
    <BeginStoryboard>
           <Storyboard>
                 <DoubleAnimation Storyboard.TargetName="imgSlot1"
                            Storyboard.TargetProperty="Opacity"
                            From="1.0" To="0.0" Duration="0:0:1"
                            AutoReverse="True" RepeatBehavior="Forever"/>
                    </Storyboard>
                </BeginStoryboard>
  </EventTrigger>

With this code i see my image flashing,and that's ok but why if i change RepeatBehavior to "1x" or "0:0:1" and AutoReverse to "False" (i have to create a single effet of fade out on my image) nothing works?

Was it helpful?

Solution

I was a bit surprised when you said nothing works when you set AutoReverse="False" and RepeatBehavior="1x", so I tried it, and a single fade out works fine. Here is the xaml:

        <Image.Triggers>
            <EventTrigger RoutedEvent="Image.Loaded">
                <BeginStoryboard>
                    <Storyboard>
                        <DoubleAnimation Storyboard.TargetName="imgSlot1"
                        Storyboard.TargetProperty="Opacity"
                        From="1.0" To="0.0" Duration="0:0:1"
                        AutoReverse="False" RepeatBehavior="1x"/>
                    </Storyboard>
                </BeginStoryboard>
            </EventTrigger>
        </Image.Triggers>

However, I am not sure you want that to occur on the Image.Loaded event. And remember you can easily control that from C# or VB, even without a storyboard, similar to the following:

        DoubleAnimation fadeoutAnimation = new DoubleAnimation();
        fadeoutAnimation.Duration = TimeSpan.FromSeconds(1.0d);
        fadeoutAnimation.From = 1.0d;
        fadeoutAnimation.To = 0.0d;
        imgSlot1.BeginAnimation(Image.OpacityProperty, fadeoutAnimation);

Hope this helps!

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top