• 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 (侧边的菜单视图)
    • ...
  • 相关阅读:
    Element-UI中Upload上传文件前端缓存处理
    Puppeteer前端自动化测试实践
    javascript-高级用法
    什么是闭包?闭包的优缺点?
    浅谈网站性能之前端性能优化
    2019前端面试题汇总(主要为Vue)
    从官网学习Node.js FS模块方法速查
    这才是官方的tapable中文文档
    面试官问:JS的this指向
    开启梦幻般的webrtc之旅
  • 原文地址:https://www.cnblogs.com/zh7791/p/16144204.html
Copyright © 2020-2023  润新知