WPF 动态变换示例

代码:

<Window x:Class="WpfApplication1动画.动态LayOutRransform"

        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

        Title="动态LayOutRransform" Height="300" Width="300">

    <!--定义窗口资源-->

    <Window.Resources>

        <!--TargetType 指定操作的对象-->

        <!--Property 操作属性 Value属性值-->

        <!--Width 宽度-->

        <!--Height 高度-->

        <!--FontSize 字体大小-->

        <!--RenderTransformOrigin 中心点 默认是 0,0 点 也就是左上角-->     

        <Style TargetType="{x:Type Button}">

            <Setter Property="Width" Value="100"></Setter>

            <Setter Property="Height" Value="60"></Setter>

            <Setter Property="Margin" Value="10"></Setter>

            <Setter Property="FontSize" Value="20"></Setter>

            <Setter Property="RenderTransformOrigin" Value="0.5,0.5"/>

            <!--LayoutTransform属性以相同的方式变换元素-->

            <Setter Property="LayoutTransform">

                <Setter.Value>

                    <!--RotateTransform:能够让某对象产生旋转变化,

            根据中心点进行顺时针旋转或逆时针旋转。-->

                    <RotateTransform></RotateTransform>

                </Setter.Value>

            </Setter>

            <!--样式关联触发器-->

            <Style.Triggers>

                <!--MouseLeave鼠标移出事件 指定触发1的对象-->

               

                <EventTrigger RoutedEvent="Button.MouseEnter">

                    <EventTrigger.Actions>

                        <BeginStoryboard>

       <!--RepeatBehavior:使用RepeataBehavior属性可以控制如何重复运行动画,

                            Forever设置为永久重复-->

                            <!--Duration 动画的运动时长-->

                            <Storyboard RepeatBehavior="Forever"

                                 Storyboard.TargetProperty="LayoutTransform.Angle">

                                <DoubleAnimation From="0" To="360" Duration="0:0:2"></DoubleAnimation>

                            </Storyboard>

                        </BeginStoryboard>

                    </EventTrigger.Actions>

                </EventTrigger>

                <!--MouseLeave鼠标进入事件 RoutedEvent指定触发的标签和事件-->

                <EventTrigger RoutedEvent="Button.MouseLeave">

                    <EventTrigger.Actions>

                        <BeginStoryboard>

                            <!--RepeatBehavior:使用RepeataBehavior属性可以控制如何重复运行动画,

                            Forever设置为永久重复-->

                            <!--鼠标离开移回到0度-->

                            <Storyboard RepeatBehavior="Forever"

                                 Storyboard.TargetProperty="LayoutTransform.Angle">

                                <DoubleAnimation From="0"  Duration="0:0:1"></DoubleAnimation>

                            </Storyboard>

                        </BeginStoryboard>

                    </EventTrigger.Actions>

                </EventTrigger>

            </Style.Triggers>

        </Style>

    </Window.Resources>

    <!--StackPanel栈式面板 默认是垂直排列-->

    <StackPanel>

        <!--Background 背景颜色 Content 文本值-->

        <Button Content="Text1" Background="Yellow"></Button>

        <Button Content="Text2" Background="Yellow"></Button>

        <Button Content="Text3" Background="Yellow"></Button>

        <Button Content="Text4" Background="Yellow"></Button>

    </StackPanel>

</Window>

运行效果

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值