0

我的应用程序有一个奇怪的问题。即使我使用 Visual Studio 2012 中的模板创建全景页面,当我加载应用程序时,第 2 项首先出现很短的时间,然后视图切换到第 1 项。我很确定它不应该是像这样行事。任何想法发生了什么?

    <Grid x:Name="LayoutRoot">
    <controls:Panorama Title="my application">

        <!--Panorama item one-->
        <controls:PanoramaItem Header="item1">
            <Grid/>
        </controls:PanoramaItem>

        <!--Panorama item two-->
        <controls:PanoramaItem Header="item2">
            <Grid/>
        </controls:PanoramaItem>
    </controls:Panorama>
</Grid>
4

1 回答 1

2

这是标准全景行为。但是您可以通过以下方式修复它:

<phone:PhoneApplicationPage 
    ... some lines missed ...
    Loaded="MainPage_OnLoaded">
    <Grid x:Name="LayoutRoot">
        <controls:Panorama x:Name="MainPanorama" Title="my application">

            <controls:PanoramaItem x:Name="DefaultItem" Header="item1">
                <Grid/>
            </controls:PanoramaItem>

            <controls:PanoramaItem Header="item2">
                <Grid/>
            </controls:PanoramaItem>
        </controls:Panorama>
    </Grid>
</phone:PhoneApplicationPage>

Item1 有一个名称,并添加了对 Loaded 事件的订阅。

然后在代码隐藏中:

public partial class MainPage : PhoneApplicationPage
    {
        public MainPage()
        {
            InitializeComponent();
        }

        private void MainPage_OnLoaded(object sender, RoutedEventArgs e)
        {
            MainPanorama.DefaultItem = DefaultItem;
        }
     }
于 2013-03-07T12:24:10.867 回答