次の方法で共有


InitialRotationPreference (Windows 8 のパッケージスキーマ)

最適なユーザーエクスペリエンスを実現するためにアプリが表示される方向について説明します。 タブレットなどの回転可能なデバイスでは、ここで指定されていない向きに対してアプリが再描画されることはありません。 たとえば、アプリで横向きと LandscapeFlipped の向きだけを指定し、デバイスを縦向きに回転させても、アプリは回転しません。

ローテーションできないデバイスでは、そのデバイスの既定の向きにアプリが表示され、アプリの優先の向きは無視されることに注意してください。 ただし、ローテーションロックが有効になっているデバイスでは、アプリの優先ローテーションが引き続き使用されます。

これらの方向の優先順位の選択は、アプリの新しいセッションが開始されたときに スプラッシュスクリーン とアプリ UI の両方に適用されます。 設定は、実行時に displayproperties.autorotationpreferences プロパティを使用して変更できます。

要素の階層

<Package>
<アプリケーション>
<適用>
<VisualElements>
<InitialRotationPreference>

構文

<InitialRotationPreference>

  <!-- Child elements -->
  Rotation{1,4}

</InitialRotationPreference>

Key

{} 特定の出現範囲

属性および要素

属性

なし。

子要素

子要素 説明
回転

アプリが表示される単一の回転方向を指定します。

 

親要素

Parent 要素 説明
VisualElements

UWP アプリのビジュアルな側面 (既定のタイル、ロゴ画像、テキストと背景の色、初期画面の向き、スプラッシュスクリーン、ロック画面のタイルの外観) について説明します。

 

注釈

この要素は、アプリケーションマニフェストファイル (package.appxmanifest) の一部です。 Microsoft Visual Studio マニフェストエディターでは、この設定は [アプリケーション UI ] タブの [サポートされている初期ローテーション] としてあります。 既定では、どのオプションも選択されていません。 これは、すべての回転方向がサポートされていることを意味します。 いずれの回転も、またはすべての回転を選択しても、同じ結果が得られます。

アプリは、デスクトップ Pc、タブレット、ノート pc、携帯電話などのさまざまな種類のデバイスで実行できるため、アプリの起動時にデバイスの向きに関する詳細な知識を保証することはできません。また、アプリがアクティブになっている間はデバイスを回転できません。 そのため、あらゆる向きで表示できるようにするために、アプリを開発することをお勧めします。 ただし、アプリではこの要素を使用して、アプリの表示を最適な回転に制限する Windows を要求することができます。 ただし、Windows は常に要求を受け入れることができません。 すべてのデバイスを回転または検出できるわけではないので、Windows によって向きの設定を常に受け入れることはできません。 たとえば、アプリが縦に表示されているが、アプリが標準の横向きのデスクトップモニターまたはテレビで実行されている場合、ユーザーエクスペリエンスが低下する可能性があるため、この設定は無視されます。 このため、すべての向きをサポートして、デバイスのローテーションに関係なくアプリが正常に見えるようにすることを検討してください。

メモ この時点では、デスクトップ Pc とノートブックは、アプリが実行される可能性がある統計的に広く使用されています。また、これらのデバイスはすべて横長に固定されており、回転を検出しないため、アプリでは少なくとも横向きの回転をサポートする必要があります。 ただし、サポートされている必要がありますが、横向きを優先ローテーションとして宣言する必要はありません。

 

この要素には最大4つの 回転 要素が含まれており、それぞれがアプリの表示を優先する向きを指定します。 回転要素を含めない場合は、4つすべてを含めた場合と同じ効果があります。

次の例は、横と LandscapeFlipped で表示されるアプリを示していますが、縦または PortraitFlipped に保持されているデバイスの向きは変わりません。

                        
<InitialRotationPreference>
    <Rotation Preference="landscape"/>
    <Rotation Preference="landscapeFlipped"/>
</InitialRotationPreference>
                    

アプリを最初に起動すると、Windows はローテーションの設定を受け取ります。 これらの設定は、アプリが終了するまで適用されます。1つの重要な例外として、Windows に対して呼び出しが行われた場合です。 Displayproperties.autorotationpreferencesこれらの設定を変更するには、. DisplayProperties. を表示します。 その API を使用して、アプリの回転の設定の変更を Windows 通知し、いつでも呼び出すことができます。 この API 呼び出しは、アプリのマニフェストファイルの InitialRotationPreference 要素の内容には影響しないことに注意してください。これは、マニフェストエディターで設定したままになります。 そのため、アプリを再起動するたびに、アプリのマニフェストでもともと指定したローテーションの設定が使用されます。

たとえば、横長に最適に表示されているゲームアプリを考えてみてください。ただし、縦方向の方が読みやすいマップを表示するページがあります。 ローテーションをサポートするデバイスでは、次の一連のイベントが発生する可能性があります。 ここでは、 アプリのライフサイクル の用語について理解しておくことをお勧めします。

  1. 開発者は、マニフェストエディターで、アプリの横または LandscapeFlipped の回転設定を指定します。
  2. ゲームがインストールされ、起動されます。 マニフェストエディターで指定された設定が適用され、ゲームは縦向きに回転しません。
  3. ゲームは、ユーザーがマップにアクセスしていることを検出します。 displayproperties.autorotationpreferencesを呼び出して、アプリの回転の設定を縦または PortraitFlipped に変更するよう Windows に指示します。
  4. Windows は、アプリを新しい優先方向に回転させます。
  5. ユーザーは、別のアプリに切り替えてメールを確認します。
  6. ユーザーはゲームアプリに戻り、中断した箇所から続行します。 アプリの最後に指定された設定が縦用であり、その向きでアプリが画面に表示されることを Windows。 現在のセッションがアクティブなままであるため、 InitialRotationPreference 設定を参照していないことに注意してください。
  7. ユーザーがマップページを閉じようとしていることがゲームによって検出されます。 Displayproperties.autorotationpreferencesを呼び出して、回転の設定を元の横の設定に戻し、ゲームを続行します。
  8. ユーザーがゲームを終了すると、しばらくの間、ユーザーが移動した後にアプリが中断されます。
  9. ユーザーは、アプリを再開して別のゲームをプレイします。 アプリは再起動されていないため、 Displayproperties.autorotationpreferences API によって宣言された最後の設定が引き続き適用されます。
  10. ゲームが終了しました (終了)。
  11. ゲームは再起動されます。 最初の起動からもう一度開始されているため、 InitialRotationPreference の設定が再度適用されます。

注意すべき重要な点は、 displayproperties.autorotationpreferencesを呼び出した後、ゲームが終了するまで (中断されているだけではなく)、その API を使用して回転の設定を処理することです。

アプリを回転させると、Windows によって回転します。 アプリを縦に閉じた場合、スタート画面は縦に表示されます。 アプリが現在表示されているのとは異なる回転に対して回転の優先順位を指定した場合、アプリのスプラッシュスクリーンが表示されている間、システムの回転が発生します。 メインアプリの UI は、システムローテーションが完了するまで表示されません。

関連項目

VisualElements

クイックスタート: Visual Studio マニフェストエディターを使用した既定のタイルの作成

Windows。Graphics. DisplayProperties. Displayproperties.autorotationpreferences

要件

Namespace http://schemas.microsoft.com/appx/2010/manifest