Xamarin.Forms 新版本中Device.OS过时和OnPlatform使用的改变

太久没有写Xamarin的代码,更新到vs for mac 正式版后发现一下代码已经出现警告。
新版本中一下代码已经提示警告:

Xamarin.Forms 新版本中Device.OS过时和OnPlatform使用的改变_第1张图片

大概就是这么个情况

Device.OS已经过时,使用RuntimePlatform代替。

RuntimePlatform定义为string类型,TargetPlatform并不能在提供枚举值用来判断当前运行时平台类型。

Device点智能提示已经给出了解决办法:

Xamarin.Forms 新版本中Device.OS过时和OnPlatform使用的改变_第2张图片

修改代码如下:

Xamarin.Forms 新版本中Device.OS过时和OnPlatform使用的改变_第3张图片

同样过时的还有OnPlatform的两个重载方法:

使用switch语句代替,查看OnPlatform实现代码可以发现,就是OnPlatform内封装的代码由我们自己来实现:


Xaml中经常会用到OnPlatform类代替Device类在布局代码中对不同平台设置不同的值,典型的就是iOS中页面Padding属性的设置:

查看OnPlatform类定义,对应的Android、iOS等属性已经过时:

Xamarin.Forms 新版本中Device.OS过时和OnPlatform使用的改变_第4张图片

代替代码

你可能感兴趣的:(Xamarin.Forms 新版本中Device.OS过时和OnPlatform使用的改变)