VisualState commonState не работает xaml

У меня есть это представление XAML. VisualStateGroups для визуальных триггеров работает нормально, а VisualStateGroup для обычных состояний — нет.

Сначала я пытаюсь назначить прямоугольник, а потом ничего не работает. В других представлениях это работает нормально.. :(

<view:NavigationStoredPage.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="/Styles/ResponsiveStyles.xaml"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</view:NavigationStoredPage.Resources>
    <Grid>
        <VisualStateManager.VisualStateGroups>
            <VisualStateGroup x:Name="CommonStates">
                <VisualState x:Name="Normal"/>
                <VisualState x:Name="PointerOver">
                    <Storyboard>
                        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Fill" Storyboard.TargetName="rer">
                            <DiscreteObjectKeyFrame KeyTime="0" Value="#121212"/>
                        </ObjectAnimationUsingKeyFrames>
                    </Storyboard>
                </VisualState>
                <VisualState x:Name="MouseOver">
                    <Storyboard>
                        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Fill" Storyboard.TargetName="rer">
                            <DiscreteObjectKeyFrame KeyTime="0" Value="#121212"/>
                        </ObjectAnimationUsingKeyFrames>
                    </Storyboard>
                </VisualState>
            </VisualStateGroup>
        </VisualStateManager.VisualStateGroups> 
        <Rectangle Fill="Red" x:Name="rer" Width="100" Height="100" HorizontalAlignment="Left" Canvas.ZIndex="99" VerticalAlignment="Top" />

person Santiago    schedule 02.10.2015    source источник
comment
Я думаю, что общие состояния работают только в контроле.   -  person Tamás Deme    schedule 29.10.2015


Ответы (1)


Ваш код фактически должен перейти к одному из этих CommonStates, используя VisualStateManager.GoToState() для перехода в состояние. Это происходит автоматически для элемента управления типа Button, потому что где-то в классе Button или его базовом классе есть вызов GoToState().

person Filip Skakun    schedule 28.03.2016