问题描述
...
<ContentPage.Content>
<Grid Padding="0,40,0">
<Grid.ColumnDeFinitions>
<ColumnDeFinition Width="*"/>
</Grid.ColumnDeFinitions>
<Grid.RowDeFinitions>
<RowDeFinition Height="Auto"/>
</Grid.RowDeFinitions>
<Image Grid.Row ="0" Source="iMobile"
HorizontalOptions="CenterandExpand"
WidthRequest="260" HeightRequest="129"/>
</Grid>
</ContentPage.Content>
图像iMobile
显示在Android
和ios
上。对于Android
,在单独的可绘制文件夹中,图像的大小不同。对于ios
,我在Assets目录中具有不同大小的图像。
我曾尝试对UWP做同样的事情,但似乎无济于事。这是我尝试做的一些事情:
-
我已将图像添加到UWP项目的根目录中,但这不起作用。
-
我将图像添加到了Assets目录,但这没有用。
-
我尝试将
.scale-100
,.scale-200
和.scale-400
添加到图像文件的名称(将它们分别尝试过),但这没有用。 -
我还尝试将图像放在名为 scale-100 的目录中,但这也不起作用。
有什么想法可能导致我的问题以及如何解决此问题?一件如此琐碎的事情花了我很多时间,真是令人沮丧。
更新: 我尝试使用URL代替iMobile作为源,这对UWP也不起作用,但对Android却有效,请知道为什么会这样?
解决方法
如何使图像显示在Xamarin.Forms应用程序的UWP版本中
请参阅Images in Xamarin.Forms正式文件。 Xamarin表单支持Native resolutions。
UWP图像文件名可以在文件扩展名前添加.scale-xxx后缀,其中xxx是应用于资产的缩放比例,例如myimage.scale-200.png。然后可以在不使用scale修饰符的代码或XAML中引用图像,例如只是myimage.png。该平台将根据显示器的当前DPI选择最接近的合适资产规模。
如果将图像文件放置在UWP Assets文件夹中,则可以使用以下xaml,并且请注意,默认的空白xamarin应用iamge文件的颜色为白色,我们需要设置黑色背景以突出显示它们。
<Grid BackgroundColor="Black">
<Image>
<Image.Source>
<OnPlatform x:TypeArguments="FileImageSource">
<On Platform="UWP" Value="Assets/LargeTile.png" />
<On Platform="iOS" Value="LargeTile.png" />
<On Platform="Android" Value="LargeTile.png" />
</OnPlatform>
</Image.Source>
</Image>
</Grid>