代码之家  ›  专栏  ›  技术社区  ›  user1336827

在dragenter上设置tabItem的动画

  •  0
  • user1336827  · 技术社区  · 6 年前

    我试图在我的tabcontrol中创建一个效果,当拖动到一个选项卡上时,我想将其向右移动x个像素,在拖动时创建一个滑动效果,但我似乎无法启动动画。我错过了什么:

                           <Style TargetType="{x:Type TabItem}">                               
                                <Setter Property="RenderTransform">
                                    <Setter.Value>
                                        <TransformGroup>
                                            <RotateTransform />
                                            <TranslateTransform />
                                            <SkewTransform />
                                            <ScaleTransform />
                                        </TransformGroup>
                                    </Setter.Value>
                                </Setter>
                                <Setter Property="Template">
                                <Setter.Value>
                                    <ControlTemplate TargetType="{x:Type TabItem}">
                                        <ControlTemplate.Triggers>
                                            <EventTrigger RoutedEvent="TabItem.DragEnter" >
                                                <BeginStoryboard>
                                                    <Storyboard>
                                                        <DoubleAnimation 
                                                             Storyboard.TargetProperty="(TabItem.RenderTransform).(TranslateTransform.X)"
                                                             From="0"
                                                             To="50"
                                                             Duration="0:0:0.5"
                                                             FillBehavior="Stop"/>
                                                    </Storyboard>
                                                </BeginStoryboard>
                                            </EventTrigger>
                                        </ControlTemplate.Triggers>
                                    </ControlTemplate>
                                </Setter.Value>
                            </Setter>
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   mm8    6 年前

    RenderTransform 属性到 TransformGroup 你想给 X 第二个孩子的财产 Storyboard.TargetProperty RenderTransform.Children[1].X :

    <DoubleAnimation 
        Storyboard.TargetProperty="RenderTransform.Children[1].X"
        From="0"
        To="50"
        Duration="0:0:0.5"
        FillBehavior="Stop"/>
    

    您当前的 DoubleAnimation 渲染转换 属性到 TranslateTransform

    <Setter Property="RenderTransform">
        <Setter.Value>
            <TranslateTransform />
        </Setter.Value>
    </Setter>