如何在跨平台 xamarin XAML 上从资产目录加载图像?
How do I load an image from the Asset Catalog on cross-platform xamarin XAML?
这似乎是一件很容易做的事情,理论上它看起来非常简单:
- 创建资产目录
- 添加图像集并将其命名为 "imageName"(不带 .png)
- 添加图像
- 完成
或者至少这是我几乎到处都读到的内容,但我仍然无法让它发挥作用。
我的 XAML 看起来像这样:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:CrossBaiscs"
x:Class="CrossBaiscs.MainPage">
<ContentPage.Content>
<StackLayout BackgroundColor="Orange">
<Label Text="Welcome to Xamarin.Forms!"
TextColor="White"
VerticalOptions="CenterAndExpand"
HorizontalOptions="CenterAndExpand" />
<Image VerticalOptions="CenterAndExpand"
HorizontalOptions="Center"
Source="logo1.png"/>
</StackLayout>
</ContentPage.Content>
</ContentPage>
并且我在资产目录中添加了图像:
我正在 Iphone 6 上使用 Xamarin Live Player 进行测试,我看不到标签下的任何图像。
所以...我错过了什么?
编辑
它适用于这个人:
但不适合我,我确实尝试删除 .png 扩展名并保留 xaml,如下所示:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:CrossBaiscs"
x:Class="CrossBaiscs.MainPage">
<ContentPage.Content>
<StackLayout BackgroundColor="Orange">
<Label Text="Welcome to Xamarin.Forms!"
TextColor="White"
VerticalOptions="CenterAndExpand"
HorizontalOptions="CenterAndExpand" />
<Image VerticalOptions="CenterAndExpand"
HorizontalOptions="Center"
Source="logo1"/>
</StackLayout>
</ContentPage.Content>
</ContentPage>
还是不行。
已尝试清理构建文件夹并删除 bin/obj 个文件夹,但仍然一无所获。
尝试将资源添加到资源文件夹并从资产目录中删除图像集:
还是不行。
想法?
编辑 2
我将这 3 张图像留在资源文件夹中,并在 XAML 上添加了扩展名 .png,它起作用了,仍然很高兴知道它应该如何使用资产目录来完成。
不要在 XAML
中使用 .png
扩展名
<Image VerticalOptions="CenterAndExpand"
HorizontalOptions="Center"
Source="logo1"/>
只是指出一些可能很明显但给我带来了多年问题的问题 - 您不能使用资产目录附带的 LaunchImages 集,因为它不符合在图像下拉列表中列出的条件。您必须创建一个新的图像集。
在我这样做之后,以下答案突然起作用(以前没有):
Including the Asset Catalog folder in the project
在 Xamarin 文档中,他们已经明确提到-在 iOS 上,无法从资产目录图像集中的图像填充 Page.Icon 属性。相反,从 iOS 项目的资源文件夹中加载 Page.Icon 属性 的图标图像。
我们在 IPhone 上对 Xamarin Live Player 进行了测试,结果发现尚不支持资产目录。 (https://twitter.com/praeclarum/status/941775333753217025?s=08)
感谢您的回复!
这似乎是一件很容易做的事情,理论上它看起来非常简单:
- 创建资产目录
- 添加图像集并将其命名为 "imageName"(不带 .png)
- 添加图像
- 完成
或者至少这是我几乎到处都读到的内容,但我仍然无法让它发挥作用。
我的 XAML 看起来像这样:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:CrossBaiscs"
x:Class="CrossBaiscs.MainPage">
<ContentPage.Content>
<StackLayout BackgroundColor="Orange">
<Label Text="Welcome to Xamarin.Forms!"
TextColor="White"
VerticalOptions="CenterAndExpand"
HorizontalOptions="CenterAndExpand" />
<Image VerticalOptions="CenterAndExpand"
HorizontalOptions="Center"
Source="logo1.png"/>
</StackLayout>
</ContentPage.Content>
</ContentPage>
并且我在资产目录中添加了图像:
我正在 Iphone 6 上使用 Xamarin Live Player 进行测试,我看不到标签下的任何图像。
所以...我错过了什么?
编辑
它适用于这个人:
但不适合我,我确实尝试删除 .png 扩展名并保留 xaml,如下所示:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:CrossBaiscs"
x:Class="CrossBaiscs.MainPage">
<ContentPage.Content>
<StackLayout BackgroundColor="Orange">
<Label Text="Welcome to Xamarin.Forms!"
TextColor="White"
VerticalOptions="CenterAndExpand"
HorizontalOptions="CenterAndExpand" />
<Image VerticalOptions="CenterAndExpand"
HorizontalOptions="Center"
Source="logo1"/>
</StackLayout>
</ContentPage.Content>
</ContentPage>
还是不行。 已尝试清理构建文件夹并删除 bin/obj 个文件夹,但仍然一无所获。
尝试将资源添加到资源文件夹并从资产目录中删除图像集:
还是不行。
想法?
编辑 2
我将这 3 张图像留在资源文件夹中,并在 XAML 上添加了扩展名 .png,它起作用了,仍然很高兴知道它应该如何使用资产目录来完成。
不要在 XAML
中使用.png
扩展名
<Image VerticalOptions="CenterAndExpand"
HorizontalOptions="Center"
Source="logo1"/>
只是指出一些可能很明显但给我带来了多年问题的问题 - 您不能使用资产目录附带的 LaunchImages 集,因为它不符合在图像下拉列表中列出的条件。您必须创建一个新的图像集。
在我这样做之后,以下答案突然起作用(以前没有):
Including the Asset Catalog folder in the project
在 Xamarin 文档中,他们已经明确提到-在 iOS 上,无法从资产目录图像集中的图像填充 Page.Icon 属性。相反,从 iOS 项目的资源文件夹中加载 Page.Icon 属性 的图标图像。
我们在 IPhone 上对 Xamarin Live Player 进行了测试,结果发现尚不支持资产目录。 (https://twitter.com/praeclarum/status/941775333753217025?s=08)
感谢您的回复!