如何通过xaml代码连续更改图像源?
答案 0 :(得分:1)
如果是就地:
<Image Source="smiley_stackpanel.png" Stretch="Fill"/>
如果是风格:
<Style TargetType="Image">
<Setter Property="Source" Value="c:\asd.jpg" />
</Style>
答案 1 :(得分:0)
这主要来自内存,因此可能存在一个小错误,但基本上,您需要放入两个图像,并为其不透明度值设置动画:
<Grid>
<Image x:Name="imgOne" Source="image1.png">
<Image.Triggers>
<EventTrigger RoutedEvent="Image.Loaded">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetName="imgOne"
Storyboard.TargetProperty="(Image.Opacity)"
To="0"
Duration="0:0:1"
AutoReverse="True"
RepeatBehavior="Forever" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Image.Triggers>
</Image>
<Image x:Name="imgTwo" Source="image1.png" Opacity="0">
<Image.Triggers>
<EventTrigger RoutedEvent="Image.Loaded">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
Storyboard.TargetName="imgTwo"
Storyboard.TargetProperty="(Image.Opacity)"
To="1"
Duration="0:0:1"
AutoReverse="True"
RepeatBehavior="Forever" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Image.Triggers>
</Image>
</Grid>
严格地说,你可能不需要第一个动画,除非第二个图像有一些透明区域或者没有完全覆盖第一个动画。
此外,YMMV - 这将是一个资源消耗者,因为它发生得如此迅速和经常。