问题描述:

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?

网友答案:

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!

相关阅读:
Top