none
WPF怎么用动画来切换图片 RRS feed

  • 问题

  • 我想实现鼠标移动到Border上,就换一张背景图片。请问用Animation怎么来实现。
    还有一个问题就是我有多个Border怎么实现共用一个动画。
    2014年7月30日 15:08

答案

  • 如果你只是想在两张图片间切换(捕获鼠标和未捕获鼠标),可以使用触发器Trigger,然后在子级设置图片的Source属性。至于为多个Border应用同一个动画,可以采用在父级元素设置样式让它自动应用到子级的方法。

    例如:

        <Grid>
            <Grid.Resources>
                <!--这里只设置样式的目标类型,不设置样式键-->
                <Style TargetType="Border">
                    <Style.Triggers>
                        <Trigger Property="IsMouseOver" Value="True">
                            <!--这里我使用的是纯色背景,你也可以用扩展标记换成图片背景-->
                            <Setter Property="Background" Value="White"/>
                        </Trigger>
                    </Style.Triggers>
                </Style>
            </Grid.Resources>
            <!--由于父级元素定义了针对于Border的样式,所以会应用到如下的所有子级Border-->
            <Border></Border>
            <Border></Border>
        </Grid>

    如果对使用扩展标记设置Background的属性不熟悉,可以采用在Border中添加容器,然后在容器中添加Image的方法,而父级(或更高的级别)中的资源则要添加针对Image的具有类似触发器的样式,触发器中修改Image的Source属性。

    上述代码没有经过严格验证,只是用来表达意思而已。如果你还有什么疑问,可以提出一起讨论。

    • 已标记为答案 roomanl 2014年7月31日 4:46
    2014年7月31日 1:38