2012-09-27 4 views
7

私のアプリでは、すべてのものは風景モードでのみです。ポートレートモードでアプリを機能させたくありません。どのようにオリエンテーションを制限するのですか?メトロアプリの向きを制限する方法は?

ありがとうございました。

+2

オリエンテーション変更イベントを購読しない(オリエンテーションが変更されても何もしない)。 –

+0

appmanifestファイルでは、サポートされている向きを制限できます。 –

+0

返事をありがとう、私はAppmanifestの制限事項を使用して試してみました。しかし、私が画面を回転させて見ると、ポートレートモードではちょっと変わってしまいます。 – indiaxxo

答えて

4

this linkで説明されているように、アプリのオリエンテーション制限設定は、サポートされているハードウェアアクセラレータを備えたWindows 8システムでのみ適用されます。これは、Windowsがサポートされているセンサーの手段によってどのように方向付けられているかをWindowsが認識していない限り、アプリケーションの優先方向に切り替えることを試みないことを意味します。

これはすべてユーザーのハードウェアに依存します。

+0

パーフェクト.. ansに感謝します。 – indiaxxo

4

私はこの問題を抱えていただけでなく、自分のゲームをランドスケープモードに制限したいと思っていました。私はシミュレータで、私が適切に動作するように見えたことでテストされたハードウェアのタブレット上のに対し、これを無視するように見えたことに注目しかし

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

:私はApp.xamlのための私のOnLaunchedハンドラ内でこれを置きます。 AutoRotationPreferencesはビットフラグであるため、許可する方向をすべて、または一緒にすることができます。 (あなたがマニフェストに優先方向を設定したり、Windows.Graphics.Display.DisplayProperties.AutoRotationPreferencesへのアクセス権を持つことができる場所)メトロアプリを書いていない、この質問に答えるために探している人々のために

+0

シミュレータのヒントが保存された時間 – root

0

...

させないためには実際の方法はありませんあなたのメインWindow.xamlで

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"); 
} 

ビューモデル:オリエンテーションの変更は、あなただけの風景を可能に興味があるしかし、もしあなたがこのような何かを行うことができ

<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> 

Orientationは実際には制限されていません。発生したときに気付くだけで、UIが回転してポートレートモードになっているように見えます:)これは主にNon Metro Win 8アプリケーション、および/またはWin 7タブレットで動作するアプリケーションにも適用されます。

関連する問題