-1

我正在 VS2012 中为 Windows Phone 8、C#/XAML 制作应用程序。现在,我想制作一个仅在安装应用程序并且用户第一次打开应用程序时才运行的页面。在那之后的任何时候都不会。

热心帮助,谢谢

4

1 回答 1

2

您可以使用 XML 文件写入一个值,说明页面是否已显示。因此,在此页面的构造函数中(或者更恰当地说,在它的 OnLoad 事件中),您可以将值写入 XML 文件并说它已经显示。然后在您的启动逻辑中,您可以读取此文件,如果该值已设置,您可以跳到不同的页面。

xml文件

<StartupValues>
    <HasFirstTimePageDisplayed>True</HasFirstTimePageDisplayed>
</StartupValues>

页面 - 你想显示 - 一次

Xaml

<Page Loaded="OnLoaded" ... />

Xaml.Cs

public void OnLoaded( object sender, RoutedEventArgs args )
{
    var xml = new XmlSerializer( typeof( StartupValues ) );
    using( var writer = new StreamWriter( "config_file_path_here.xml" ) )
    {
        xml.Serialize( new StartupValues
            {
                HasFirstTimePageDisplayed = true
            }, writer.BaseStream );            
    }
}

应用程序.xaml.cs

public void OnStartup( ... ) // I forget what the method signature for this is
{
    bool displayFirstPage = true;

    var xml = new XmlSerializer( typeof( StartupValues ) );
    using( var reader= new StreamReader( "config_file_path_here.xml" ) )
    {
        StartupValues values = xml.Deserialize( reader.BaseStream ) as StartupValues;
        displayFirstPage = values.HasFirstTimePageDisplayed;
    }

    if( displayFirstPage )
    {
        // display the page
    }
    else
    {
        // display a different page
    }
}

启动对象.cs

public class StartupValues
{
    public bool HasFirstTimePageDisplayed { get; set; }
}

一些与您的问题相关的阅读材料:

XmlSerializer

StreamReader

WP8 应用程序中的页面导航

WP8 开发中心(资源的好地方)

于 2013-09-24T17:55:23.250 回答