xamarin.forms - Xamarins 在缩放显示上形成 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
根据我找到的文档。
当我运行该应用程序时,图像会显示得很大,并且会关闭其余的显示。下面是一个屏幕截图:
如果我将比例设置为 100% - 一切都很小,但图像是正确的。这是一个屏幕截图。
知道如何解决这个问题吗?
解决方案
来源于官方文档。
UWP 图像文件名可以在文件扩展名前加上 .scale-xxx 后缀,其中 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
像上面的代码一样为每个平台指定边距。
推荐阅读
- angular - 未定义标识符“长度”。'null' 不包含这样的成员 ng
- bash - 删除月、年之后的所有文本
- javascript - 第一个stackoverflow问题 每日编码问题#7
- swift - 将 Cognito 中的用户信息与 AWS Amplify GraphQL 关联
- swift - swift 5 覆盖 func viewWillAppear 的问题
- javascript - Angular 8 - @ViewChild 在父组件上返回未定义。(没有嵌套的 ngIf 并在 ngAfterViewInit 中调用)
- php - 使用 php 文件取消链接时,它不会删除文件
- kernel - 我有问题女巫编译android linux内核
- debugging - IntelliJ Idea 中的 Ballerina 调试带有“正在收集数据..”消息
- java - 如果其中有一个较小的 JScrollPane,如何滚动它?