我想知道屏幕分辨率,以便我可以根据 Windows 8 应用程序中的分辨率设置元素的高度。
问问题
40403 次
5 回答
80
这个怎么样?
var bounds = Window.Current.Bounds;
double height = bounds.Height;
double width = bounds.Width;
于 2012-05-31T06:56:26.173 回答
13
获取当前窗口的边界很容易。但是如果你想为更大的屏幕设置一个大的字体大小(分辨率与 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;
}
于 2013-04-15T13:25:27.577 回答
6
然而,适用于所有其他类型的 Metro 应用程序的支持 DirectX 的应用程序的最佳选择可能是:
PS来吧,获取窗口大小来确定屏幕分辨率?捕捉/填充模式呢?这个世界太破碎了:-/
于 2012-08-14T14:49:21.800 回答
3
显然我还没有足够的代表来回复帖子,但关于@Krishna 的回答,可能值得注意的是,他的解决方案需要:
using Windows.UI.Xaml;
对你们大多数人来说可能不是问题,但在我的情况下(试图从导入的库中获取执行应用程序的解决方案),默认情况下它不存在。
希望这对其他人有帮助...
于 2012-07-18T21:45:26.980 回答
2
你在使用 XAML 吗?如果是这样也没关系。使用网格控件。它将填满所有可用空间。阅读Jerry 的博客,了解您可能希望使用 xaml 进行 WinRT 开发的原因。
于 2012-05-31T06:09:16.800 回答