我知道我们必须使用 .svg 图像格式而不是 1x,2x,3x .png 图像格式,MAUI 会处理它,但我目前正在将现有的 Xamarin Forms 应用程序迁移到 MAUI,并且很难转换所有现有的 1x ,2x,3x .png 图像转换为 .svg 图像格式。
如果我使用 1x,2x,3x .png 图像格式,则应用程序会出现错误
“检测到一个或多个无效文件名。文件名必须为小写,以字母字符开头和结尾,并且仅包含字母数字字符或下划线”
我们有什么办法可以在 MAUI 中使用 1x,2x,3x .png 吗?
默认情况下,MAUI 应用程序使用
Resources/Images
图像路径,该路径不接受 @ 字符作为文件名。您正在尝试使用 unselected@2x
,这是 iOS 图像命名约定,以获得更高分辨率,但 MAUI 不理解这一点。这就是你的错误的原因。
解决方案:
如果您想使用现有 Xamarin Forms 应用程序中的现有资源,而不是在
svg
中转换它们,则需要告诉您的 MAUI 项目您想要使用其他资源而不是 Resources/Images
。
假设您将所有图像(1x、2x、3x)保存在
Platforms/iOS/Resources
路径中。
现在在您的 .csproj
中写下以下代码,告诉您的 MAUI 项目您想要使用 Platforms/iOS/Resources
中的资源。
<PropertyGroup Condition="$(TargetFramework.Contains('-ios'))">
<IPhoneResourcePrefix>Platforms/iOS/Resources</IPhoneResourcePrefix>
</PropertyGroup>