我的应用程序遇到了一个奇怪的问题。即使我使用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>
答案 0 :(得分: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;
}
}