如何获得屏幕的分辨率?对于WinRT应用程序?

时间:2012-05-31 05:59:57

标签: c# xaml windows-8 windows-runtime

我想了解屏幕分辨率,以便根据Windows 8应用中的分辨率设置元素的高度。

5 个答案:

答案 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的应用程序的最佳选择是:

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

P.S。来吧,获取窗口大小以确定屏幕分辨率?快照/填充模式怎么样?这个世界如此破碎: - /

答案 3 :(得分:3)

显然我还没有足够的回复来回复帖子,但就@ Krishna的回答而言,值得注意的是他的解决方案需要:

using Windows.UI.Xaml;

对于大多数人来说可能不是问题,但在我的情况下(尝试从导入的库中获取执行应用程序的解析),默认情况下不存在。

希望这有助于其他人...

答案 4 :(得分:2)

您使用的是XAML吗?如果是这样,那没关系。使用网格控件。它将填满所有可用空间。阅读Jerry's blog,了解为什么要使用xaml进行WinRT开发。