zoukankan      html  css  js  c++  java
  • 按钮模板,标题抖动

                    <ControlTemplate TargetType="{x:Type Button}">
                        <Border x:Name="btn_border" Background="{TemplateBinding Background}" >
    
                            <TextBlock x:Name="btn_text" Opacity="0" RenderTransformOrigin="0.5,0.5" Text="{TemplateBinding Content}" FontSize="18" FontFamily="Candara" Foreground="Red" FontWeight="Normal" HorizontalAlignment="Center" VerticalAlignment="Top" Margin="0 5 0 0" >
                                 <TextBlock.RenderTransform>
                                    <RotateTransform></RotateTransform>
                                </TextBlock.RenderTransform>
                            </TextBlock>
                        </Border>
                        <ControlTemplate.Triggers>
                            <Trigger Property="IsMouseOver" Value="True">
                                <Setter Property="Cursor" Value="Hand" TargetName="btn_border" />
                                <Setter Property="Opacity" Value="1"  TargetName="btn_text">
    
                                </Setter>
                            </Trigger>
                            <EventTrigger  RoutedEvent="Button.MouseEnter">
                                <EventTrigger.Actions>
                                    <BeginStoryboard>
                                        <Storyboard >
                                            <DoubleAnimation  Storyboard.TargetName="btn_text"
                                                         Storyboard.TargetProperty="RenderTransform.Angle"  
                                                         BeginTime="00:00:00" From="0" To="5" Duration="00:00:0.1" 
                                                         AutoReverse="True"   RepeatBehavior="Forever"  />
                                        </Storyboard>
                                    </BeginStoryboard>
                                </EventTrigger.Actions>
                            </EventTrigger>
                            <EventTrigger RoutedEvent="Button.MouseLeave">
                                <BeginStoryboard>
                                    <Storyboard>
                                        <DoubleAnimation Storyboard.TargetName="btn_text" Storyboard.TargetProperty="RenderTransform.Angle"
                                                       BeginTime="00:00:00" From="0" To="0" Duration="00:00:0.1" AutoReverse="True"/>
                                    </Storyboard>
                                </BeginStoryboard>
                            </EventTrigger>
                        </ControlTemplate.Triggers>
    
                    </ControlTemplate>

    关键在与在需要变换的元素内声明 元素中心 RenderTransformOrigin(0.5,0.5)

    <XX.RenderTransform>

    <RotateTransform></RotateTransform>

    </XX.RenderTransform>

    然后在<Template.Tragers>中定义路由事件控制,定义故事板,触发

  • 相关阅读:
    [转]C# const和static readonly区别
    【整理】C#文件操作大全(SamWang)
    【类】C#计算器类(SamWang)
    [转]数据结构(C#版)概念整理
    【类】C# 文件操作类(SamWang)
    【原创】C# 实现拖拉控件改变位置与大小(SamWang)(附源代码下载)
    [转]关于release和debug的区别
    ASCII码值表
    Flex 4自定义皮肤的使用方法
    C++ 动态链接库 显式调用
  • 原文地址:https://www.cnblogs.com/qwhh/p/5360227.html
Copyright © 2011-2022 走看看