2017-11-28 10 views
0

私はMicrosoft/Windowsストアで公開されているUWPアプリを持っており、私は新しいアップデートで作業しています。私は私のアプリにジャンプリストを追加したい。私はすでにMicrosoftのDocsを読んでいますが、私は自分のアプリにジャンプリストを作る方法を理解していません。私はジャンプリスト、私のアプリのXAMLページに入れたい。ユーザーがジャンプリストの項目をクリックし、XAMLページに移動します。どのように私はこれを作る?ジャンプリスト - UWPアプリ

+1

私はテンプレート10のコードで答えを更新しました。希望が助けてくれる! –

+1

あなたは大歓迎です! –

+1

答えがあなたの問題を解決したら、それを合格とマークしてください。 –

答えて

1

JumpListから直接ナビゲートするSecondPageThirdPageというページがあるとします。

まず、あなたがJumpList自体に対応する項目を追加する必要があります。この操作を実行する

JumpList jumpList = await JumpList.LoadCurrentAsync(); 

jumpList.Items.Clear(); 
jumpList.Items.Add(JumpListItem.CreateWithArguments("GoToSecondPage", "Go directly to the 2nd page")); 
jumpList.Items.Add(JumpListItem.CreateWithArguments("GoToThirdPage", "Visit 3rd page")); 

await jumpList.SaveAsync(); 

標準的な場所は、あなたのアプリ(App.xaml.csファイル)のOnLaunched方法です。

 if(e.Arguments == "GoToSecondPage") 
     { 
      rootFrame.Navigate(typeof(SecondPage)); 
     } 
     else if(e.Arguments == "GoToThirdPage") 
     { 
      rootFrame.Navigate(typeof(ThirdPage)); 
     } 

として:あなたはあまりにもOnLaunched方法にあなたのページのナビゲーション・ロジックを配置し、それが見えるようにしたいことがありので、ユーザーがクリックしたことをJumpListItemに関する情報は、パラメータとしてこのメ​​ソッドに渡されますその結果、あなたのApp.xaml.csファイルは次のように見えるように起こっている:あなたはテンプレート10を使用する場合は

sealed partial class App : Application 
{ 
    ... 
    protected override async void OnLaunched(LaunchActivatedEventArgs e) 
    { 
     await ConfigureJumpList(); 

     ... 

     if(e.Arguments == "GoToSecondPage") 
     { 
      rootFrame.Navigate(typeof(SecondPage)); 
     } 
     else if(e.Arguments == "GoToThirdPage") 
     { 
      rootFrame.Navigate(typeof(ThirdPage)); 
     } 
    } 
    ... 
    private async Task ConfigureJumpList() 
    { 
     JumpList jumpList = await JumpList.LoadCurrentAsync(); 

     jumpList.Items.Clear(); 
     jumpList.Items.Add(JumpListItem.CreateWithArguments("GoToSecondPage", "Go directly to the 2nd page")); 
     jumpList.Items.Add(JumpListItem.CreateWithArguments("GoToThirdPage", "Visit 3rd page")); 

     await jumpList.SaveAsync(); 
    } 
} 

、その後、すべてがそう、いくつかのマイナーコードの変更とあなたが代わりにOnLaunched()方法のOnStartAsync()を編集しているという事実を除いて、同じです最終結果はですファイルには、次のようになります。

sealed partial class App : Template10.Common.BootStrapper 
{ 
    ... 
    public override async Task OnStartAsync(StartKind startKind, IActivatedEventArgs args) 
    { 
     if ((args as LaunchActivatedEventArgs).Arguments == "GoToSecondPage") 
      await NavigationService.NavigateAsync(typeof(Views.SecondPage)); 
     else if ((args as LaunchActivatedEventArgs).Arguments == "GoToThirdPage") 
      await NavigationService.NavigateAsync(typeof(Views.ThirdPage)); 
     else 
      await NavigationService.NavigateAsync(typeof(Views.MainPage)); 

     await ConfigureJumpList(); 
    } 
    ... 
    private async Task ConfigureJumpList() 
    { 
     JumpList jumpList = await JumpList.LoadCurrentAsync(); 

     jumpList.Items.Clear(); 
     jumpList.Items.Add(JumpListItem.CreateWithArguments("GoToSecondPage", "Go directly to the 2nd page")); 
     jumpList.Items.Add(JumpListItem.CreateWithArguments("GoToThirdPage", "Visit 3rd page")); 

     await jumpList.SaveAsync(); 
    } 
} 

そして、あなたはJumpListItemでカスタムアイコンを表示したい場合は、あなたがする必要があるすべてのコードで

jumpList.Items.Add(JumpListItem.CreateWithArguments("GoToSecondPage", "Go directly to the 2nd page")); 

のこの行を置き換えることです次の行

"ms-appx:///Icons/Page2Icon.png"は、この例では、アイコン(中 Page2Icon.pngファイルへのパスである
var secondPageItem = JumpListItem.CreateWithArguments("GoToSecondPage", "Go directly to the 2nd page"); 
secondPageItem.Logo = new Uri("ms-appx:///Icons/Page2Icon.png"); 
jumpList.Items.Add(secondPageItem); 

プロジェクトのアイコンフォルダ)。

+0

ありがとう!しかし問題がある。私はTemplate10を使用しており、このエラーを表示しています: "App.OnLaunched(LaunchActivatedEventArgs)":継承されたメンバ 'BootStrapper.OnLaunched(LaunchActivatedEventArgs)'が封印されているためオーバーライドできません " –

+0

素晴らしい!それが私が望んだことです。 Template10でうまく動作します! –

関連する問題