gpt4 book ai didi

image - 如何在 Xamarin.Forms 中使用 XAML 从嵌入式资源设置图像

转载 作者:行者123 更新时间:2023-12-04 00:03:33 25 4
gpt4 key购买 nike

在代码中设置图像源并指向 PCL 项目中特定文件夹中的嵌入图像(在本例中为“图像”)时,我会这样做:

backgroundImg.Source = ImageSource.FromResource("Myapp.Images." + imageName + ".jpg");

有没有办法在 XAML 中做到这一点?

最佳答案

@Code Pope 在他的回答中是正确的,但您还需要添加一个“ImageResourceExtension”,如@Gerald Versluis 的评论中所述。
为此,只需创建一个新文件(类)“ImageResourceExtension.cs”,如下所示:

using System;  
using System.Reflection;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;

namespace ImageResourceExtension
{
[ContentProperty (nameof(Source))]
class ImageResourceExtension : IMarkupExtension
{
public string Source { get; set; }

public object ProvideValue(IServiceProvider serviceProvider)
{
if (Source == null)
{
return null;
}

var imageSource = ImageSource.FromResource(Source, typeof(ImageResourceExtension).GetTypeInfo().Assembly);
return imageSource;
}
}
}
然后添加 xmlns:local="clr-namespace:ImageResourceExtension"到您的 xaml 文件,如下所示:
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:d="http://xamarin.com/schemas/2014/forms/design"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:ImageResourceExtension"
...
现在您可以使用 xaml 代码访问嵌入式资源,如下所示:
<Image Source="{local:ImageResource MyProject.Resources.Images.Logo.png}" />

关于image - 如何在 Xamarin.Forms 中使用 XAML 从嵌入式资源设置图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54090850/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com