私のアプリでは、すべてのものは横向きモードのみです。アプリをポートレート モードで機能させたくありません。方向を制限するにはどうすればよいですか?
ありがとう。
私のアプリでは、すべてのものは横向きモードのみです。アプリをポートレート モードで機能させたくありません。方向を制限するにはどうすればよいですか?
ありがとう。
この問題が発生しただけでなく、ゲームをランドスケープモードのみに制限したかったのです。これをApp.xamlのOnLaunchedハンドラーに入れました。
Windows.Graphics.Display.DisplayProperties.AutoRotationPreferences =
Windows.Graphics.Display.DisplayOrientations.Landscape;
ただし、シミュレーターではこれを無視しているように見えましたが、テストしたハードウェアタブレットでは適切に動作しているように見えました。AutoRotationPreferencesはビットフラグであるため、許可するすべての方向を指定したり、まとめたりすることができます。
このリンクで説明されているように、アプリの方向制限の設定は、サポートされているハードウェア アクセラロメーターを備えた Windows 8 システムでのみ適用されます。これは、Windows が、サポートされているセンサーを介してシステムの向きを認識していない限り、アプリが優先する向きに切り替えようとしないことを意味します。
したがって、それはすべてユーザーのハードウェアに依存します。
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 タブレットで実行します。