我到處搜索,但找不到我的問題的教程。我想設置一個頁面顯示,當應用程序第一次啓動。像日:如何在C#中設置「First-Launch-View」#
首先推出: Greeting.xaml> Setting.xaml> MainPage.xaml中
定期推出直接進入炫魅廣東。
我該怎麼做?
我並不是指一個Splashscreen,我的意思是一個頁面,只顯示第一次啓動應用程序,就像一個小教程。
我到處搜索,但找不到我的問題的教程。我想設置一個頁面顯示,當應用程序第一次啓動。像日:如何在C#中設置「First-Launch-View」#
首先推出: Greeting.xaml> Setting.xaml> MainPage.xaml中
定期推出直接進入炫魅廣東。
我該怎麼做?
我並不是指一個Splashscreen,我的意思是一個頁面,只顯示第一次啓動應用程序,就像一個小教程。
您可以在App.xaml.cs中設置「第一個」頁面。搜索OnLaunched void並將rootFrame.Navigate(typeof(MainPage));
更改爲rootFrame.Navigate(typeof(Greeting));
,或者將其更改爲您喜歡的名稱。
下一步是檢查應用程序是否第一次啓動。你可以設置一個應用程序設置來做到這一點。 1.爲您的Greeting.xaml創建OnnavigatedTo void(只需鍵入「protected override void onna」,IntelliSense會向您建議),並通過在「protected」之後插入「async」使得異步同步2.使用此代碼:
if (ApplicationData.Current.LocalSettings.Values.ContainsKey("isFirstLaunch"))
{
// if that's the first launch, stay, otherwise navigate to Settings.xaml
if (!(bool)ApplicationData.Current.LocalSettings.Values["isFirstLaunch"])
{
await Dispatcher.RunAsync(CoreDispatcherPriority.Normal,() => Frame.Navigate(typeof(Settings)));
}
}
else
{
ApplicationData.Current.LocalSettings.Values["isFirstLaunch"] = false;
}
我沒有測試代碼,但它應該工作。如果沒有,請問我。
編輯:這裏有一個更好的解決方案:d https://stackoverflow.com/a/35176403/3146261
嘿。謝謝! –
是的,這應該起作用。但請注意,在UI線程上調用了「Page.OnNavigatedTo」,因此調度程序不是必需的。 –
謝謝!我回家時試試。 :) – Flauschcoder
您的典型模板生成App.xaml.cs
有這樣的事情在OnLaunched
方法:
if (rootFrame.Content == null)
{
rootFrame.Navigate(typeof(MainPage), e.Arguments);
}
這是你瀏覽到您的第一頁。特殊情況下的第一個試驗,做這樣的事情,而不是:那麼
if (rootFrame.Content == null)
{
IPropertySet roamingProperties = ApplicationData.Current.RoamingSettings.Values;
if (roamingProperties.ContainsKey("HasBeenHereBefore"))
{
// The normal case
rootFrame.Navigate(typeof(MainPage), e.Arguments);
}
else
{
// The first-time case
rootFrame.Navigate(typeof(GreetingsPage), e.Arguments);
roamingProperties["HasBeenHereBefore"] = bool.TrueString; // Doesn't really matter what
}
}
的問候頁應瀏覽到您的設置頁面,這應該導航到你的主頁。
並且通過使用漫遊設置,用戶在登錄到其他機器時不會看到第一次屏幕。
我只是想一個聲明通過一個MessageBox
IPropertySet roamingProperties = ApplicationData.Current.RoamingSettings.Values;
if (!roamingProperties.ContainsKey("DisclaimerAccepted"))
{
var dialog = new MessageDialog(strings.Disclaimer);
dialog.Title = "Disclaimer";
dialog.Commands.Clear();
dialog.Commands.Add(new UICommand { Label = "Accept", Id = 0 });
dialog.Commands.Add(new UICommand { Label = "Decline", Id = 1 });
var result = await dialog.ShowAsync();
if ((int)result.Id == 1)
Application.Current.Exit();
roamingProperties["DisclaimerAccepted"] = bool.TrueString;
}
我把它放在App.xaml.cs內被接受:
if (e.PrelaunchActivated == false)
{
<Inside here>
if (rootFrame.Content == null)
{
}
是啊歡迎來到應用程序新用戶...方便的提示等 – Ggalla1779