如何在Windows Phone中启动新页面时在后台打开页面?

时间:2014-04-14 21:23:03

标签: windows-phone-8 admob page-refresh

我有一个页面很少的简单应用程序。

在第一页上我有addMob,这工作正常。 在该页面上,我有一个联系页面的按钮。当我打开联系页面并返回主页面时,addMob会刷新。

我不想那样做。当用户从联系页面返回时,如何将该第一页放在后台而不再重新开始?

1 个答案:

答案 0 :(得分:0)

没有。按照设计,在Windows Phone中,一次只能有一个页面处于活动状态(可见)。在页面之间导航时,广告控件将自动卸载并刷新。我们无法控制这种行为。

根据我的经验,如果导航相当罕见,我认为我们不必担心广告会刷新。只要您希望用户平均在页面上停留约20至30秒,我建议您不要担心刷新。事实上,(再次,根据我的个人经验)我使用此实现获得的点击次数多于以固定间隔刷新一个静态广告控制。

但是,如果你仍然需要避免广告更新,这里有几个解决方法。

选项1:在主页面中嵌入“联系页面”作为ContentControl / UserControl。根据需要显示和隐藏联系人控件。下面是一个非常基本的XAML设计来演示这一点。

<Grid>
    <Grid.RowDefinition>
        <RowDefinition Height="Auto" />
        <RowDefinition />
    </Grid.RowDefinition>

    <AdControl Grid.Row="0" Height="80" />

    <Grid Name="MainPage" Grid.Row="1">
        <!-- Main page content -->
    </Grid>

    <view:ContactPage Name="Contacts" Grid.Row="1" Visibility="Collapsed">
        <!-- Contact page content -->
    </view:ContactPage>
</Grid>

另外,如果你采用这种方法,请记得处理BackButtonPress。当内容页面可见时,用户希望按下后退按钮将其带回主页面。

选项2:如果您的应用程序设计允许,请使用PanaromaPivot control来显示“主要”和“联系”页面。以下示例,

<Grid>
    <Grid.RowDefinition>
        <RowDefinition Height="Auto" />
        <RowDefinition />
    </Grid.RowDefinition>

    <AdControl Grid.Row="0" Height="80" />

    <controls:Pivot Grid.Row="1">
        <controls:PivotItem Header="Main page">
            <!-- Main page content -->
        </controls:PivotItem>

        <controls:PivotItem Header="Contacts">
            <!-- Contact page content -->
        </controls:PivotItem>
    </controls:Pivot>
</Grid>