【问题标题】:Xamarins Forms UWP App Images on scaled displayXamarin 在缩放显示上形成 UWP 应用图像
【发布时间】:2020-03-08 10:15:44
【问题描述】:

我有一台带 4k 显示屏的笔记本电脑。显示属性的分辨率设置为 3840 X 2160(推荐),比例因子再次设置为 250%,即推荐值。我的项目中的图像使用以下后缀进行缩放:

.scale-100.png .scale-150.png .scale-200.png .scale-250.png .scale-300.png .scale-350.png .scale-400.png

根据我找到的文档。

当我运行应用程序时,图像会显示得很大,并且会关闭显示的其余部分。下面是截图:

如果我将比例设置为 100% - 一切都很小,但图像是正确的。这是一个屏幕截图。

知道如何解决这个问题吗?

【问题讨论】:

  • 您是否尝试在特定平台上设置尺寸?
  • @FabriBertani,我不太清楚你的意思。我会说我只是删除了所有 scale-XXX 图像,在根目录中放置了一个基本的 32X32 图像并更新了应用程序以使用它,这对我来说看起来不错。我只是想在 UWP 应用程序中使用更新的图像缩放方法。

标签: xamarin.forms image-scaling xamarin.uwp


【解决方案1】:

来源于官方文档。

UWP 图像文件名可以是 suffixed with .scale-xxx before the file extension,其中 xxx 是应用于资产的缩放百分比,例如myimage.scale-200.png。然后可以在没有比例修饰符的代码或 XAML 中引用图像,例如只是 myimage.png。平台会根据显示器当前的 DPI 选择最接近的合适资产比例。

从你的屏幕看,它看起来得到了正确的缩放图像,但是你的图像控件已经被缩放了,请尝试将Aspect属性设置为图像控件的填充。

在特定平台上设置大小

OnPlatform 用于为每个平台设置特定值。例如

<StackLayout>
  <StackLayout.Margin>
    <OnPlatform x:TypeArguments="Thickness">
      <On Platform="iOS" Value="0,20,0,0" />
      <On Platform="Android, UWP" Value="0,0,0,0" />
    </OnPlatform>
  </StackLayout.Margin>
  ...
</StackLayout>

您可以像上面的代码一样为每个平台指定StackLayout 边距。

【讨论】:

  • 从我发布的问题中可以看出,我已经有了带有 .scale-xxx 的图像。后缀。显示的图像仍然太大。我也熟悉 OnPlatform,但我将如何使用它来解决这个问题,因为它似乎与 Windows 机器上的显示缩放有关,而不是实际平台。
  • 是否有一种简单的方法可以判断正在运行的应用程序中使用了哪个图像(即哪个后缀)?这可能会告诉我是否只需要重新缩放图像,但我不确定是否真的如此。它还会让我知道,在未缩放的显示器上运行时,应用程序选择的文件是否与缩放显示器时不同。
  • 您可以尝试使用 Converter 来检测图像后缀。有关更多信息,请参阅此 [文档](docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/…)。
  • - 好的,我会试试的。谢谢
猜你喜欢
  • 2019-10-31
  • 1970-01-01
  • 2020-05-04
  • 1970-01-01
  • 2019-01-29
  • 2023-03-13
  • 1970-01-01
  • 2020-07-13
  • 2021-05-27
相关资源
最近更新 更多