在Win10 UWP应用程序中获取屏幕分辨率

时间:2015-08-11 07:54:24

标签: c# xaml windows-runtime windows-10 uwp

当一个UWP应用程序在普通桌面系统上以窗口模式运行时," old"获得屏幕分辨率的方式不再适用。

Window.Current.Bounds的旧解决方案与shown in.

类似

是否有其他方法可以获得(主要)显示器的分辨率?

6 个答案:

答案 0 :(得分:51)

为了进一步改善其他答案,下面的代码也会考虑缩放因子,例如:对于我的Windows显示器的200%(正确返回3200x1800)和300%的Lumia 930(1920x1080)。

var bounds = ApplicationView.GetForCurrentView().VisibleBounds;
var scaleFactor = DisplayInformation.GetForCurrentView().RawPixelsPerViewPixel;
var size = new Size(bounds.Width*scaleFactor, bounds.Height*scaleFactor);

如其他答案中所述,这只会在更改根帧大小之前在桌面上返回正确的大小。

答案 1 :(得分:10)

随时随地调用此方法(在移动/桌面应用程序中测试):

$(".count").click(function(){
 $(this).parent().find(".sum").html(parseInt($(this).parent().find(".a").html())+parseInt($(this).parent().find(".b").html()))
 $(this).parent().find(".sum").html(parseInt($(this).parent().find(".a").html())+parseInt($(this).parent().find(".b").html()))
 $(this).parent().find(".sum").html(parseInt($(this).parent().find(".a").html())+parseInt($(this).parent().find(".b").html()))

})

答案 2 :(得分:3)

好的,Juan Pablo Garcia Coello的答案引导我找到解决方案 - 谢谢!

您可以使用

var bounds = ApplicationView.GetForCurrentView().VisibleBounds;

但是你必须在我的情况下在

之后立即显示窗口之前调用它
Window.Current.Activate();

是个好地方。此时,您将获得应用程序将显示的窗口范围。

非常感谢帮助我解决问题:)

关心Alex

答案 3 :(得分:3)

更简单的方法:

var displayInformation = DisplayInformation.GetForCurrentView();
var screenSize = new Size(displayInformation.ScreenWidthInRawPixels, 
                          displayInformation.ScreenHeightInRawPixels);

这不取决于当前的视图大小。在任何时候它都会返回真正的屏幕分辨率。

答案 4 :(得分:2)

我找到的唯一方法是在Page的构造函数中:

 public MainPage()
    {
        this.InitializeComponent();

        var test = ApplicationView.GetForCurrentView().VisibleBounds;
    }

我还没有在Windows 10 Mobile中测试过,当新版本出现时我会测试它。

答案 5 :(得分:-2)

只需为主网格或页面设置名称,并为所需元素调用其宽度或高度:

Element.Height = PagePane.Height;
Element.width = PagePane.Width;

这是您可以使用的最简单方法!