Xamarin.forms Xamarins在缩放显示上形成UWP应用程序图像

Xamarin.forms Xamarins在缩放显示上形成UWP应用程序图像,xamarin.forms,image-scaling,xamarin.uwp,Xamarin.forms,Image Scaling,Xamarin.uwp,我有一台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 根据我找到的文件 当我运行该应用程序时,图像会显示得很大,并且会将其余的显示都抛到一边。以下是屏幕截图: 如果我将比例设置为1

我有一台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%,一切都很小,但图像是正确的。这是一个屏幕截图


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

来源于官方文件

UWP图像文件名可以是,其中xxx是应用于资产的缩放百分比,例如myimage.scale-200.png。然后可以在代码或XAML中引用图像,而不使用缩放修改器,例如just myimage.png。平台将根据显示器的当前DPI选择最近的适当资产规模

从您的屏幕上看,它似乎获得了正确的缩放图像,但您的图像控件已被缩放,请尝试将
Aspect
属性设置为图像控件的填充

在平台上设置特定的大小

用于为每个平台设置特定值。比如说

<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
边距。

您是否尝试在特定平台上设置大小?@FabriBertani,我不太清楚您的意思。我会说,我只是删除了所有的scalexxx图像,在根目录中放置了一个32X32的基本图像,并更新了应用程序以使用它,我觉得它很好。我只是想在UWP应用程序中使用更新的图像缩放方法。正如你从我发布的问题中看到的,我已经有了.scale xxx的图像。后缀正在显示的图像仍然太大。我也很熟悉OnPlatform,但我该如何使用它来解决这个问题,因为它似乎与windows计算机上的显示缩放有关,而不是与实际平台有关。是否有一种简单的方法来判断正在运行的应用程序中使用了哪个图像(即哪个后缀)?这可能会告诉我,如果我只是需要重新缩放我的图像,但我不确定实际情况是否如此。它还可以让我知道,当在未缩放的显示器上运行时,应用程序选择的文件是否与缩放显示器时的文件不同。您可以尝试使用转换器检测图像后缀。有关更多信息,请参阅此[文档]()-好的,我会尝试一下。非常感谢。