C#使用Xamarin开发可移植移动应用(5.进阶篇显示弹出窗口与通讯中心)附源码
来源:互联网 发布:2017网络机顶盒排行榜 编辑:程序博客网 时间:2024/05/17 06:31
源码地址: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(); }
最终的效果如图:
相关文章:
C#使用Xamarin开发可移植移动应用(1.入门与Xamarin.Forms页面),附源码
.NET Standard@Xamarin.Forms
C#使用Xamarin开发可移植移动应用(2.Xamarin.Forms布局,本篇很长,注意)附源码
C#使用Xamarin开发可移植移动应用(3.Xamarin.Views控件)附源码
C#使用Xamarin开发可移植移动应用(4.进阶篇MVVM双向绑定和命令绑定)附源码
原文地址:http://www.cnblogs.com/GuZhenYin/p/7405209.html
.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注
- C#使用Xamarin开发可移植移动应用(5.进阶篇显示弹出窗口与通讯中心)附源码
- C#使用Xamarin开发可移植移动应用(5.进阶篇显示弹出窗口与通讯中心)附源码
- C#使用Xamarin开发可移植移动应用(1.入门与Xamarin.Forms页面),附源码
- C#使用Xamarin开发可移植移动应用进阶篇(7.使用布局渲染器,修改默认布局),附源码
- C#使用Xamarin开发可移植移动应用(4.进阶篇MVVM双向绑定和命令绑定)附源码
- C#使用Xamarin开发可移植移动应用(3.Xamarin.Views控件)附源码
- C#使用Xamarin开发可移植移动应用(3.Xamarin.Views控件)附源码
- C#使用Xamarin开发可移植移动应用进阶篇(6.使用渲染器针对单个平台自定义控件..很很很很重要..),附源码
- C#使用Xamarin开发可移植移动应用进阶篇(6.使用渲染器针对单个平台自定义控件),附源码
- C#使用Xamarin开发可移植移动应用进阶篇(8.打包生成安卓APK并精简大小),附源码
- C#使用Xamarin开发可移植移动应用进阶篇(8.打包生成安卓APK并精简大小),附源码
- C#使用Xamarin开发可移植移动应用(2.Xamarin.Forms布局,本篇很长,注意)附源码
- C#使用Xamarin开发可移植移动应用进阶篇(9.混淆代码,防止反编译)
- C#使用Xamarin开发可移植移动应用进阶篇(9.混淆代码,防止反编译)
- C#使用Xamarin开发可移植移动应用进阶篇(9.混淆代码,防止反编译)
- C#使用Xamarin开发可移植移动应用进阶篇(10.综合演练,来一份增删改查CRUD)
- Xamarin C# 移动开发
- C# 使用Xamarin 开发应用 -- 切换Activity
- 程序配置&amp;ConfigurationManager
- Orleans简单配置
- Entity Framework Core 2.0 特性介绍和使用指南
- 迁移.net framework 工程到.net core
- Orleans稍微复杂的例子—互动
- C#使用Xamarin开发可移植移动应用(5.进阶篇显示弹出窗口与通讯中心)附源码
- Android7.0 CTS 测试环境搭建 及CTS测试套件
- ASP.NET Core Razor页面 vs MVC
- 度量.net framework 迁移到.net core的工作量
- 使用VS Code开发调试.NET Core 2.0
- Orleans例子再进一步
- ngrok配置及下载
- Android官方推荐的集合类
- .NET Core 2.0 开源Office组件 NPOI