C# Metro应用程序的屏幕变黑

C# Metro应用程序的屏幕变黑,c#,xaml,microsoft-metro,C#,Xaml,Microsoft Metro,当我第一次从横向视图切换到填充视图并从一个页面导航到另一个页面时,我的应用程序会变黑。后来它工作正常,但第一次变黑了。 甚至当我第一次从填充视图切换到横向视图并从一个页面导航到另一个页面时,它也会变黑。后来它工作正常,但第一次变黑了。 我的代码是用C#和XAML编写的。 当我从景观切换到填充时,我没有改变任何东西,反之亦然。 我只在视图从“捕捉”更改为“填充/横向”或从“填充/横向”更改为“横向”时才更改它。与其调整现有内容的大小,不如在用户移动到“捕捉”模式之前隐藏一组单独的内容 使用Visu

当我第一次从横向视图切换到填充视图并从一个页面导航到另一个页面时,我的应用程序会变黑。后来它工作正常,但第一次变黑了。 甚至当我第一次从填充视图切换到横向视图并从一个页面导航到另一个页面时,它也会变黑。后来它工作正常,但第一次变黑了。 我的代码是用C#和XAML编写的。 当我从景观切换到填充时,我没有改变任何东西,反之亦然。
我只在视图从“捕捉”更改为“填充/横向”或从“填充/横向”更改为“横向”时才更改它。

与其调整现有内容的大小,不如在用户移动到“捕捉”模式之前隐藏一组单独的内容

使用VisualStateGroup隐藏/显示给定全屏/快照视图的适当内容集

因此,与其调整现有字段的大小,不如:

<Page>
    <Grid>
        <Grid x:Name="FullScreenLayout">...
        </Grid>
        <Grid x:Name="SnappedScreenLayout">...
        </Grid>
        <VisualStateManager.VisualStateGroups>

            <!-- Visual states reflect the application's view state -->
            <VisualStateGroup x:Name="ApplicationViewStates">  
                <VisualState x:Name="Snapped">
                    <Storyboard>
                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="FullScreenLayout" Storyboard.TargetProperty="Visibility">
                            <DiscreteObjectKeyFrame KeyTime="0" Value="Collapsed"/>
                        </ObjectAnimationUsingKeyFrames>
                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="SnappedScreenLayout" Storyboard.TargetProperty="Visibility">
                            <DiscreteObjectKeyFrame KeyTime="0" Value="Visible"/>
                        </ObjectAnimationUsingKeyFrames>     
                    </Storyboard>
                </VisualState>
            </VisualStateGroup>
        </VisualStateManager.VisualStateGroups>
    </Grid>
</Page>

...
...

这里我们只是在快照模式下隐藏全屏布局并显示快照模式布局。Xaml有更多的内容,但它包含在其中,允许您提供特定于视图的布局,从而使Xaml更干净、更易于阅读。

与其调整现有内容的大小,不如在用户移动到快照模式之前隐藏一组单独的内容

使用VisualStateGroup隐藏/显示给定全屏/快照视图的适当内容集

因此,与其调整现有字段的大小,不如:

<Page>
    <Grid>
        <Grid x:Name="FullScreenLayout">...
        </Grid>
        <Grid x:Name="SnappedScreenLayout">...
        </Grid>
        <VisualStateManager.VisualStateGroups>

            <!-- Visual states reflect the application's view state -->
            <VisualStateGroup x:Name="ApplicationViewStates">  
                <VisualState x:Name="Snapped">
                    <Storyboard>
                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="FullScreenLayout" Storyboard.TargetProperty="Visibility">
                            <DiscreteObjectKeyFrame KeyTime="0" Value="Collapsed"/>
                        </ObjectAnimationUsingKeyFrames>
                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="SnappedScreenLayout" Storyboard.TargetProperty="Visibility">
                            <DiscreteObjectKeyFrame KeyTime="0" Value="Visible"/>
                        </ObjectAnimationUsingKeyFrames>     
                    </Storyboard>
                </VisualState>
            </VisualStateGroup>
        </VisualStateManager.VisualStateGroups>
    </Grid>
</Page>

...
...

这里我们只是在快照模式下隐藏全屏布局并显示快照模式布局。Xaml更多,但它包含在其中,允许您提供特定于视图的布局,从而使Xaml更干净、更易于阅读。

您使用的是RTM还是W8的预览版?我在预览版本中遇到了这个问题,但在我安装RTM版本时它停止了。我正在使用最终的RTM。。我知道问题出在哪里,但我想不出解决办法。我发现我不能调整文本框的大小(基本上是字体大小)。。如果我这样做,那么只有我的屏幕会变黑。我使用的是最终的RTM。。我知道问题出在哪里,但我想不出解决办法。我发现我不能调整文本框的大小(基本上是字体大小)。。如果我这样做,那么只有我的屏幕会变黑。。有什么解决办法吗??在视图之间切换时,我需要调整一些textblock的大小。您使用的是RTM还是W8的预览版本?我在预览版本中遇到了这个问题,但在我安装RTM版本时它停止了。我正在使用最终的RTM。。我知道问题出在哪里,但我想不出解决办法。我发现我不能调整文本框的大小(基本上是字体大小)。。如果我这样做,那么只有我的屏幕会变黑。我使用的是最终的RTM。。我知道问题出在哪里,但我想不出解决办法。我发现我不能调整文本框的大小(基本上是字体大小)。。如果我这样做,那么只有我的屏幕会变黑。。有什么解决办法吗??在视图之间切换时,我需要调整一些textblock的大小。我明白你的意思,但是你不认为应该有其他解决方案吗?我的意思是,我必须为快照视图单独开发一个完整的UI。我认为这是MS希望您做的,项目模板创建一个单独的、隐藏的、仅在快照视图中显示的列表视图。大多数应用程序将有完全不同的功能和快照视图中的布局(我的)。这是我参加微软早期采用者会议时得到的反馈。我明白你的意思,但你不认为应该有其他解决方案吗?我的意思是,我必须为快照视图单独开发一个完整的UI。我认为这是MS希望您做的,项目模板创建一个单独的、隐藏的、仅在快照视图中显示的列表视图。大多数应用程序将有完全不同的功能和快照视图中的布局(我的)。这是我在参加微软早期采用者会议时得到的反馈。