7

私のアプリでは、すべてのものは横向きモードのみです。アプリをポートレート モードで機能させたくありません。方向を制限するにはどうすればよいですか?

ありがとう。

4

3 に答える 3

4

この問題が発生しただけでなく、ゲームをランドスケープモードのみに制限したかったのです。これをApp.xamlのOnLaunchedハンドラーに入れました。

        Windows.Graphics.Display.DisplayProperties.AutoRotationPreferences =
            Windows.Graphics.Display.DisplayOrientations.Landscape;

ただし、シミュレーターではこれを無視しているように見えましたが、テストしたハードウェアタブレットでは適切に動作しているように見えました。AutoRotationPreferencesはビットフラグであるため、許可するすべての方向を指定したり、まとめたりすることができます。

于 2012-10-16T16:47:16.223 に答える
4

このリンクで説明されているように、アプリの方向制限の設定は、サポートされているハードウェア アクセラロメーターを備えた Windows 8 システムでのみ適用されます。これは、Windows が、サポートされているセンサーを介してシステムの向きを認識していない限り、アプリが優先する向きに切り替えようとしないことを意味します。

したがって、それはすべてユーザーのハードウェアに依存します。

于 2012-09-27T08:10:43.623 に答える
0

Metro アプリを作成していないこの質問に答えようとしている人 (マニフェストで優先方向を設定するか、にアクセスできる場所Windows.Graphics.Display.DisplayProperties.AutoRotationPreferences)...

Orientation を変更しないようにする実際の方法はありませんが、ランドスケープのみを許可することに関心がある場合は、次のようにすることができます。

モデルを見る:

Microsoft.Win32.SystemEvents.DisplaySettingsChanged += new           
    EventHandler(SystemEvents_DisplaySettingsChanged);
}

public bool IsLandscape { get; set; }

void SystemEvents_DisplaySettingsChanged(object sender, EventArgs e)
{
  if (SystemParameters.PrimaryScreenWidth > SystemParameters.PrimaryScreenHeight)
  {
      IsLandscape = true;
  }
  else
  {
      IsLandscape = false;
  }

  RaisePropertyChanged( "IsLandscape" );
}

Main Window.xaml で:

<Border >
    <Border.Style>
        <Style TargetType="{x:Type Border}">
            <Style.Triggers>
                <DataTrigger Binding="{Binding IsLandscape}" Value="False">
                    <Setter Property="LayoutTransform">
                        <Setter.Value>
                            <RotateTransform Angle="90"/>
                        </Setter.Value>
                    </Setter>
                </DataTrigger>
            </Style.Triggers>
         </Style>
    </Border.Style>

///The rest of your controls and UI

</Border>

したがって、実際には向きを制限しているのではなく、それが発生したときに気付いて、UI を再回転させて、まだ縦向きモードのように見えるようにしています :) 繰り返しますが、これは主に、Metro Win 8 以外のアプリケーションや、 Win 7 タブレットで実行します。

于 2014-10-23T18:57:40.930 に答える