[英]How to get the resolution of screen? For a WinRT app?
我想知道屏幕分辨率,以便可以根据Windows 8应用程序中的分辨率设置元素的高度。
这个怎么样?
var bounds = Window.Current.Bounds;
double height = bounds.Height;
double width = bounds.Width;
获取当前窗口的边界很容易。 但是,如果您要为较大的屏幕设置较大的字体大小(分辨率与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;
}
但是,适用于所有其他类型的Metro应用的可能是启用DirectX的应用的最佳选择:
PS来吧,获取窗口大小以确定屏幕分辨率? 捕捉/填充模式如何? 这个世界是如此破碎:-/
显然我还没有足够的代表来回复帖子,但是关于@Krishna的回答,可能值得注意的是他的解决方案需要:
using Windows.UI.Xaml;
可能对大多数人来说不是问题,但就我而言(试图从导入的库中获取执行应用程序的分辨率),默认情况下不存在。
希望这可以帮助别人...
您在使用XAML吗? 如果是这样,那没关系。 使用网格控件。 它将填满所有可用空间。 阅读Jerry的博客 ,了解为什么可能要使用xaml进行WinRT开发。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.