2012-05-31 10 views

答えて

79

これはいかがですか?おそらく

using Windows.UI.Xaml; 

ない問題:

var bounds = Window.Current.Bounds; 

double height = bounds.Height; 

double width = bounds.Width; 
+0

これも機能します。ありがとうクリシュナ! :) –

+4

これを使用してください。 Mdの回答 –

+0

Good Point @ RobertLevyのように、あなたがプライマリ画面にいるとは思わないでください。 –

2

XAMLを使用していますか?もしそうなら、それは問題ではない。グリッドコントロールを使用します。それは利用可能なすべてのスペースを埋めるでしょう。 WinRTの開発にxamlを使用する理由についてはJerry's blogをお読みください。

+0

2つの行があります.1つは高さ70で、もう1つは*です。私は2番目の行にあるtextBoxを持っています。テキストボックスに解像度に応じて高さを変更したい。 –

+1

デフォルトでは、TextBoxスタイルは与えられた領域全体を塗りつぶします。これはSilverlightスタイルですが、まだ適用する必要があります。または、このスタイルを割り当てることもできます。http://msdn.microsoft.com/en-us/library/cc645061%28v=VS.95%29.aspx –

3

どうやら私はまだ投稿に返信するのに十分な担当者を持っていないが、クリシュナの答え@に関しては、それは彼のソリューションが必要であることは注目に値するかもしれ私の場合(インポートされたライブラリからアプリケーションを実行するという解決策を得ようとしている)、デフォルトではそこには存在しませんでした。これは他の誰かに役立ちます

希望...おそらく

+0

利用可能なWindows.UI.XAMLパッケージはありません。どうすれば使えますか? –

6

、DirectX対応のアプリケーションのための最善の選択肢は、しかし、メトロアプリケーションの他のすべての種類の適用は次のとおりです。

http://blogs.microsoft.co.il/blogs/tomershamam/archive/2012/07/24/get-screen-resolution-in-windows-8-metro-style-application.aspx

P.S.さて、画面の解像度を決定するウィンドウのサイズを取得しますか?スナップモード/フィルモードはどうですか?この世界はとても壊れています: -/

+0

スナップモード/塗りつぶしモードで高さは変化しません;) –

+0

ありがとうございます。とにかく、私は高さを設定せずに仕事をしました。 :) –

13

現在のウィンドウの範囲を取得するのは簡単です。しかし、もっと大きなスクリーン(解像度は10インチのデバイスと同じですが、スクリーンは27インチです)に大きなフォントサイズを設定したい場合、これは役に立ちません。参照Scaling to different screens 次の方法を使用して、画面サイズ&のテキストブロックのフォントスタイルを適切に変更しました。

  void detectScreenType() 
    { 
     double dpi = DisplayProperties.LogicalDpi; 
     var bounds = Window.Current.Bounds; 
     double h; 
     switch (ApplicationView.Value) 
     { 
      case ApplicationViewState.Filled: 
       h = bounds.Height; 
       break; 

      case ApplicationViewState.FullScreenLandscape: 
       h = bounds.Height; 
       break; 

      case ApplicationViewState.Snapped: 
       h = bounds.Height; 
       break; 

      case ApplicationViewState.FullScreenPortrait: 
       h = bounds.Width; 
       break; 

      default: 
       return; 
     } 
     double inches = h/dpi ; 
     string screenType = "Slate"; 
     if (inches < 10) 
     { 
      screenType = "Slate"; 
     } else if (inches < 14) { 
      screenType = "WorkHorsePC"; 
     } 
     else 
     { 
      screenType = "FamilyHub"; 
     } 
     ApplicationDataContainer localSettings = Windows.Storage.ApplicationData.Current.LocalSettings; 
     localSettings.Values["screenType"] = screenType; 
    } 
+0

フルスクリーンモードで実行している場合を除き、フルスクリーンサイズではなくウィンドウのサイズを指定します。 – cyanide

関連する問題