Loading

Xamarin.Community.Toolkit 实用的控件!

AvatarView

一般来讲, 系统里面显示一个头像很合理吧, 但是头像如果不存在呢? 你不可能显示一个空白吧, 如果空白的时候显示成用户名称的缩写, 这也是非常合理吧。

所以, 我们可以使用AvatarView 控件, 他可以满足你。想要了解它的工作原理? 那跟着我往下看吧!

下图展示了一个非常理想的情况, 有头像的显示头像, 没头像的显示名字的缩写。

对应的, ViewModel当中的定义:

public class AvatarViewViewModel : BaseViewModel
     {

          public object[] Items { get; } =
          {

               new { Initials = "AM",  Source = string.Empty,

                    Name = "Andrei Misiukevich" },

               new { Initials = "DO",

                    Source =

                      "https://picsum.photos/500/500?image=472",

                    Name = "David Ortinau" },

               new { Initials = "ST",

                    Source =

                      "https://picsum.photos/500/500?image=473",

                    Name = "Steven Thewissen" },

               new { Initials = "GV",  Source = string.Empty,

                      Name = "Glenn Versweyveld" },

               new { Initials = "JSR", Source = string.Empty,

                      Name = "Javier Suárez Ruiz" },

               new { Initials = "GV",

                    Source =

                      "https://picsum.photos/500/500?image=474",

                    Name = "Gerald Versluis" },

               new { Initials = "XM",

                    Source =

                      "https://picsum.photos/500/500?image=475",

                    Name = "Xamarin Monkey" },

               new { Initials = string.Empty, Source = string.Empty,

                    Name = "Unknown" }
          };

     }

当Source为空, 则会显示其名称, 否则就解析对应地址的图像

对应XAML 模板中 如下所示:

<xct:AvatarView ColorTheme="{x:Static xct:ColorTheme.Jungle}"

                  FontSize="Medium"

                  Size="{Binding Value,

                  Source={x:Reference Slider}}"

                  Text="{Binding Initials}">

    <xct:AvatarView.Source>

        <UriImageSource Uri="{Binding Source}" />

    </xct:AvatarView.Source>

</xct:AvatarView>

此代码中最相关的要点如下:

  • Text 属性允许仅在图像不可用时才显示名称缩写。
  • 属性 获取要显示的图像。在此特定示例中,由于传递了 URI,因此以 UriImageSource 对象的形式检索它。
  • ColorTheme 属性允许分配在 Xamarin 社区工具包中实现的预定义颜色主题之一。

如果没有可用的图像和首字母缩写,则 AvatarView 将仅显示一个 X 字符,这是 Xamarin 的首字母。

MediaElement

该视图允许在应用程序中播放音频和视频。实际上,在其开发过程中,MediaElement 控件包含在 Xamarin.Forms 代码库中,但现在它已移至 Xamarin 社区工具包库。

MediaElement 可以从远程 URI、本地库、嵌入在应用资源中的媒体文件以及本地文件夹中播放媒体内容。

<xct:MediaElement

    x:Name="mediaElement"

    Source="https://sec.ch9.ms/ch9/5d93/a1eab4bf-3288-4faf-81c4-294402a85d93/XamarinShow_mid.mp4"

    ShowsPlaybackControls="True" MediaOpened="OnMediaOpened"

    MediaFailed="OnMediaFailed" MediaEnded="OnMediaEnded"

    HorizontalOptions="Fill" SeekCompleted="OnSeekCompleted" />

MediaElement 视图还公开了一目了然的方法,如“播放”、“停止”和“暂停”,你可以在 C# 代码中调用这些方法来手动控制媒体文件。此外,除其他内容外,此视图还会公开以下事件

  • MediaOpened: 当媒体流已通过验证并准备好播放时引发。
  • MediaEnded: 当媒体流到达其末尾时引发。
  • MediaFailed: 当媒体源上发生错误时引发。
  • SeekCompleted: 将复制移动到其他位置时升高。

MediaElement同时是一个非常通用的视图,其最简单的形式,以及一个完全可定制的视图,用于高质量的媒体播放设计。

Shield

Shield 是一种视图,允许以类似徽章的方式显示有关服务状态或号召性用语的信息。盾牌现在非常流行。例如,它们用于在 NuGet、GitHub 和 Azure Pipelines 等网站上显示有关软件状态的信息。

<xct:Shield  
            Subject="C#"
            Status=">=4.5"
            StatusBackgroundColor="DodgerBlue"
            StatusTextColor="White"
            Tapped="OnShieldTapped" />

更多控件

  • SnackBar / Toast (显示 Toast 通知和提示栏)
  • Popup (弹出窗口)
  • TabView (选项卡视图)
  • CameraView (允许从设备捕获视频和图像)
  • Expander (收缩分组视图)
  • RangeSlider (范围数值选择器)
  • SideMenuView (侧边的菜单视图)
  • ...
posted @ 2022-04-14 13:55  痕迹g  阅读(633)  评论(0编辑  收藏  举报