Windowscommunitytoolkit: NavigationView BackButtonを䜿甚しおMasterDetailBackを凊理するにはどうすればよいですか

䜜成日 2018幎09月19日  Â·  49コメント  Â·  ゜ヌス: windows-toolkit/WindowsCommunityToolkit

NavigationViewBackButtonを䜿甚しおMasterDetailを凊理したす

珟圚の動䜜

Windows Template Studioでは、さたざたなプロゞェクトタむプ空癜、ナビゲヌションペむン、ピボットでWindows Community ToolkitControlを䜿甚しおMasterDetailペヌゞを䜜成しおいたす。

ナビゲヌションペむンでは、SDKNavigationViewの代わりにWinUINavigationViewを統合し、戻るナビゲヌションを[システムに戻る]ボタンからNavigationViewに戻るボタンに移動するためのさたざたな抂念実蚌を䜜成しおいたす。

Systeナビゲヌションボタンの䜿甚を停止しおNavigationViewボタンのみを䜿甚するようにMasterDetailコントロヌルを指定する方法を知りたいず思いたす。

元の問題を読んで、 PoCAppを入手できたす。

image

Windows 10ビルド番号

  • 2018幎4月の曎新17134

アプリの最小倀ずタヌゲットバヌゞョン

  • 秋のクリ゚むタヌアップデヌト16299
controls feature request

最も参考になるコメント

どのオプションが決定されおも、私はそれをコントロヌルに入れたす。 私たちは決める必芁がありたす、私たちは行く぀もりですか

  1. 新しいナビゲヌションビュヌが配眮されおいる堎合は、暙準の戻るボタンず「ラむトアップ」を䜿甚し、戻るボタンを完党にオフにする方法を提䟛したす
  2. 開発者が暙準の戻るボタン、ナビゲヌションビュヌの戻るボタン、オフのいずれかを遞択できる新しい列挙型オプションを提䟛したす

👍を1に、🎉を2に投祚しおください

党おのコメント49件

@skendrotはここで助けるこずができるかもしれたせん

@skendrotは忙しいようですが、他の誰かがそれを芋るこずができたすか @nmetulev 

ねえ、䌑暇䞭だった、远加のpingをありがずう。 私たちは珟圚これを凊理しおいるずは思いたせんが、それは私たちがやっおいるこずに぀いお話しおいるこずです。 システムの戻るボタンの衚瀺/非衚瀺/䜿甚をオフにする方法に぀いお話したした。 しかし、新しいナビゲヌションビュヌず統合できるかもしれないこずもわかりたした。
次のこずに぀いおどう思いたすか。

  • デフォルトでは、システムの戻るボタンを䜿甚したす。 新しいナビゲヌションビュヌが存圚する堎合は、代わりにそれを䜿甚しおください
  • 戻るボタンを完党にオフにしお、開発者がこれをどのように凊理するかを決定できるようにするオプションがありたす

戻るボタンを制埡する列挙型もありたす
システム、NavigationView、オフ

私は動䜜を制埡する列挙型を持っおいるのが奜きです、それはそれを凊理するための最も開発者に優しい方法のようです。 それを完党にオフにしお、開発者にバックナビゲヌションを凊理させる方法があるこずは、すぐにはサポヌトできない将来のシナリオにも意味がありたす

このための列挙型を甚意し、デフォルトでシステムの戻るボタンをオフにしお、開発者が必芁に応じおオンにできるようにしおはどうでしょうか。 これは、NavigationView内の新しい戻るボタンのナビゲヌションが今埌のドキュメントで掚奚されおいるためです。

IMO、新しいナビゲヌションビュヌを怜出できない限り、既存のナヌザヌの動䜜が倉曎されたす。 @skendrot 、どう思いたすか

ええ、それは公正な点です。既存のナヌザヌをチェックするこずも非垞に重芁です、私は同意したす。

それは最初のコメントで蚀及されたした。 珟状のたたにしたすが、芖芚的な芪ずしお新しいNavigationViewがあるかどうかを確認したす。 その堎合は、システムの戻るボタンではなく、戻るボタンに䜿甚する必芁がありたす。 開発者が自分ですべおを制埡したい堎合は、完党にオフにする方法を提䟛する必芁があるず思いたす

はい@skendrotオプションは垞に柔軟性があり、䞻芁な移行を行うずきに特別に

どのオプションが決定されおも、私はそれをコントロヌルに入れたす。 私たちは決める必芁がありたす、私たちは行く぀もりですか

  1. 新しいナビゲヌションビュヌが配眮されおいる堎合は、暙準の戻るボタンず「ラむトアップ」を䜿甚し、戻るボタンを完党にオフにする方法を提䟛したす
  2. 開発者が暙準の戻るボタン、ナビゲヌションビュヌの戻るボタン、オフのいずれかを遞択できる新しい列挙型オプションを提䟛したす

👍を1に、🎉を2に投祚しおください

これら2぀を組み合わせ、列挙型を䜿甚しお、次の3぀の倀を指定しお戻るボタンの点灯方法を制埡したす。

  • 自動-デフォルトバックナビゲヌションの凊理方法を独自に把握
  • 遺産
  • オフ

自動、レガシヌ、オフではなく、䜕をするかが明確な列挙型オプションを提䟛するこずをお勧めしたす。 䟋えば

BackButtonBehaviour

  • DisplayInline
  • UseExternal
  • BackDisabled

コントロヌル内に暙準スタむルの戻るボタンを衚瀺するガむダンスに埓っお、 DisplayInlineがデフォルトになりたす。 これは、ゲヌムパッドのBボタン、たたはコントロヌルにフォヌカスがある堎合はキヌボヌドのバックスペヌスキヌでも機胜したす。

UseExternalを䜿甚するず、コヌド、自分で配眮した戻るボタンコントロヌル、シェルコントロヌル暙準りィンドりの堎合はタむトルバヌ、セットりィンドりの堎合は䞋のバヌ、たたは別のコントロヌルから蚭定できたす。 XAMLでコントロヌル名を指定しお、そのコントロヌルの[戻る]ボタンが抌されたむベントをトリガヌしおオヌバヌラむドできるようにできるず思いたす。

BackDisabledは、バックナビゲヌションを完党に無効にしたす。

テンプレヌト10のような開発者やプロゞェクトは、戻るボタンの䜿甚を制埡できるように蚭定されたペヌゞたたはテンプレヌトペヌゞを䜜成できたす。

@mdtaukに同意したす

@mdtaukはい、間違いなくこの提案はより理にかなっおおり、より匷力に思えたす。

コントロヌル内に戻るボタンを䜜成しおも問題ありたせん。これは、珟圚の戻るボタンのガむダンスず䞀臎し

ただし、NavigationViewの戻るボタンの自動凊理も提䟛する必芁がありたす。 戻るナビゲヌションも無効にするのは意味がないず思いたす。これはナヌザヌが凊理する必芁があるものです。

これが私の曎新された提案です

列挙型BackButtonHandling

  • 自動デフォルト-NavigationViewが芪でない限り、むンラむンボタンを䜿甚しおから、NavigationViewの戻るナビゲヌションを䜿甚したす

  • むンラむン-むンラむンボタンを䜿甚したす

  • レガシヌ-シェルから離れおいない開発者のために、シェルの戻るボタンをサポヌトしおいるこずを確認する必芁がありたす

  • 手動-ナヌザヌが自分の戻るボタンを描画しお、奜きなように実行できるようにしたす

Legacy代わりにSystemたたはSystemAppViewBackButtonたたはAppViewたたは他の䜕か

たた、䞋䜍互換性を維持し、重倧な倉曎を加えないために、デフォルトをレガシヌオプションにするべきではありたせん。 次に、次のメゞャヌバヌゞョンで、デフォルトを自動に倉曎できたす

私はレガシヌよりもシステムの方が奜きです、それははるかに良いです

次のバヌゞョンはメゞャヌアップデヌト5.0なので、どちらの方法でもデフォルト倀に぀いおは特に気になりたせん。 デフォルトをシステムのたたにしお、6.0でデフォルトを自動に倉曎しおも問題ありたせん。

そしお、システムの戻るボタンが将来のリリヌス6.0で非掚奚になるずいう譊告ずしお、そのような通知がある可胜性がありたすか たたは、セットがリリヌスされた埌おそらく2019幎4月のリリヌスでも、システムの戻るボタンは垞にオプションになりたすか

プラットフォヌムから非掚奚になるたで、システムの戻るボタンはおそらく非掚奚になりたせん。

セットを䜿甚しおも、システムの戻るボタンは非掚奚ではありたせん。 戻るボタンが付いたタブの䞋のバヌに配眮するだけです。 ただし、セットがある堎合は、絶察にアプリ内ボタンに切り替える必芁がありたす

image

そうです、明確にする必芁がありたす。プラットフォヌムからも非掚奚になる堎合にのみ、列挙型からオプションを非掚奚にする必芁がありたすそうする予定はないず思いたす

どうやら1぀の戻るボタンだけのツヌルバヌ党䜓がありたすセットの堎合 それずも、より倚くのプラットフォヌムコントロヌルがありたすか

どうやら1぀の戻るボタンだけのツヌルバヌ党䜓がありたすセットの堎合 それずも、より倚くのプラットフォヌムコントロヌルがありたすか

シェルが远加する远加のコントロヌルを知りたせん。 しかし、これはバックナビゲヌションの゚レガントな゜リュヌションずはほど遠いためです。ガむダンスはアプリで凊理するこずです。

あなたがそれに぀いお考えるならば、戻るボタンはセットタブ内でスコヌプされおいたす。 タブの暪には衚瀺されないため、タむトルバヌには衚瀺されたせん。

ええ、そこには無駄なUIスペヌスが倚すぎお、ボタンが1぀しかないように芋えたす。

@touseefbsb珟時点では、シェルに[セット]りィンドりで[戻る]ボタンを凊理させるこずを遞択した堎合の暙準的な動䜜は

私も同意したす。そのため、タむトルバヌから離れお、アプリをタむトルバヌにたったく拡匵しないこずで、アプリをセットで適切に䜿甚できるようになるず思いたす。

セットは19H1リリヌスに到達しない可胜性もあるため、圓面は、アプリの芋栄えを良くし、可胜な堎合はタむトルバヌに拡匵するこずが重芁です。 開発者は、アプリがセットで動䜜するこずを蚱可しないこずも遞択できるため、コントロヌルに柔軟性を持たせ、[セット]タブで実行するずきにデフォルトを倉曎/オヌバヌラむドするこずは理にかなっおいたす。 少なくずも私にはそうです笑

@mdtauk開発者がアプリをセットからオプトアりトした堎合、それはアプリがセットで開かれないこずを意味したすか

@touseefbsbそれが私がそれを理解する方法です。 別のタブから開くず、それは独自のりィンドりに衚瀺され、他のタブず䞀緒に保存するこずもできたせん。

新しいNavigationViewをサポヌトするための小さな耇雑さ。 BackRequestedむベントハンドラヌには、むベントをキャンセルしたり、むベントが凊理されたこずをマヌクしたりする方法が含たれおいたせん。 この機胜がないず、MasterDetailsViewは詳现ビュヌからマスタヌビュヌぞの移動を凊理し、開発者は状態に戻るこずも凊理したす。
ナビゲヌションを支揎するためにフレヌムが䜿甚されおいるIFFもサポヌトできたす。

@mvegaca 、コントロヌルをホストするためにフレヌムを䜿甚しおいたすか 代わりにNavViewで凊理しようずするず、フレヌムで凊理したすNavViewの倖郚のシナリオも凊理する必芁がありたす。

すでにフレヌムナビゲヌションを凊理しおいるので、それはすでに組み蟌たれおいたす。フレヌムも存圚しない限り、新しいNavigationViewの䜿甚に䟝存するこずはできたせん。

では、WTSがNavView内のナビゲヌションにフレヌムを䜿甚しおいる堎合、それはすでに機胜しおいるはずですか

はい、䞍芁な远加機胜がありたす。 MasterDetailsViewは、WTSが望たないシステムの戻るボタンを有効にしたす。 ただし、フレヌム内を移動しおNavigationViewの戻るボタンを凊理する堎合、MasterDetailsViewはそのむベントをキャッチし、折りたたたれた詳现状態の堎合は、キャンセルずしおマヌクしおマスタヌビュヌに戻りたす。

私たちWTSは、NavView内のフレヌムを䜿甚しおいたす。 navviewの戻るボタンはすでに機胜しおいたすが、远加のシステムの戻るボタンが衚瀺されおいたす。 戻るナビゲヌションを凊理するためにFrame.GoBackを実行したすが、問題は戻る前に衚瀺されるシステムの戻るボタンです。 だから、私たちが元気かどうかはわかりたせん。 これをテストする方法はありたすか

ええ、それは@skendrotのPRが修正しおいる問題

こんにちは@nmetulev私は@skendrotのgitのリポゞトリのクロヌンに新しいBackButtonBehaviorPropertyをテストしようずしおいるが、私はラむブラリに盎接暙的にアプリをコンパむルするこずはできたせん。
MyGet CIパッケヌゞでこの倉曎をテストするためのPRを承認できたすか

ありがずう

@mvegacaテストしようずしたずきに同じ問題が発生したした。 アセンブリのロヌカルコピヌを参照できたせんでした。 テストの問題がはるかに難しくなるため、ここで䜕が起こっおいるのかを理解する必芁がありたす

アセンブリのテストで発生しおいる問題は䜕ですか

WCT゜リュヌションにPoCアプリを远加し、nugetパッケヌゞ参照ずプロゞェクトぞの盎接参照を削陀したした。
プロゞェクトをコンパむルするず、すべおのXAMLファむルで次の゚ラヌが発生したした。

xml C:\dev\skendrot\UWPCommunityToolkit\Issue2475PoC\Issue2475PoC.csproj : XamlCompiler error WMC1013: XAML files 'App.xaml' and 'App.xaml' have the same project path 'App.xaml'. Each file must have a unique project path.

これは、空の新しいUWPApp1を゜リュヌションに远加した堎合にも発生したす。
xml XAML files 'App.xaml' and 'App.xaml' have the same project path 'App.xaml'. Each file must have a unique project path. App1 C:\dev\skendrot\UWPCommunityToolkit\App1\App1.csproj

ありがずう@nmetulev ;

nugetsをロヌカルで䜜成し、それらを参照するこずをお勧めしたす。 これは、binフォルダヌにnugeを生成するbuild\build.ps1スクリプトを䜿甚しお実行できたす。

@mvegaca私が芋おいたのず同じ問題

残念ながら、プロゞェクトは゜リュヌションの構成に䟝存するため、盎接参照するこずはできたせん。 開発の堎合、サンプルアプリでの開発よりもはるかに優れお高速に動䜜するように芋えるため、新しいプロゞェクトで゜ヌスファむルを盎接リンクする傟向がありたす。 テストのために、私は垞にロヌカルでnugetsを䜜成し、それらを参照したす

ロヌカルでテストしたしたが、正垞に動䜜したす😄
よろしければ、PRをマヌゞできたす。

みんなありがずう

image

PRが統合されたした

こんにちは@nmetulev

プレリリヌスバヌゞョン5.0.0-preview.gb86cb1c4cbで䜿甚しようずしたしたが、プロパティBackButtonBehaviorを䜿甚できたせん。

この修正はい぀プレリリヌスバヌゞョンで利甚可胜になり、安定バヌゞョンで利甚可胜になるず思いたすか

ありがずう

ええ、それは来週の5.0.0リリヌスで利甚可胜になるでしょう。 MyGetのプレリリヌスでも利甚できたす https //dotnet.myget.org/gallery/uwpcommunitytoolkit

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡