C#使用Xamarin开发可移植移动应用(5.进阶篇显示弹出窗口与通讯中心)附源码

简介: 原文:C#使用Xamarin开发可移植移动应用(5.进阶篇显示弹出窗口与通讯中心)附源码前言 系列目录 C#使用Xamarin开发可移植移动应用目录 源码地址:https://github.com/l2999019/DemoApp 可以Star一下,随意 - - 说点什么.
原文: C#使用Xamarin开发可移植移动应用(5.进阶篇显示弹出窗口与通讯中心)附源码

前言

系列目录

C#使用Xamarin开发可移植移动应用目录

源码地址:https://github.com/l2999019/DemoApp

可以Star一下,随意 - -

说点什么..

没啥好说的.开干吧.

 

今天的学习内容?

今天的内容比较简单.

就几个弹出框和内置的消息通讯中心.

如图:

 

正文

 

1.xamarin中的弹出窗

xamarin帮我们把各个系统的弹出窗做了2个统一的类.

 1.DisplayAlert

 2.DisplayActionSheet

我们就来一一看看

DisplayAlert,其实很简单,就是一个类似于HTML的alert的弹出层.当然,你也可以作为commit来使用,代码如下:

alert的使用方式:

        private void Button_Clicked(object sender, EventArgs e)
        {
            DisplayAlert("提示", "这里是提示信息", "确定");
        }

 

commit的使用方式:

 private async void Button_Clicked_3(object sender, EventArgs e)
        {
           var date = await DisplayAlert("提示", "你确定要选择这个按钮么?", "确定","取消");
            await DisplayAlert("提示", "选中了"+date, "确定");
        }

 

DisplayActionSheet其实是一个多选的弹出层,你可以设置其中的选项,然后自定义下面的按钮,代码如下:

        private async void Button_Clicked_1(object sender, EventArgs e)
        {
            var action = await DisplayActionSheet("请选择分享到的位置", "取消", null, "QQ空间", "微博", "微信");
            await DisplayAlert("提示", "选中了" + action, "确定");
        }

 

第一个参数是标题内容,第二第三个参数为按钮,后面的参数为选项

下面是带2个按钮的代码例子:

  private async void Button_Clicked_2(object sender, EventArgs e)
        {
            var action = await DisplayActionSheet("请选择内容", "取消", "删除", "QQ空间", "微博", "微信");
            await DisplayAlert("提示", "选中了" + action, "确定");
        }

 

 

2.Xamarin中的消息通讯中心( MessagingCenter)

  MessagingCenter允许视图模型和其他组件进行通信,而不需要知道任何关于彼此的信息.

       嗯,上面一句是官方的解释.

       MessagingCenter分2个角色,一个叫做订阅者(Subscriber),一个叫做发送者(Sender).

       意思就已经很明确了,订阅者先订阅消息,然后发送者根据业务情况,来发送消息,让订阅者接收,以方便做一些事情.

       MessagingCenter可以用于:用户交互(如按钮点击),系统事件(如控制更改状态)或其他事件(如异步下载完成)。

       订阅者可能需要接收以改变用户界面的外观,保存数据或触发其他操作。

       

       MessagingCenter有以下API,我们就来一一讲解.

  • Subscribe<TSender> (object subscriber, string message, Action<TSender> callback, TSender source = null)
  • Subscribe<TSender, TArgs> (object subscriber, string message, Action<TSender, TArgs> callback, TSender source = null)
  • Send<TSender> (TSender sender, string message)
  • Send<TSender, TArgs> (TSender sender, string message, TArgs args)
  • Unsubscribe<TSender, TArgs> (object subscriber, string message)
  • Unsubscribe<TSender> (object subscriber, string message)

       Subscribe当然就是订阅的方法了,里面有3个必填参数,订阅对象,信息,回调函数.

       Send当然就是发送,2-3个参数,第一个是发送者,信息,回调函数的参数..

       Unsubscribe 就是取消订阅.

       

       举个栗子,我需要在跳转页面的同时传递一个消息给一个Page,并根据参数改变他的界面,那么我们就在接收的Page中创建一个订阅.

       代码如下:

        

            MessagingCenter.Subscribe<MainPage, string>(this, "Hello",  (obj, item) => {

                 DisplayAlert("提示", "传过来的参数为" + item, "确定");
                 this.lab.Text = item;
                lab.TextColor = Color.Red;



            });

然后,我们在前一个页面跳转之后发送这个消息.

 private void Button_Clicked_10(object sender, EventArgs e)
        {
            
            Navigation.PushAsync(new DisplayingAlertsPages());
         

                MessagingCenter.Send<MainPage, string>(this, "Hello", "消息~~~");
         

        }

在Page的释放事件中取消这个订阅

 protected override void OnDisappearing()
        {
            MessagingCenter.Unsubscribe<MainPage, string>(this, "Hello");
            base.OnDisappearing();
        }

 

最终的效果如图:

 

目录
相关文章
|
19天前
|
开发框架 前端开发 JavaScript
C# 6.0+JavaScript云LIS系统源码  云LIS实验室信息管理新型解决方案
云LIS是为区域医疗提供临床实验室信息服务的计算机应用程序,可协助区域内所有临床实验室相互协调并完成日常检验工作,对区域内的检验数据进行集中管理和共享,通过对质量控制的管理,最终实现区域内检验结果互认。其目标是以医疗服务机构为主体,以医疗资源和检验信息共享为目标,集成共性技术及医疗服务关键技术,建立区域协同检验,最大化利用有限的医疗卫生资源。
27 1
|
2天前
|
存储 运维 BI
基于C#-VC-MSSQL开发的全套PACS系统源码 3D PACS系统源码:可实现医学影像获取、存档、观片、处理、打印多项应用
PACS的功能价值在于通过连接不同的影像设备,存储与管理图像,图像的调用与后处理,实现资源共享,降低成本,达到提高工作效率、提升医疗水平的目地;
9 1
基于C#-VC-MSSQL开发的全套PACS系统源码  3D PACS系统源码:可实现医学影像获取、存档、观片、处理、打印多项应用
|
15天前
|
存储 数据采集 安全
C#医院手术室麻醉信息管理系统源码 自动生成麻醉的各种医疗文书(手术风险评估表、手术安全核查表)
医院手术麻醉信息系统有着完善的临床业务功能,能够涵盖整个围术期的工作,能够采集、汇总、存储、处理、展现所有的临床诊疗资料。通过该系统的实施,能够规范麻醉科的工作流程,实现麻醉手术过程的信息数字化,自动生成麻醉的各种医疗文书,完成共享HIS、LIS、PACS和EMR等手术患者信息,从而提高麻醉、手术工作的管理水平。
24 3
|
18天前
|
存储 开发框架 前端开发
C#开发的全套成熟的LIS系统源码JavaScript+SQLserver 2012区域云LIS系统源码
医院云LIS系统是一套成熟的实验室信息管理系统,目前已在多家三级级医院应用,并不断更新。云LIS系统是为病人为中心、以业务处理为基础、以提高检验科室管理水平和工作效率为目标,将医学检验、科室管理和财务统计等检验科室/实验室所有工作进行整合,全面改善检验科室/实验室的工作现状。
20 0
|
23天前
|
存储 安全 Oracle
C#检验科lis实验室信息管理系统源码
LIS是全院信息化建设的一个重要组成部分,其主要功能是将检验的实验仪器传出的检验数据经分析后,生成检验报告,通过网络存储在数据库中,使医生能够方便、及时的看到患者的检验结果,LIS已经成为现代化医院管理中必不可少的一部分。有助于提高实验室的整体管理水平,减少漏洞,提高检验质量。
23 1
|
Java C# 开发工具
开发语言漫谈-C#
C#的#,字面上的意思就是++++
|
25天前
|
图形学
【Unity C#_菜单Window开发系列_Inspector Component UnityEditor开发】
【Unity C#_菜单Window开发系列_Inspector Component UnityEditor开发】
|
27天前
|
开发框架 前端开发 JavaScript
采用C#.Net +JavaScript 开发的云LIS系统源码 二级医院应用案例有演示
技术架构:Asp.NET CORE 3.1 MVC + SQLserver + Redis等 开发语言:C# 6.0、JavaScript 前端框架:JQuery、EasyUI、Bootstrap 后端框架:MVC、SQLSugar等 数 据 库:SQLserver 2012
22 0
|
21天前
|
开发框架 前端开发 .NET
C#编程与Web开发
【4月更文挑战第21天】本文探讨了C#在Web开发中的应用,包括使用ASP.NET框架、MVC模式、Web API和Entity Framework。C#作为.NET框架的主要语言,结合这些工具,能创建动态、高效的Web应用。实际案例涉及企业级应用、电子商务和社交媒体平台。尽管面临竞争和挑战,但C#在Web开发领域的前景将持续拓展。
|
21天前
|
SQL 开发框架 安全
C#编程与多线程处理
【4月更文挑战第21天】探索C#多线程处理,提升程序性能与响应性。了解C#中的Thread、Task类及Async/Await关键字,掌握线程同步与安全,实践并发计算、网络服务及UI优化。跟随未来发展趋势,利用C#打造高效应用。