繁体   English   中英

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

[英]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的应用的最佳选择:

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

PS来吧,获取窗口大小以确定屏幕分辨率? 捕捉/填充模式如何? 这个世界是如此破碎:-/

显然我还没有足够的代表来回复帖子,但是关于@Krishna的回答,可能值得注意的是他的解决方案需要:

using Windows.UI.Xaml;

可能对大多数人来说不是问题,但就我而言(试图从导入的库中获取执行应用程序的分辨率),默认情况下不存在。

希望这可以帮助别人...

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM