Visual Studio 本地计算机 运行 是否使用不同的分辨率?

Does Visual Studio local machine run on a different resolution?

我正在开发一个非常基本的 Windows 应用程序,我希望能够根据(应用程序的)分辨率以编程方式调整项目的大小。我正在使用另一个线程上建议的代码。

var bounds = Window.Current.Bounds;
double height = bounds.Height;
double width = bounds.Width;

我正在将高度和宽度输出到文本框进行测试,数字看起来不太正确,它们都偏离了固定的量。我怀疑这可能很简单,因为我的模拟器似乎 运行 没问题。但是当我 运行 它在我的本地机器(Surface Pro 3)上时,分辨率完全关闭。我只是想知道是不是因为 Visual Studio 是 运行ning 一个用于另一个分辨率或类似的东西的构建?

谢谢

用户 3787031! Windows 8.1 应用程序有 3 个比例因子 - 100%、140% 和 180%。 对于 Windows 10 个应用程序 - 有更多比例因子。 例如,如果您的桌面为 23 英寸且分辨率为 1920x1080 - 那么您的比例为 100%。 如果您有一台 12 英寸的平板电脑,分辨率为 2160x1440,那么您的比例为 150%。您可以在模拟器中看到分辨率和比例。 如果您需要相同质量的图像 - 您应该使用后缀比例创建不同尺寸的图像并使用如下代码:

                ResolutionScale resolutionScale = DisplayInformation.GetForCurrentView().ResolutionScale;
            Uri uri = null;
            switch (resolutionScale)
            {
                case ResolutionScale.Scale100Percent:
                    uri = new Uri("ms-appx:///images/scale-100/girl.jpg");
                    break;
                case ResolutionScale.Scale140Percent:
                    uri = new Uri("ms-appx:///images/scale-140/girl.png");
                    break;
                case ResolutionScale.Scale180Percent:
                    uri = new Uri("ms-appx:///images/scale-180/girl.png");
                    break;
            }
   image.Source = new BitmapImage(uri);

例如,如果图像比例 100 的宽度为 100 像素,则图像比例 140 的宽度为 140 像素。 如果你想获得真实的屏幕尺寸 - 使用这个:

public MainPage()
        {
            this.InitializeComponent();
            this.SizeChanged += MainPage_SizeChanged;
        }

        void MainPage_SizeChanged(object sender, SizeChangedEventArgs e) 
        { 
            if (e.NewSize.Width < 500) 
                { 
                    grdMain.Width=475; 
                } 
                else 
                { 
                      grdMain.Width=1000; 
                } 
            } 
       }
       /// ...

e.NewSize.Width - 是真实的屏幕宽度(不是有效像素)