Windows 在UWP中安装应用程序时仅显示一次页面

Windows 在UWP中安装应用程序时仅显示一次页面,windows,uwp,Windows,Uwp,我正在开发一个UWP windows 10应用程序,我希望有一个页面只在首次启动应用程序时显示。当应用程序在系统中第二次打开时,不应显示它 我在网上搜索过它,但找不到任何关于它的信息。在App.xaml.cs中查找OnLaunched处理程序。“切换”页面有以下代码行: 正如@Romasz在评论中所建议的,您可以在此处添加带有本地(或更好的-漫游)存储的附加逻辑,以检查应用程序是否首次启动: var roamingSettings = ApplicationData.Cu

我正在开发一个UWP windows 10应用程序,我希望有一个页面只在首次启动应用程序时显示。当应用程序在系统中第二次打开时,不应显示它


我在网上搜索过它,但找不到任何关于它的信息。

App.xaml.cs
中查找
OnLaunched
处理程序。“切换”页面有以下代码行:

正如@Romasz在评论中所建议的,您可以在此处添加带有本地(或更好的-漫游)存储的附加逻辑,以检查应用程序是否首次启动:

            var roamingSettings = ApplicationData.Current.RoamingSettings;
            if (roamingSettings.Values.ContainsKey("NotFirstTimeLaunch"))
            {
                rootFrame.Navigate(typeof(MainPage), e.Arguments);
            } else
            {
                roamingSettings.Values["NotFirstTimeLaunch"] = true;
                rootFrame.Navigate(typeof(FirstLaunchPage), e.Arguments);
            }

App.xaml.cs
中查找
OnLaunched
处理程序。“切换”页面有以下代码行:

正如@Romasz在评论中所建议的,您可以在此处添加带有本地(或更好的-漫游)存储的附加逻辑,以检查应用程序是否首次启动:

            var roamingSettings = ApplicationData.Current.RoamingSettings;
            if (roamingSettings.Values.ContainsKey("NotFirstTimeLaunch"))
            {
                rootFrame.Navigate(typeof(MainPage), e.Arguments);
            } else
            {
                roamingSettings.Values["NotFirstTimeLaunch"] = true;
                rootFrame.Navigate(typeof(FirstLaunchPage), e.Arguments);
            }

我知道我的答案可以进一步细化,但我已经花了2分钟,它对我来说是有效的。我在StartPage.xaml.cs文件中添加了一个页面加载事件,并在其中添加了以下代码

 if (localSettings.Values["IsFirstTime"] == null)
        {
            localSettings.Values["IsFirstTime"] = true;
        }

        if ((bool)localSettings.Values["IsFirstTime"])
        {
            localSettings.Values["IsFirstTime"] = false;
            this.Frame.Navigate(typeof(MainPage));
        }
确保在类级别创建localSettings对象(类型为ApplicationDataContainer)。现在在App.xaml.cs中,我为本地设置添加了全局变量,如下所示

 Windows.Storage.ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;
在app.xaml.cs文件内部,出现显示rootFrame.Content==null的if条件,并用以下代码替换其中的所有内容

 object value = localSettings.Values["IsFirstTime"];

            if (localSettings.Values["IsFirstTime"] != null)
            {
                if ((bool)value)
                {
                    rootFrame.Navigate(typeof(StartPage), e.Arguments);
                    localSettings.Values["IsFirstTime"] = false;
                }
                else
                {
                    rootFrame.Navigate(typeof(MainPage), e.Arguments);
                }
            }
            else
            {
                rootFrame.Navigate(typeof(StartPage), e.Arguments);
                localSettings.Values["IsFirstTime"] = false;
            }

我已尝试卸载我的应用程序,并再次运行,以查看是否显示“开始页”(并且它会显示)。第二次打开时,会显示主页。)

我知道我的答案可以进一步细化,但我已经花了2分钟的时间,它对我来说是有效的。我在StartPage.xaml.cs文件中添加了一个页面加载事件,并在其中添加了以下代码

 if (localSettings.Values["IsFirstTime"] == null)
        {
            localSettings.Values["IsFirstTime"] = true;
        }

        if ((bool)localSettings.Values["IsFirstTime"])
        {
            localSettings.Values["IsFirstTime"] = false;
            this.Frame.Navigate(typeof(MainPage));
        }
确保在类级别创建localSettings对象(类型为ApplicationDataContainer)。现在在App.xaml.cs中,我为本地设置添加了全局变量,如下所示

 Windows.Storage.ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings;
在app.xaml.cs文件内部,出现显示rootFrame.Content==null的if条件,并用以下代码替换其中的所有内容

 object value = localSettings.Values["IsFirstTime"];

            if (localSettings.Values["IsFirstTime"] != null)
            {
                if ((bool)value)
                {
                    rootFrame.Navigate(typeof(StartPage), e.Arguments);
                    localSettings.Values["IsFirstTime"] = false;
                }
                else
                {
                    rootFrame.Navigate(typeof(MainPage), e.Arguments);
                }
            }
            else
            {
                rootFrame.Navigate(typeof(StartPage), e.Arguments);
                localSettings.Values["IsFirstTime"] = false;
            }

我已尝试卸载我的应用程序,并再次运行,以查看是否显示“开始页”(并且它会显示)。第二次打开时,会显示MainPage)。

我认为您可以这样实现它-在localsettings中声明负责此操作的变量,比方说IsFirstTime-它应该是布尔值,默认值为false。然后在app.xaml.cs中查找负责导航到MainPage的代码,检查您的IsFirstTime值(如果不是真的),导航到您的一次性页面,如果是真的,导航到MainPage。您能解释一下,localsettings是什么意思吗?请看一下-您可以通过谷歌搜索“localsettings uwp”轻松找到更多信息。@Romasz,我已经读过这个文档,但是我应该在哪里写变量声明,这样它的默认值初始化就不会被再次读取了。我已经添加了这一行localSettings.Values[“IsFirstTime”]=true;在app.xaml.cs.的构造函数中,一旦用户成功加载您的onetime页面,我将添加/修改变量。一旦设置为true,它就不会被再次触发。我认为您可以像这样实现它-在localsettings中声明负责此操作的变量,比方说IsFirstTime-它应该是布尔值,默认值为false。然后在app.xaml.cs中查找负责导航到MainPage的代码,检查您的IsFirstTime值(如果不是真的),导航到您的一次性页面,如果是真的,导航到MainPage。您能解释一下,localsettings是什么意思吗?请看一下-您可以通过谷歌搜索“localsettings uwp”轻松找到更多信息。@Romasz,我已经读过这个文档,但是我应该在哪里写变量声明,这样它的默认值初始化就不会被再次读取了。我已经添加了这一行localSettings.Values[“IsFirstTime”]=true;在app.xaml.cs.的构造函数中,一旦用户成功加载您的onetime页面,我将添加/修改变量。一旦设置为true,它将不会再次被触发。+1,尽管我不确定是否会在FirstLaunchPage加载的事件中的某个位置设置该设置的值-以防导航失败。虽然这种情况非常罕见。+1,但我不确定是否会在FirstLaunchPage加载的事件中的某个位置设置该设置的值,以防导航失败。虽然这是非常罕见的情况。