如何让图像显示在我的 Xamarin.Forms 应用程序的 UWP 版本中
How do I make images show up in UWP version of my Xamarin.Forms application
我有一个简单的 Xaml 像这样:
...
<ContentPage.Content>
<Grid Padding="0,40,0,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
,我在资产目录中有不同大小的图像。
我已经尝试为 UWP 做同样的事情,但似乎没有任何效果。以下是我尝试过的一些事情:
我已将图像添加到 UWP 项目的根目录,但这不起作用。
我将图像添加到 Assets 目录,但是没有用。
我尝试将 .scale-100
、.scale-200
和 .scale-400
添加到图像文件的名称中(分别尝试),但没有用。
我也试过将图像放在名为 scale-100 的目录中,但这也不起作用。
任何可能导致我的问题的想法以及如何解决这个问题?如此琐碎的事情占用了我这么多时间,真是令人沮丧。
更新:
我尝试使用 URL 作为源而不是 iMobile,这对 UWP 也不起作用,但它对 Android 有效,请问为什么会这样?
How do I make images show up in UWP version of my Xamarin.Forms application
请参考Images in Xamarin.Forms official document. Xamarin form support Native resolutions。
UWP image file names can be suffixed with .scale-xxx before the file extension, where xxx is the percentage of scaling applied to the asset, e.g. myimage.scale-200.png. Images can then be referred to in code or XAML without the scale modifier, e.g. just myimage.png. The platform will select the nearest appropriate asset scale based on the display's current 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>
我有一个简单的 Xaml 像这样:
...
<ContentPage.Content>
<Grid Padding="0,40,0,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
,我在资产目录中有不同大小的图像。
我已经尝试为 UWP 做同样的事情,但似乎没有任何效果。以下是我尝试过的一些事情:
我已将图像添加到 UWP 项目的根目录,但这不起作用。
我将图像添加到 Assets 目录,但是没有用。
我尝试将
.scale-100
、.scale-200
和.scale-400
添加到图像文件的名称中(分别尝试),但没有用。我也试过将图像放在名为 scale-100 的目录中,但这也不起作用。
任何可能导致我的问题的想法以及如何解决这个问题?如此琐碎的事情占用了我这么多时间,真是令人沮丧。
更新: 我尝试使用 URL 作为源而不是 iMobile,这对 UWP 也不起作用,但它对 Android 有效,请问为什么会这样?
How do I make images show up in UWP version of my Xamarin.Forms application
请参考Images in Xamarin.Forms official document. Xamarin form support Native resolutions。
UWP image file names can be suffixed with .scale-xxx before the file extension, where xxx is the percentage of scaling applied to the asset, e.g. myimage.scale-200.png. Images can then be referred to in code or XAML without the scale modifier, e.g. just myimage.png. The platform will select the nearest appropriate asset scale based on the display's current 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>