VisualStateManager,状态不会改变

时间:2014-12-26 10:01:47

标签: xaml

好的,所以我在代码隐藏中有这段代码:

void MainPage_SizeChanged(object sender, SizeChangedEventArgs e)
        {
            var b = Window.Current.Bounds;
            if (b.Width > b.Height)
            {
                VisualStateManager.GoToState(this, "Landscape", true);
            }
            else 
            {
                VisualStateManager.GoToState(this, "Portrait", true);
            }

        }

这很好用,当我“翻转”手机并选择“正确”状态时,该方法会被触发。

问题必须出在我认为的地方:

<Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="3*" />
            <ColumnDefinition Width="2*" />
        </Grid.ColumnDefinitions>
        <Grid Column="0">

       //Some stuff

        </Grid>

        <Grid Column="1" x:Name="People">

            //Stuff to be hidden in portrait

        </Grid>       
    </Grid>
    <VisualStateManager.VisualStateGroups>
        <VisualStateGroup>
            <VisualState x:Name="Landscape">
                <Storyboard>
                    <ObjectAnimationUsingKeyFrames Storyboard.TargetName="People"
Storyboard.TargetProperty="Visibility">
                        <DiscreteObjectKeyFrame KeyTime="0:0:1" Value="Visible"/>
                    </ObjectAnimationUsingKeyFrames>

                </Storyboard>
            </VisualState>
            <VisualState x:Name="Portrait">
                <Storyboard>
                    <ObjectAnimationUsingKeyFrames Storyboard.TargetName="People"
Storyboard.TargetProperty="Visibility">
                        <DiscreteObjectKeyFrame KeyTime="0:0:1" Value="Collapsed"/>
                    </ObjectAnimationUsingKeyFrames>                   
                </Storyboard>
            </VisualState>

        </VisualStateGroup>
    </VisualStateManager.VisualStateGroups>

有人能看到我在这里失踪的东西吗?非常感谢你。

0 个答案:

没有答案