Анимированная вкладкаПункт на драгентере - PullRequest
0 голосов
/ 12 октября 2018

Я пытаюсь создать эффект в моем элементе управления вкладками, когда перетаскиваю вкладку. Я хочу переместить его на количество пикселей вправо, создавая эффект скольжения при перетаскивании, но мне кажется, что анимация не срабатывает.Что мне здесь не хватает:

                       <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 Ответ

0 голосов
/ 12 октября 2018

Вы установили для свойства 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 должен работать, если вы установите для свойства RenderTransform значение TranslateTransform:

<Setter Property="RenderTransform">
    <Setter.Value>
        <TranslateTransform />
    </Setter.Value>
</Setter>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...