c# 拡大率 - どのように画面の解像度を取得するには? WinRTアプリケーションの場合は?




ディスプレイ 変更 (5)

私はWindows 8アプリの解像度に応じて要素の高さを設定できるように画面の解像度を知りたい。


Answers

明らかに私はまだ投稿に返信するのに十分な担当者がいないが、@ Krishnaの答えに関しては、彼の解決策が必要とすることは価値があるかもしれない:

using Windows.UI.Xaml;

おそらくあなたのほとんどの問題ではありませんが、私の場合(インポートされたライブラリからアプリケーションを実行する解決策を得ようとする)、デフォルトではそこにはありませんでした。

これが他の人に役立つことを願って


これはどう?

var bounds = Window.Current.Bounds;

double height = bounds.Height;

double width = bounds.Width;

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


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

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

列の注文番号はゼロベースです。 1と2の代わりに0と1に変更します。つまり:

[Key, Column(Order = 0)]
public int UserId { get; set; }

[Key, Column(Order = 1)]
[ForeignKey("Skill")]
public int SkillId { get; set; }




c# xaml windows-8 windows-runtime