我想了解屏幕分辨率,以便根据Windows 8应用中的分辨率设置元素的高度。
答案 0 :(得分:80)
这个怎么样?
var bounds = Window.Current.Bounds;
double height = bounds.Height;
double width = bounds.Width;
答案 1 :(得分:13)
获取当前窗口的界限很容易。但是如果你想为更大的屏幕设置一个大的字体大小(分辨率与10“设备相同,但屏幕是27”),这不会有帮助。参考Scaling to different screens 我使用以下方法来检测屏幕尺寸和尺寸。适当地改变文本块字体样式。
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;
}
答案 2 :(得分:6)
然而,适用于所有其他类型的城域应用程序的支持DirectX的应用程序的最佳选择是:
P.S。来吧,获取窗口大小以确定屏幕分辨率?快照/填充模式怎么样?这个世界如此破碎: - /
答案 3 :(得分:3)
显然我还没有足够的回复来回复帖子,但就@ Krishna的回答而言,值得注意的是他的解决方案需要:
using Windows.UI.Xaml;
对于大多数人来说可能不是问题,但在我的情况下(尝试从导入的库中获取执行应用程序的解析),默认情况下不存在。
希望这有助于其他人...
答案 4 :(得分:2)
您使用的是XAML吗?如果是这样,那没关系。使用网格控件。它将填满所有可用空间。阅读Jerry's blog,了解为什么要使用xaml进行WinRT开发。