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 - 是真实的屏幕宽度(不是有效像素)
我正在开发一个非常基本的 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 - 是真实的屏幕宽度(不是有效像素)