Windows Phone 7后退按钮和应用程序墓碑?

时间:2011-03-02 16:40:12

标签: windows-phone-7


在我的应用程序中,我这样做是为了在app.xaml.cs中映射我的uri,现在问题是我的应用程序是否在MainPage.xaml而不是Eula.xaml上停用我的应用程序出口。此外,应用程序将在其启动的同一页面上退出。 在App.xaml中

<UriMapper:UriMapper x:Name="mapper">
<UriMapper:UriMapping Uri="/MainPageOrEULA.xaml"/>
</UriMapper:UriMapper>

和App.xaml.cs

// Get the UriMapper from the app.xaml resources, and assign it to the root frame
UriMapper mapper = Resources["mapper"] as UriMapper;
RootFrame.UriMapper = mapper;

// Update the mapper as appropriate
IsolatedStorageFile isoStorage = IsolatedStorageFile.GetUserStoreForApplication();
if (isoStorage.FileExists("DataBase/MyPhoneNumber.txt"))
{
    mapper.UriMappings[0].MappedUri = new Uri("/MainPage.xaml", UriKind.Relative);
}
else
{
    mapper.UriMappings[0].MappedUri = new Uri("/EULA.xaml", UriKind.Relative);
}

请指导我。

此致

帕纳奇。

1 个答案:

答案 0 :(得分:0)

我建议不要只有一个完整的单独页面(它会像你注意到的那样中断导航),而只是在首页上放置一个包含EULA的网格或用户控件,这是不可见的。当用户首次打开页面时,您将显示grid / usercontrol,但在后续运行中,您不会。

<Grid x:Name="LayoutRoot">

    <Grid Name="EULA" Visibility="Collapsed" >
        <TextBlock Text = "You agree ...." />
        <Button Grid.Row="1" Content="I Agree" Click="AgreeClick" />
    </Grid>

    <Grid Name="MainGrid" >
    ....

然后在您的代码中,您可以将测试添加到已加载的事件

private void MainPageLoaded()
{
    IsolatedStorageFile isoStorage = IsolatedStorageFile.GetUserStoreForApplication();
    if (!isoStorage.FileExists("DataBase/MyPhoneNumber.txt"))
    {
        EULA.Visibility = Visibility.Visible;
        MainGrid.Visibility = Visibility.Collapsed;
    }
}

然后,当单击“我同意”按钮时,您可以存储文件并显示主网格

private void AgreeClick(....)
{
    // Create isolated storage file
    ....

    // Hide eula control
    EULA.Visibility = Visibility.Collapsed;
    MainGrid.Visibility = Visibility.Visible;

}