Я хочу знать разрешение экрана, чтобы установить высоту элемента в соответствии с разрешением в приложении Windows 8.
Как получить разрешение экрана? Для приложения WinRT?
Ответ 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, однако, применим ко всем другим приложениям метро:
P.S. C'mon, получив размер окна, чтобы определить разрешение экрана? Как насчет режимов съемки/заполнения? Этот мир настолько разбит: -/
Ответ 4
По-видимому, у меня недостаточно ответов, чтобы отвечать на сообщения, но в отношении ответа @Krishna, может быть, стоит отметить, что его решение требует:
using Windows.UI.Xaml;
вероятно, не проблема для большинства из вас, но в моем случае (попытка захватить разрешение выполнения приложения из импортированной библиотеки) по умолчанию он не был.
надеюсь, что это поможет кому-то еще...
Ответ 5
Используете ли вы XAML? Если так, это не имеет значения. Используйте элемент управления сеткой. Он заполнит все свободное пространство. Прочтите блог Джерри о том, почему вы можете использовать xaml для разработки WinRT.