Подтвердить что ты не робот

Как получить разрешение экрана? Для приложения WinRT?

Я хочу знать разрешение экрана, чтобы установить высоту элемента в соответствии с разрешением в приложении Windows 8.

4b9b3361

Ответ 1

Как насчет этого?

var bounds = Window.Current.Bounds;

double height = bounds.Height;

double width = bounds.Width;

Ответ 2

Получить границы текущего окна легко. Но скажите, хотите ли вы установить большой размер шрифта для большего экрана (разрешение такое же, как у 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;
    }

Ответ 3

Вероятно, лучший вариант для приложений с поддержкой DirectX, однако, применим ко всем другим приложениям метро:

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

P.S. C'mon, получив размер окна, чтобы определить разрешение экрана? Как насчет режимов съемки/заполнения? Этот мир настолько разбит: -/

Ответ 4

По-видимому, у меня недостаточно ответов, чтобы отвечать на сообщения, но в отношении ответа @Krishna, может быть, стоит отметить, что его решение требует:

using Windows.UI.Xaml;

вероятно, не проблема для большинства из вас, но в моем случае (попытка захватить разрешение выполнения приложения из импортированной библиотеки) по умолчанию он не был.

надеюсь, что это поможет кому-то еще...

Ответ 5

Используете ли вы XAML? Если так, это не имеет значения. Используйте элемент управления сеткой. Он заполнит все свободное пространство. Прочтите блог Джерри о том, почему вы можете использовать xaml для разработки WinRT.