5

モードGrid内のすべてのコンテンツでルートをローテーションしない Metro スタイル Windows 8 アプリケーションを作成したい。で方向をPortrait処理したいのですが、デバイスを回転させると、すべてのコンテンツが自動的に回転し、新しい幅と高さが埋められます。CodeVisual States

この回転動作を無効にするには、つまりPortrait方向を無効にするにはどうすればよいですか? それでも方向の変更に関するイベントを取得できますか?

また、Windows.Graphics.Display.DisplayProperties.AutoRotationPreferences動作しないようです

4

3 に答える 3

3

Metro アプリ プロジェクトの "Package.appxmanifest" ファイルをダブルクリックすると、アプリの構成が表示されます。「アプリケーション UI」ページの真ん中に「サポートされている回転」があります。サポートしているモードを確認し、「ポートレート」モードをオフのままにしておくことができます。その後、アプリは「ポートレート」モードのイベントを受信しなくなります。

独自の appx マニフェストを作成する場合は、次のようにセクションの下に次のブロックを追加できます。

    <InitialRotationPreference>
      <Rotation Preference="landscape" />
      <Rotation Preference="portraitFlipped" />
      <Rotation Preference="landscapeFlipped" />
    </InitialRotationPreference>
于 2012-07-21T07:51:47.447 に答える
0

申し訳ありませんが、あなたの主要な質問を逃しました。ポートレートモードイベントの後にルート要素の「回転」を変更できるとは思いません。実際には画面に対して回転しているのではなく、画面サイズが変更されているためです。

ただし、ポートレート モードのイベントの後でも、ユーザーにアプリをランドスケープ モードで見てもらいたいと思います。知覚回転に対抗できます。事前定義されたサイズのない別のユーザー コントロールにビジネス ロジックを配置できます。このユーザー コントロールをルート ページに配置します。ポートレート モード イベントを受け取ったら、ページの ActualWidth をユーザー コントロールの高さに割り当て、ページの ActualHeight をユーザー コントロールの幅に割り当て、ユーザー コントロールに 90 度のレンダリング変換を与え、レンダリング変換の中心 x=height*0.707/width, y=0.5 を割り当てます。ユーザーコントロールは、ランドスケープモードの位置に合わせる必要があります。

于 2012-07-22T07:45:57.427 に答える
0

Windows がポートレート モードであると通知したら、ルート要素にrotatetransform を追加して、これに対抗し、ポートレートのレンダリングを維持します

于 2012-04-21T22:02:34.977 に答える