.NET MAUI 社区工具包 1.3版本发布

时间:2022-10-11 16:12:39

2022 年 10 月 4 日,微软发布了 .NET MAUI 社区工具包的 1.3 版,具体参见微软官方博客:https://devblogs.microsoft.com/dotnet/announcing-the-dotnet-maui-community-toolkit-v13/ ,该工具包是 MAUI 官方应用程序框架的补充库。此版本包括错误修复和多项增强功能,例如 gravatar 支持、彩色状态栏和控件的淡入淡出动画。

MAUI(多应用程序用户界面)框架是微软用于跨平台应用程序开发的最新框架,取代了 Xamarin 和 Xamarin Forms。它已经在2022年8月正式发布,在 GitHub 上仍然有数百个未解决的 Bug,社区因此认为官方过早地发布了这个版本。

.NET MAUI区工具包 (NMCT) 是微软在 GitHub 上托管的 .NET 社区工具包之一。他们的目的是让社区贡献官方框架中缺少的有用代码。社区工具包作为开源软件发布,它们鼓励开发人员提交他们的贡献。

NCMT 的第一个版本于 2021 年 7 月推出,作为现有 Xamaring 社区工具包的替代品。 1.3 版本是继今年 3 月 NCMT 正式发布后的第三个增强版本。其中两项工具包改进已作为行为实现,这是MAUI框架中的设计决策,允许开发人员向现有用户界面控件添加功能,而无需对它们进行子类化并使用扩展类。

彩色状态栏是一种称为状态栏行为的新行为类。它允许开发人员将其添加到页面行为的集合中,指定状态栏颜色和样式(无论是深色还是浅色内容)。

<ContentPage.Behaviors>
    <toolkit:StatusBarBehavior StatusBarColor="Fuchsia" StatusBarStyle="LightContent" />
</ContentPage.Behaviors>

如果开发人员以 iOS 平台为目标,则在 Info.plist 元数据文件中稍作更改以支持此功能。

淡入淡出动画将添加到现有的动画行为类中。它允许开发人员对可视 UI 元素的不透明度进行动画处理,从其原始不透明度到指定的不透明度级别,然后再返回。

此动画的源代码如下所示:

<Button Text="Click this Button">
    <Button.Behaviors>
        <toolkit:AnimationBehavior EventName="Clicked">
            <toolkit:AnimationBehavior.AnimationType>
                <toolkit:FadeAnimation Opacity="0.2"/>
            </toolkit:AnimationBehavior.AnimationType>
        </toolkit:AnimationBehavior>
    </Button.Behaviors>
</Button>

涂鸦图像源允许开发人员利用现有的Gravatar来获取用户配置文件。它被实现为一个名为GravatarImageSource 的专用图像源类,其中 Email 属性指定用户配置文件。

<Image>
    <Image.Source>
        <toolkit:GravatarImageSource
            CacheValidity="1"
            CachingEnabled="True"
            Email="youremail@here.com"
            Image="MysteryPerson" />
    </Image.Source>
</Image>

图像源中还有其他属性可以进一步优化 gravatar 的缓存生命周期,或者在找不到 gravatar 时提供默认图像。

此版本中的一个小增强功能是为微软的社区工具包提供了SourceLink 调试符号。源链接允许Visual Studio 下载 NuGet 包的源代码和调试元数据。开发人员在调试使用库的代码时,可以单步执行库实现本身。

新添加的功能已在 NMCT 的示例应用程序中提供,该应用程序也托管在 GitHub 上。