xamarin UWP设置HUD加载功能
使用xamarin开发的时候经常用到加载HUD功能,就是我们常见的一个加载中的动作,Android 下使用 AndHUD , iOS 下使用 BTProgressHUD, 这两个在在 NuGet 上都有。在UWP中本身提供的方式,并不能完全满足我们的需求,因此我们需要使用Dependencies来重新定义平台的HUD功能,这时可以使用Popup来完成。popup本身是一个弹窗控件,可以在控件中添加各种其他的控件,这为我们自定义弹窗带来了方便。首先我们要把popup设置大小为应用App所见区域的大小。再在Popup的中间加载一个Grid,Grid里面加载所需多文字和图片就可以来。实例代码如下:
using BS.Dependencies;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Media;
using Windows.UI;
using Windows.UI.Xaml; [assembly: Dependency(typeof(BS.UWP.Dependencies.HUDUWP))]
namespace BS.UWP.Dependencies
{
public class HUDUWP : IHUD
{
private Windows.UI.Xaml.Controls.Grid Container = new Windows.UI.Xaml.Controls.Grid() {
Background = new SolidColorBrush(Colors.Black),
CornerRadius = new CornerRadius(),
Padding = new Windows.UI.Xaml.Thickness(),
HorizontalAlignment = HorizontalAlignment.Center,
VerticalAlignment = VerticalAlignment.Center,
}; private Popup Popup = null; public HUDUWP()
{
this.Popup = new Popup()
{
Child = new Border()
{
Width = Window.Current.Bounds.Width,
Height = Window.Current.Bounds.Height,
Background = new SolidColorBrush(Colors.Gray),
Opacity = 0.6,
HorizontalAlignment = HorizontalAlignment.Center,
VerticalAlignment = VerticalAlignment.Center,
Child = this.Container,
}
};
} public void Show()
{
this.Show("Hello World", );
} public void Show(string message)
{
this.Show(message, );
}
public void Show(string message, int delay = )
{
this.Popup.IsOpen = true;
this.Container.Children.Clear(); this.Container.Children.Add(new TextBlock()
{
Text = message,
Foreground = new SolidColorBrush(Colors.White),
FontSize =
});
Task.Delay(delay)
.ContinueWith(t =>
{
Device.BeginInvokeOnMainThread(() =>
{
this.Popup.IsOpen = false;
});
}
);
} public void Dismiss()
{
this.Popup.IsOpen = false;
}
}
}
已上代码经本人测试可以使用,希望对你开发有用。同时修改下上面代码在win8.1和winPhone平台下都可以使用。如有更好的方法请留言。
xamarin UWP设置HUD加载功能的更多相关文章
- IOS UITableView下拉刷新和上拉加载功能的实现
在IOS开发中UITableView是非常常用的一个功能,而在使用UITableView的时候我们经常要用到下拉刷新和上拉加载的功能,今天花时间实现了简单的UITableView的下拉刷新和上拉加载功 ...
- 用Go自己实现配置文件热加载功能
说到配置文件热加载,这个功能在很多框架中都提供了,如beego,实现的效果就是当你修改文件后,会把你修改后的配置重新加载到配置文件中,而不用重启程序,这个功能在日常中还是非常实用的,毕竟很多时候,线上 ...
- RecyclerViewLoadMoreDemo【封装上拉加载功能的RecyclerView,搭配SwipeRefreshLayout实现下拉刷新】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 封装含有上拉加载功能的RecyclerView,然后搭配SwipeRefreshLayout实现下拉刷新.上拉加载功能. 在项目中将 ...
- 手把手教你实现Android RecyclerView上拉加载功能
摘要 一直在用到RecyclerView时都会微微一颤,因为一直都没去了解怎么实现上拉加载,受够了每次去Github找开源引入,因为感觉就为了一个上拉加载功能而去引入一大堆你不知道有多少BUG的代码, ...
- PHP自动加载功能原理解析
前言 这篇文章是对PHP自动加载功能的一个总结,内容涉及PHP的自动加载功能.PHP的命名空间.PHP的PSR0与PSR4标准等内容. 一.PHP自动加载功能 PHP自动加载功能的由来 在PHP开发过 ...
- C# winform利用反射和自定义特性加载功能模块(插件式开发)
由于在实际的工作中, 碰见这样的一个问题: 一个软件, 销售给A客户 他需要所有功能, 但是销售给B客户, 他只需要其中的一部分, 1.如果我们在实际的开发过程中, 没有把一些功能模块区分开来的话, ...
- vux-scroller实现移动端上拉加载功能
本文将讲述vue-cli+vux-scroller实现移动端的上拉加载功能: 纠错声明:网上查阅资料看到很多人都将vux和vuex弄混,在这里我们先解释一下,vuex是vue框架自带的组件,是数据状态 ...
- MUI - 基于plus.downloader的图片懒加载功能,支持本地缓存
基于plus.downloader的图片懒加载功能,支持本地缓存 简单说一下 在app中,对一些变动不频繁的图片数据(如个人头像等),是需要存储在本地的.我相信这对大多数的app都是强需求的. 怎么使 ...
- Java开发学习(二十三)----SpringMVC入门案例、工作流程解析及设置bean加载控制
一.SpringMVC概述 SpringMVC是隶属于Spring框架的一部分,主要是用来进行Web开发,是对Servlet进行了封装.SpringMVC是处于Web层的框架,所以其主要的作用就是用来 ...
随机推荐
- noip2012-day2-t2
[问题描述] 在大学期间,经常需要租借教室.大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室.教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样. 面对海量租借教室的信息,我们 ...
- node3
- 利用onNewIntent避免Activity之间的跳转传值多次实体化
onNewIntent 需要注意的是: 1.通过Intent启到一个Activity的时候,就算已经存在一个相同的正在运行的Activity,系统也会创建一个新的Activity实例.为了不让Acti ...
- Win7 64位qt-windows-x86-msvc2015-5.6.0 DLL依赖库打包
今天开始系统的学习QT,第一个测试的问题就是在纯净的系统中如何正常运行,也就是找出QT生成的exe的依赖库问题 网上搜了下可以简单粗暴的用 D:\Qt\Qt5.6.0\5.6\msvc2015\bin ...
- C#匿名函数的坑
在for循环中catch索引 for (int i = 0; i < n; i++) { foo(() =>{ if (i == x) //这里的i始终都是最后一个... { //bala ...
- Mini projects #5 ---- Memory
课程全名:An Introduction to Interactive Programming in Python,来自 Rice University 授课教授:Joe Warren, Scott ...
- 利用GBDT模型构造新特征
[本文链接:http://www.cnblogs.com/breezedeus/p/4109480.html,转载请注明出处] 我的博客主营地迁至github,欢迎朋友们有空去看看:http://br ...
- arduino 入手
新买了个ardhuino 入门套件 1. Win7 Driver issue: Need to install the below drivers, because my windows is ins ...
- thinkphp学习笔记(一)
一.入门与安装 1.进入C:\Windows\System32\drivers\etc的hosts文件中增加127.0.0.1 www.tp5.com 即访问这个域名就相当于访问127.0.0.1 2 ...
- [转载]iOS9 使用CoreLocation
在iOS8之前,只要 #import <CoreLocation/CoreLocation.h>引入CoreLocation.framework. @property (nonatomic ...