我正在尝试在Panorama控件中使用VisualStateManager,但它无法正常工作。
XAML
<phone:Panorama x:Name="Pano">
<phone:PanoramaItem x:Name="PanoItem">
<StackPanel x:Name="Stack">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="VisualStateGroup">
<VisualState x:Name="Normal">
<Storyboard>
<DoubleAnimation Duration="0:0:0.600"
To="90"
Storyboard.TargetProperty="RotationY"
Storyboard.TargetName="plane"
d:IsOptimized="True">
</DoubleAnimation>
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Button Content="some text"
x:Name="ToFade">
<Button.Projection>
<PlaneProjection x:Name="plane" />
</Button.Projection>
</Button>
<Button Content="Change"
Click="Button_Click" />
</StackPanel>
</phone:PanoramaItem>
</phone:Panorama>
背后的代码
private void Button_Click( object sender, RoutedEventArgs e ) {
var result = VisualStateManager.GoToState(this, "Normal", true);
}
奇怪的是,如果我从<StackPanel>
取出<Panorama>
,状态变化就像魅力一样。
本作品:
<!--<phone:Panorama x:Name="Pano">
<phone:PanoramaItem x:Name="PanoItem">-->
<StackPanel x:Name="Stack">
...与上面的代码一样......
</StackPanel>
<!--</phone:PanoramaItem>
</phone:Panorama>-->
我尝试将其他控件传递给VisualStateManager.GoToState()
this
,this.Pano
,this.PanoItem
,但没有成功。有人可以解释什么是错的吗?为什么?