【Win 10应用开发】如何知道UAP在哪个平台上运行
面向22世纪的现代化应用程序可以同时在多种设备上运行,于是有朋友会有一个疑问:有时候,我们还真的需要判断一下,UAP应用程序在哪个平台上运行。尽管大多情况下我们不必要这样做,但某些特殊情况还得考虑。比如一串数据列表,我希望如果在桌面上运行时就以横向列表展现;但要是运行在手机上就以纵向列表展现。
也就是说,其实我们只需分析两种情况即可:
一、桌面。(台式机、笔记本、平板、游戏机、发广告专用机、导航器……)
二、移动环境。其实就是手机。
那么,有啥办法可判断呢?勿急,老周先告诉你,方法比较简单。咱们先看一段代码:
var context = ResourceContext.GetForCurrentView();string s = string.Empty;foreach (var item in context.QualifierValues){s += item.Key + " : " + item.Value;s += "\n";}tb.Text = s;
ResourceContext类在Windows.ApplicationModel.Resources.Core命名空间下,就是用于访问与当前应用程序的限定资源的API,也可以把这个“资源”理解为应用程序的一些配置信息,如什么语言的,日语的还中文的;什么主题基调的,浅色还是深色;什么比例的,缩放100%还是180%……
调用ResourceContext.GetForCurrentView()方法可以直接得到ResourceContext实例,再通过QualifierValues属性得到一个字典数据:Key为字符串,Value也是字符串。QualifierValues属性表示该资源的限定符集合。
悟性高的朋友可能已经猜到其中的玄机了,不过猜不到也不用急,现在我们用上面的代码做两件事,做完这两件事你就会明白了。
第一件事,在本地计算机和平板模拟器上运行应用,然后得到如下图的结果:
第二件事,在手机模拟器上运行一下,得到结果如下:
不知道你看懂了没,如果还没有看出其中的奥妙,那老周就揭晓了:在资源限定符字典中,有一条记录的Key为DeviceFamily,如果在桌面上运行的话,它的Value就是Desktop;如果在手机上运行,Value就是Mobile。
怎么样,现在懂了吧?
那么,你猜猜,如果判断UAP正在运行的设备,该想到方法了吧。
老周给出个例子,界面上有个StackPanel容器,里面放了几块正方形的烧饼。如果在桌面上运行,烧饼就横着放;如果在手机上运行,烧饼就竖着放,以方便用户流口水。
XAML代码如下:
<StackPanel Margin="15" Name="panel"><Rectangle Margin="14" Width="125" Height="125" Fill="Yellow"/><Rectangle Margin="14" Width="125" Height="125" Fill="Red"/><Rectangle Margin="14" Width="125" Height="125" Fill="Pink"/><Rectangle Margin="14" Width="125" Height="125" Fill="Orange"/></StackPanel>
处理代码如下:
// 得到资源上下文对象ResourceContext resContext = ResourceContext.GetForCurrentView();// 访问键名为DeviceFamily的值string value = resContext.QualifierValues["DeviceFamily"];// 分析if (value == "Desktop"){panel.Orientation = Orientation.Horizontal;}else{panel.Orientation = Orientation.Vertical;}
OK,首先,在本地计算机上运行一下,结果如下:
接着,在手机模拟器上运行,结果如下:
看来这个DeviceFamily确实很Family。
补充:后来发现,访问Windows.System.Profile.AnalyticsVersionInfo.DeviceFamily属性也可以获得平台名称。
本文例子下载地址:http://files.cnblogs.com/files/tcjiaan/deviceFamilySmp.zip
【Win 10应用开发】如何知道UAP在哪个平台上运行相关推荐
- 【Win 10 应用开发】RTM版的UAP项目解剖
原文:[Win 10 应用开发]RTM版的UAP项目解剖 Windows 10 发布后,其实SDK也偷偷地在VS的自定义安装列表中出现了,今天开发人员中心也更新了下载.正式版的SDK在API结构上和以 ...
- 【Win 10 应用开发】Toast通知激活应用——前台后台
原文:[Win 10 应用开发]Toast通知激活应用--前台&后台 老周最近热衷于讲故事,接下来还是讲故事时间. 有人问我:你上大学的时候,有加入过学生会吗?读大学有没有必要加入学生会? 哎 ...
- 【Win 10应用开发】SplitView控件
[Win 10应用开发]SplitView控件 原文:[Win 10应用开发]SplitView控件 SplitView控件用于呈现分隔视图,简单地说,就是把一个视图分割为两部分,Content属性所 ...
- 【Win 10应用开发】Adaptive磁贴模板的XML文档结构
原文:[Win 10应用开发]Adaptive磁贴模板的XML文档结构 在若干天之前,老周给大家讲了Adaptive Toast通知的XML模板,所以相应地,今天老周给大家介绍一下Adaptive磁贴 ...
- Cocos2dx游戏开发系列笔记9:android手机上运行《战神传说》,并解决横竖屏即分辨率自适应问题
转载:http://blog.csdn.net/iamlazybone/article/details/17191539 懒骨头(http://blog.csdn.net/iamlazybone Q ...
- Cocos2dx游戏开发系列笔记9:android手机上运行《战神传说》,并解决横竖屏即分辨率自适应...
2019独角兽企业重金招聘Python工程师标准>>> 上节说到cygwin下成功编译出so文件,下面我们要把游戏运行在android上. 开始干活! 其实步骤可以参考 Cocos2 ...
- 【Win 10 应用开发】导入.pfx证书
这个功能其实并不常用,一般开发较少涉及到证书,不过,简单了解一下还是有必要的. 先来说说制作测试证书的方法,这里老周讲两种方法,可以生成用于测试的.pfx文件. 产生证书,大家都知道有个makecer ...
- 【Win 10 应用开发】在代码中加载文本资源
记得前一次,老周给大伙,不,小伙伴们介绍了如何填写 .resw 文件,并且在 XAML 中使用 x:Uid 标记来加载.也顺便给大伙儿分析了运行时是如何解析 .resw 文件的. 本来说好了,后续老周 ...
- 地平线 旭日X3 SDB开发板 (四) yolov3自训练模型板上运行流程记录
文章目录 一.准备工作 二.检查模型 三.板上运行 四.参考 一.准备工作 onnx 1.5 Opset version 10 自己训练的darknet模型 yolov3 darknet 转 onnx ...
最新文章
- cmos门电路输入端悬空相当于_TTL和CMOS,CMOS电平和TTL电平区别
- JVM 调优系列之监控工具
- 你不知道的事:AWR 基线和 AWR Compare Period Report 功能介绍
- oracle:时间数据的处理
- 人脸检测SSD 记录
- 关联分析在企业风控策略中的应用
- Error:npm WARN enoent ENOENT: no such file or directory, open ‘C:\Users\XX\package.json‘son‘
- 矩池云上安装及使用Milvus教程
- 高通骁龙cpu排行_最新手机性能排行榜出炉:高通骁龙865霸榜,前十不见华为!...
- pytorch中的tensor以numpy形式进行输出保存
- 2022电工杯A题利用启发式算法寻优
- WinRAR 去除广告弹窗,简单4步亲测有效!
- JS函数传参长度限制
- 【原】win 7 屏幕旋转问题的解决
- 使用html框架制作一个网站布局
- beyond-光辉岁月-国语谐音歌词
- Mac环境下Tron 部署教程
- android动画 行星,AndroidAnimation
- Vue3配置postcss-pxtorem报错[plugin:vite:css] Failed to load PostCss config
- 《潜规则》吴思-摘抄
热门文章
- LVGL - 在STM32上的移植
- ERROR 1062 (23000): ALTER TABLE causes auto_increment resequencing, resulting in duplicate entry '1'
- json格式简介和相关操作
- 【VRP】基于matlab遗传算法求解多中心车辆路径规划问题【含Matlab源码 1965期】
- udt4 VS udt gateway
- Python机器学习05——判别分析
- 【sfu】network线程和主线程
- 使用QuickBI制作企业报表门户
- 工作流(Workflow)简介
- 计算机弹歌光年之外谱子,邓紫棋《光年之外》完整钢琴谱