我所阅读的所有MAui文档的理解表明--如果您在应用程序中使用SVG图像文件
1.项目中SVG文件的实际大小基本上无关紧要
1.您应该手动编辑csproj文件,并确保将BaseSize属性添加到SVG文件的MauiImage Include=“Resources\Images\条目中。
- BaseSize属性的格式为W,H,宽度和高度值都必须能被8整除。
1.此外,BaseSize属性的值应为图像的1级比例。我对这个的理解是--你放在xamarin表单可绘制文件夹中的图像的大小,或者你添加到iOS资产目录中的图像的大小,文件名中没有@2,@3。
所以我就这么做了。现在我不明白毛伊岛是如何让我的形象。我试过的设置是220,56和180,48。我试过64 x64。这些尺寸似乎都不会对图像的大小产生任何影响。在每次测试之间,我都会清理解决方案并从Android模拟器中删除应用程序。
使用如下所示的220,56,我得到了如下图所示的:
<MauiImage Include="Resources\Images\gbsheader.svg" BaseSize="220,56">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</MauiImage>
使用180,48如下所示,我得到下面的图像:
<MauiImage Include="Resources\Images\gbsheader.svg" BaseSize="180,48">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</MauiImage>
因此,为了好玩,我将基础大小设置为64,64,如下所示,并得到以下结果:
<MauiImage Include="Resources\Images\gbsheader.svg" BaseSize="64,64">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</MauiImage>
这三个结果在我看来完全一样。有人知道我可能做错了什么吗?下面是包含图像定义的XAML。
x:Class="GBarScene_Maui.PageHeader">
<ContentView.Content>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="32"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="32"/>
</Grid.ColumnDefinitions>
<Image x:Name="imgMenu" Source="hamburgericon.png" HorizontalOptions="Center" VerticalOptions="Center" Grid.Column="0">
<Image.GestureRecognizers>
<TapGestureRecognizer Tapped="btnMenu_Tapped" NumberOfTapsRequired="1" />
</Image.GestureRecognizers>
</Image>
<Image x:Name="imgHeader" Source="gbsheader.png" HorizontalOptions="Center" VerticalOptions="Center" Grid.Column="1" />
</Grid>
</ContentView.Content>
2条答案
按热度按时间piztneat1#
所以张丽云贴出的答案对我不起作用。我读过的文档中没有一个声明Resize=“true”是必需的。我所读到的大多数内容都表明Resize=“true”是默认值。无论如何,在我的情况下-我更新了csproj文件如下-首先包括所有的图像文件,然后更新它们的基本大小等。我通过创建一个基本Maui项目并查看那里的csproj文件的图像来找到这个解决方案。我保留了Resize=“true”作为一个很好的衡量标准。不知道为什么这种方法有效而另一种方法无效--但现在这种方法有效了。
希望这对你有帮助。
r1wp621o2#
您可以在.net maui中查看有关调整图像大小的官方文档。
更新:
我又测试了一遍。
Resize="true"
不是必需的。只是按照maui项目模板来改变基础大小,它的工作。我不知道为什么我在Android上测试它不工作没有Resize=“true”.