CommonStates не запускаются автоматически - PullRequest
0 голосов
/ 04 сентября 2018

Я пытаюсь использовать CommonStates для анимации моего пользовательского элемента управления. Я попробовал следующее:

 <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    <VisualStateManager.VisualStateGroups>
        <VisualStateGroup x:Name="CommonStates">
            <VisualState x:Name="Normal">
            </VisualState>
            <VisualState x:Name="PointerOver">
                <Storyboard>
                    <ColorAnimationUsingKeyFrames Storyboard.TargetName="circle"
                                                  Storyboard.TargetProperty="(Shape.Fill).(SolidColorBrush.Color)"
                                                  EnableDependentAnimation="True">
                        <LinearColorKeyFrame Value="Red"
                                             KeyTime="0:0:0.02" />
                    </ColorAnimationUsingKeyFrames>
                </Storyboard>
            </VisualState>
            <VisualState x:Name="Pressed">
            </VisualState>
        </VisualStateGroup>
    </VisualStateManager.VisualStateGroups>
    <Ellipse x:Name="circle"
             Height="280"
             Width="280"
             Fill="Green" />
</Grid>

Я могу произвести изменения, вручную вызвав UpdateStates(true), но при обращении к документации, участники должны запускаться автоматически.

Есть идеи, что я делаю не так?

1 Ответ

0 голосов
/ 04 сентября 2018

Некоторые элементы управления имеют определенные визуальные состояния и переключаются между ними в своей реализации, например Button или Checkbox. В таком случае эти состояния перечислены в документации как здесь . К сожалению, Grid не является одним из них, поэтому, если вам нужно подобное поведение, вам нужно добавить обработчики событий и использовать GoToState вручную. Вы также можете создать пользовательский производный класс из Grid для повторного использования этого поведения.

...