【问题标题】:change image source by xaml code?通过 xaml 代码更改图像源?
【发布时间】:2010-10-25 21:03:53
【问题描述】:

如何通过 xaml 代码连续更改图像源?

【问题讨论】:

  • “连续”?你什么意思?
  • 我想用另一个替换2个图像,我的意思是我想显示1.jpg,一秒钟后,2.jpg并一遍又一遍地重复

标签: .net wpf xaml


【解决方案1】:

就地情况下:

<Image Source="smiley_stackpanel.png" Stretch="Fill"/>

如果在风格上:

<Style TargetType="Image">
    <Setter Property="Source" Value="c:\asd.jpg" />
</Style>

【讨论】:

    【解决方案2】:

    这主要来自记忆,因此可能存在一个小错误,但基本上,您需要放入两个图像,并为它们的不透明度值设置动画:

    <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 - 这会有点消耗资源,因为它发生得如此之快且频繁。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多