Xamarin.Forms Device类介绍

2024-04-24 09:08
文章标签 介绍 device xamarin forms

本文主要是介绍Xamarin.Forms Device类介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

以下内容全部或部分转自或参考于网络。

Device是一个静态类,提供一些属性和方法帮助开发者判断平台类型、对不同平台提供不同处理。

Device.Idiom

Idiom属性,TargetIdiom枚举类型。可以根据Idiom判断当前设备的类型。

使用方式,移动端开发主要判断Phone和Tablet(平板):

 

Device.OS

OS属性,TargetPlatform枚举类型。判断当前设备系统平台。

如单独设置iOS的Padding,解决页面与状态栏重叠问题:

 

Device.OnPlatform

Device提供了两个OnPlatform方法。一个是泛型方法,根据不同不同平台,返回对应设置的值,内部通过判断Device.OS属性实现。

XAML使用示例:

<OnPlatform x:TypeArguments="Color"iOS="Green"Android="#738182"WinPhone="Accent" />

还提供了一个接收Action类型参数的OnPlatform方法,会根据不同平台执行不同的动作。

OnPlatform does not currently support differentiating the Windows 8.1, Windows Phone 8.1, and UWP/Windows 10 platforms.

Device.Styles

提供了定义好的适用于Label样式。包括:

BodyStyle

CaptionStyle

ListItemDetailTextStyle

ListItemTextStyle

SubtitleStyle

TitleStyle

不同平台效果图:

XAML使用示例:

<Label Text="TitleStyle" VerticalOptions="Center" HorizontalOptions="Center"
Style="{DynamicResource TitleStyle}" />

C#使用示例:

new Label
{Text = "TitleStyle",Style = Device.Styles.TitleStyle
};

Device.GetNamedSize

接收一个NamedSize类型参数和一个Type类型参数,根据传入的NamedSize返回当前平台Type类型对应最适合的值。

var label = new Label();
label.FontSize = Device.GetNamedSize(NamedSize.Small, typeof(Label));

Device.OpenUri

根据传入的Uri调用系统提供的内置功能。

打开网页:

Device.OpenUri(new Uri("https://www.baidu.com/"));

拨打电话:

Device.OpenUri(new Uri("tel:10086"));

打开地图定位:

if (Device.OS == TargetPlatform.iOS) {//https://developer.apple.com/library/ios/featuredarticles/iPhoneURLScheme_Reference/MapLinks/MapLinks.htmlDevice.OpenUri(new Uri("http://maps.apple.com/?q=394+Pacific+Ave+San+Francisco+CA"));
} else if (Device.OS == TargetPlatform.Android) {// opens the Maps app directlyDevice.OpenUri(new Uri("geo:0,0?q=394+Pacific+Ave+San+Francisco+CA"));
} else if (Device.OS == TargetPlatform.Windows || Device.OS == TargetPlatform.WinPhone) {Device.OpenUri(new Uri("bingmaps:?where=394 Pacific Ave San Francisco CA"));
}

Device.StartTimer

启动一个简单的定时器,每隔TimeSpan时间会执行Func<bool>对应的动作。当Func<bool>返回false时,定时器停止。

创建一个周期为1秒的定时器:

Device.StartTimer(new TimeSpan(0, 0, 1), () =>
{label.Text = DateTime.Now.ToString("F");return true;
});

Device. BeginInvokeOnMainThread

用户界面的相关操作是不允许在后台线程中执行。子线程中执行用户界面更新操作需要将代码放在BeginInvokeOnMainThread中执行,BeginInvokeOnMainThread作用类似于iOS中的InvokeOnMainThread, Android中的RunOnUiThread, Windows Phone中的Dispatcher.BeginInvoke。

Device.BeginInvokeOnMainThread(() =>
{
});

 

这篇关于Xamarin.Forms Device类介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/931331

相关文章

Springboot项目构建时各种依赖详细介绍与依赖关系说明详解

《Springboot项目构建时各种依赖详细介绍与依赖关系说明详解》SpringBoot通过spring-boot-dependencies统一依赖版本管理,spring-boot-starter-w... 目录一、spring-boot-dependencies1.简介2. 内容概览3.核心内容结构4.

setsid 命令工作原理和使用案例介绍

《setsid命令工作原理和使用案例介绍》setsid命令在Linux中创建独立会话,使进程脱离终端运行,适用于守护进程和后台任务,通过重定向输出和确保权限,可有效管理长时间运行的进程,本文给大家介... 目录setsid 命令介绍和使用案例基本介绍基本语法主要特点命令参数使用案例1. 在后台运行命令2.

MySQL常用字符串函数示例和场景介绍

《MySQL常用字符串函数示例和场景介绍》MySQL提供了丰富的字符串函数帮助我们高效地对字符串进行处理、转换和分析,本文我将全面且深入地介绍MySQL常用的字符串函数,并结合具体示例和场景,帮你熟练... 目录一、字符串函数概述1.1 字符串函数的作用1.2 字符串函数分类二、字符串长度与统计函数2.1

zookeeper端口说明及介绍

《zookeeper端口说明及介绍》:本文主要介绍zookeeper端口说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、zookeeper有三个端口(可以修改)aVNMqvZ二、3个端口的作用三、部署时注意总China编程结一、zookeeper有三个端口(可以

Python中win32包的安装及常见用途介绍

《Python中win32包的安装及常见用途介绍》在Windows环境下,PythonWin32模块通常随Python安装包一起安装,:本文主要介绍Python中win32包的安装及常见用途的相关... 目录前言主要组件安装方法常见用途1. 操作Windows注册表2. 操作Windows服务3. 窗口操作

c++中的set容器介绍及操作大全

《c++中的set容器介绍及操作大全》:本文主要介绍c++中的set容器介绍及操作大全,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录​​一、核心特性​​️ ​​二、基本操作​​​​1. 初始化与赋值​​​​2. 增删查操作​​​​3. 遍历方

HTML img标签和超链接标签详细介绍

《HTMLimg标签和超链接标签详细介绍》:本文主要介绍了HTML中img标签的使用,包括src属性(指定图片路径)、相对/绝对路径区别、alt替代文本、title提示、宽高控制及边框设置等,详细内容请阅读本文,希望能对你有所帮助... 目录img 标签src 属性alt 属性title 属性width/h

MybatisPlus service接口功能介绍

《MybatisPlusservice接口功能介绍》:本文主要介绍MybatisPlusservice接口功能介绍,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友... 目录Service接口基本用法进阶用法总结:Lambda方法Service接口基本用法MyBATisP

MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)

《MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)》掌握多表联查(INNERJOIN,LEFTJOIN,RIGHTJOIN,FULLJOIN)和子查询(标量、列、行、表子查询、相关/非相关、... 目录第一部分:多表联查 (JOIN Operations)1. 连接的类型 (JOIN Types)

java中BigDecimal里面的subtract函数介绍及实现方法

《java中BigDecimal里面的subtract函数介绍及实现方法》在Java中实现减法操作需要根据数据类型选择不同方法,主要分为数值型减法和字符串减法两种场景,本文给大家介绍java中BigD... 目录Java中BigDecimal里面的subtract函数的意思?一、数值型减法(高精度计算)1.