VisualStateManager.GoToSate()不起作用

时间:2014-07-29 14:19:18

标签: c# xaml windows-phone-8 visualstatemanager

我正在尝试在我的WP8应用中创建视觉状态。但即使是这个简单的例子,我也无法让它发挥作用。有人能发现什么是错的吗?

<StackPanel x:Name="LayoutRoot" Background="Transparent" Margin="1,0,-1,0">
    <VisualStateManager.VisualStateGroups>
        <VisualStateGroup x:Name="VisualStateGroup">
            <VisualState x:Name="Faded">
                <Storyboard>
                    <DoubleAnimation Duration="0" To="0.5" Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="ToFade" d:IsOptimized="True"/>
                </Storyboard>
            </VisualState>
        </VisualStateGroup>
    </VisualStateManager.VisualStateGroups>
    <Button Content="some text" x:Name="ToFade" />
    <Button Content="Change"
            Click="Button_Click" />
</StackPanel>

在代码背后:

    private void Button_Click( object sender, RoutedEventArgs e ) {
        var result = VisualStateManager.GoToState(this.ToFade, "Faded", true);
    }

应该为顶部按钮的不透明度设置动画。

1 个答案:

答案 0 :(得分:2)

我认为GoToState()方法的第一个参数应该是页面本身。请按以下方式致电GoToState()

VisualStateManager.GoToState(this, "Faded", true);