GravatarImageSource

Gravatar(“全球公认头像”)是一种图像,可以在多个网站上用作头像,即代表你身份的图像。 例如,Gravatar 可以用于在论坛帖子、博客评论等中标识个人身份。 (你可以在 Gravatar 网站上注册自己的 Gravatar,网址为 http://www.gravatar.com/。)如果要在人员姓名或电子邮件地址旁边显示图像,则可以使用 GravatarImageSource。

语法

包括 XAML 命名空间

若要在 XAML 中使用工具包,需要将以下 xmlns 添加到页面或视图中:

xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"

因此,以下内容:

<ContentPage
    x:Class="CommunityToolkit.Maui.Sample.Pages.MyPage"
    xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml">

</ContentPage>

将被修改为包括 xmlns,如下所示:

<ContentPage
    x:Class="CommunityToolkit.Maui.Sample.Pages.MyPage"
    xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit">

</ContentPage>

使用 GravatarImageSource

下面的示例演示如何使用 GravatarImageSource

<ContentPage
    x:Class="CommunityToolkit.Maui.Sample.Pages.MyPage"
    xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit">
    <VerticalStackLayout>
        <Image>
            <Image.Source>
                <toolkit:GravatarImageSource
                    CacheValidity="1"
                    CachingEnabled="True"
                    Email="youremail@here.com"
                    Image="MysteryPerson" />
            </Image.Source>
        </Image>
    </VerticalStackLayout>
</ContentPage>

等效 C# 代码如下:

using CommunityToolkit.Maui.ImageSources;

partial class MyPage : ContentPage
{
	public MyPage()
	{
        Image myImage = new()
        {
            Source = new GravatarImageSource()
            {
                CacheValidity = TimeSpan.FromDays(1),
                CachingEnabled = true,
                Email = "youremail@here.com",
                Image= DefaultImage.MysteryPerson
            },
        };
		Content = myImage;
	}
}

属性

属性 类型​​ 描述
CacheValidity TimeSpan 类型为 TimeSpanCacheValidity 属性指定图像在本地存储多长时间。 此属性的默认值为 1 天。
CachingEnabled bool 类型为 boolCachingEnabled 属性定义是否启用图像缓存。 此属性的默认值为 true
电子邮件 string? 类型为 string?Email 属性指定 gravatar 帐户电子邮件地址。 如果未设置,则呈现 Gravatar 图像。 如果已在 Gravatar 上设置但未找到,则呈现 Image 属性图像。
映像 DefaultImage 类型为 DefaultImageImage 属性是一个枚举,用于在 Gravatar 上找不到 email 时指定默认图像。

这些属性由 BindableProperty 对象提供支持;也就是说,它们可以作为数据绑定的目标,并能进行样式设置。

设置缓存有效性

CacheValidity 属性是一种 TimeSpan,用于指定图像将在本地存储多长时间。

以下示例设置 GravatarImageSource 的缓存有效性:

<Image>
    <Image.Source>
        <toolkit:GravatarImageSource CacheValidity="1" />
    </Image.Source>
</Image>

等效 C# 代码如下:

Image myImage = new()
{
    Source = new GravatarImageSource()
    {
        CacheValidity = TimeSpan.FromDays(1),
    },
};

将缓存设置为已启用

CachingEnabled 属性是一个 bool,用于定义是否启用图像缓存。

以下示例将 GravatarImageSource 的缓存设置为“已启用”:

<Image>
    <Image.Source>
        <toolkit:GravatarImageSource CachingEnabled="True" />
    </Image.Source>
</Image>

等效 C# 代码如下:

Image myImage = new()
{
    Source = new GravatarImageSource()
    {
        CachingEnabled = true,
    },
};

设置电子邮箱

Email 属性是可为 null 的 string。 如果该属性为 null 或为空,则会呈现默认 Gravatar 图像。 如果电子邮件地址没有匹配的 Gravatar 图像,则呈现 Image 属性图像。

以下示例设置了包含匹配 Gravatar 图像的电子邮件地址:

<Image>
    <Image.Source>
        <toolkit:GravatarImageSource Email="dsiegel@avantipoint.com" />
    </Image.Source>
</Image>

等效 C# 代码如下:

Image myImage = new()
{
    Source = new GravatarImageSource()
    {
        Email = "dsiegel@avantipoint.com",
    },
};

以下示例未设置电子邮件地址,因此将显示默认 Gravatar 图像。

<Image>
    <Image.Source>
        <toolkit:GravatarImageSource />
    </Image.Source>
</Image>

等效 C# 代码如下:

Image myImage = new()
{
    Source = new GravatarImageSource(),
};

以下示例设置不包含匹配 Gravatar 图像的电子邮件地址,因此将显示默认 Image 图像。

<Image>
    <Image.Source>
        <toolkit:GravatarImageSource Email="notregistered@emailongravitar.com" />
    </Image.Source>
</Image>

等效 C# 代码如下:

Image myImage = new()
{
    Source = new GravatarImageSource()
    {
        Email = "notregistered@emailongravitar.com",
    },
};

设置默认图像

Image 属性是一个枚举,用于在 email 地址没有匹配的 Gravatar 图像时指定默认图像。 可用选项包括:

  • MysteryPerson(默认)- 一个简单的卡通风格人物剪影轮廓(不因电子邮件哈希而异)
  • FileNotFound - 如果没有与电子邮件哈希关联的图像,则不会加载任何图像,而是返回 HTTP 404(未找到文件)响应。
  • Identicon - 基于电子邮件哈希的几何图案。
  • MonsterId - 肤色和面孔等特征各不相同的生成的“怪物”。
  • Wavatar - 特征和背景各不相同的生成的面孔。
  • Retro - 可生成奇异的画面效果,8 位街机式的像素化面孔。
  • Robohash - 颜色、面孔等各不相同的生成的机器人。
  • Blank - 透明 PNG 图像。

以下示例设置了 GravatarImageSource 的默认图像:

<Image>
    <Image.Source>
        <toolkit:GravatarImageSource Email="notregistered@emailongravitar.com" Image="Retro" />
    </Image.Source>
</Image>

等效 C# 代码如下:

Image myImage = new()
{
    Source = new GravatarImageSource()
    {
        Email = "notregistered@emailongravitar.com",
        Image = DefaultImage.Retro
    },
};

设置图像大小

默认情况下,GravatarImageSource 图像以 80px x 80px 显示。 图像大小可以介于 1px 和 2048px 之间并且取自其父视图大小属性。 Gravatar 图像是正方形的,并且将采用定义的尺寸属性中的较大值。

以下示例设置了图像控件的大小,因此请求的 Gravatar 图像的大小将为 73px。

<Image WidthRequest="72" HeightRequest="73">
    <Image.Source>
        <toolkit:GravatarImageSource Email="dsiegel@avantipoint.com" />
    </Image.Source>
</Image>

等效 C# 代码如下:

Image myImage = new()
{
    Source = new GravatarImageSource()
    {
        Email = "dsiegel@avantipoint.com",
    },
    HeightRequest = 72,
    HeightRequest = 73,
};

示例

可以在 .NET MAUI 社区工具包示例应用程序中查找此控件操作的示例。

API

可以在 .NET MAUI 社区工具包 GitHub 存储库查看GravatarImageSource 的源代码