UWP 判断windows mobile是使用的实体键还是虚拟按键

最近在写启动屏幕,发现虚拟按钮会挡住,启动屏幕的最下面的元素,大概有50 px。可是有什么办法知道手机是用的实体键还是虚拟按键吗?

如下图。可以看到红色的部分显示了一点点。代码里设置的是60px。

在网上查找了很久。都没发现有任何查看的api。瞬间在心里开始骂ms了。。

各种论坛各种询问。

最后有一个机油回答到

试了一试。。嗯。。虚拟按键全屏的时候会消失掉。。可是。。这不我想要的啊。。

突然间灵光一闪。。想起有这样一种东西。ApplicationView.GetForCurrentView().VisibleBounds

于是debug一看。。嘿嘿嘿。终于找到想要的东西。。

 double statusbarHeight = 0;
 if(ApiInformation.IsTypePresent("Windows.UI.ViewManagement.StatusBar"))
        statusbarHeight= StatusBar.GetForCurrentView().OccludedRect.Height;

//Gets the visible region of the window (app view). The visible region is the region
//not occluded by chrome such as the status bar and app bar.
var visibleBounds = ApplicationView.GetForCurrentView().VisibleBounds;

var virtualButtonHeight = extendedSplashImage.Height - visibleBounds.Height - statusbarHeight;

最后这个虚拟按键的高度 = SplashScreen的高度 - VisibleBounds.Height- statusbarHeight。

1520实体按键和950XL虚拟键测试通过。。

最后再吐槽下ms。。什么时候出surface phone啊。信仰都用完了。。

时间: 2024-11-02 07:26:29

UWP 判断windows mobile是使用的实体键还是虚拟按键的相关文章

在Windows 2008上安装Windows Mobile设备中心

我在windows2008系统上安装Microsoft Windows Mobile Device Center v6.1时,老是弹出对话框提示缺少一个Windows Mobile设备中心所需要的Windows组件.请帮忙解决这个问题. 因为你的Windows 2008系统没有开启桌面体验功能,所以会发生这个问题.开启桌面体验功能的方法如下:一.单击“开始”菜单→“运行”命令,输入“services.msc”并回车打开“服务”对话框,找到“Themes”服务项,双击打开它,将“启动类型”改为“自

缺少一个Windows Mobile设备中心所需要的Windows组件 Activesync4.5安装问题

我在windows server 2008系统上安装 ActiveSync win7下载v6.1 中文安装版(64位)时, 会弹出对话框提示缺少一个Windows Mobile设备中心所需要的Windows组件的问题. 因为你的Windows server  2008系统没有开启桌面体验功能,所以会发生这个问题. 开启桌面体验功能的方法如下: 一.单击"开始"菜单→"运行"命令,输入"services.msc"并回车打开"服务"

Windows Mobile

此页面为WP8"Windows Mobile"应用的发布页面. "Windows Mobile"是一款收集Windows Mobile的玩机技巧的WP8程序,更好的帮助Windows Mobile用户理解并使用它. 此页面主要记录开发进度.APP发布等情况. -------------------相关进度--------------------- 目前进度:UI相关资源前期准备中,各相关开放平台的AppID申请中... Windows Mobile,布布扣,bubu

Windows Mobile 6.0 SDK和中文模拟器下载

[转] Windows Mobile 6.0 SDK和中文模拟器下载 Windows Mobile 6.5 模拟器 2010年12月06日 星期一 07:48 转载自 zhangyanle86 终于编辑 zhangyanle86 Windows Mobile 6.0 SDK和中文模拟器下载 SDK 6.0下载页面:http://www.microsoft.com/downloads/details.aspx?familyid=06111A3A-A651-4745-88EF-3D48091A390

VS2008下 使用C#做windows mobile 6.0开发 使用sqlite数据库

我使用的VS2008英文版的,不喜欢用中文版的. 现在用C#做相关开发,用到sqlite数据库. 网上找了很多,真正的教程特别少,都是贴的一堆垃圾代码.要么是无法配置通过的,错误一大堆,哎. 最后还是自己想办法解决了. 1.下载sqlite的运行库,首先网上的教程是让我们去http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki下载,但是页面上那么多,我们该选择哪个呢?   网页翻到最下面的  Legacy Ver

ILockBytes Windows Mobile 6.5

ILockBytes Windows Mobile 6.5 https://msdn.microsoft.com/zh-cn/library/aa911496(en-us,MSDN.10).aspx 这个接口是一个字节数组对象上实现由一些物理存储,如磁盘文件,全局内存或数据库. 它使用一个组件对象模型(COM)复合文件存储对象给其根存储访问物理设备,而隔离根存储访问物理存储的细节. 什么时候实现 大多数应用程序不会实现 ILockBytes 因为COM接口提供了实现最常见的一种情况: 基于文件的

解决VS2008 开发Windows Mobile 项目生成速度慢的问题(转)

最近用VS2008开发Windows Mobile程序,使用C#..NET Compact Framework,发现项目生成速度比较慢.用VS2008打开项目后,开始一段时间生成速度还能忍受,时间一长,编译速度巨慢,最慢达到5分钟之久,实在无法忍受. 决定找出VS2008生成时,做了什么花费时间的工作.从工具à选项进入“选项”对话框 选择“MSBuild项目生成输出详细信息”为“诊断”这样编译时,会输出具体执行了那些任务,花费了多少时间. 结果发现最花费时间的是 Platform Verific

VS连接Windows Mobile模拟器

原文:http://www.cnblogs.com/xjimmyshcn/archive/2011/07/19/2111087.html 一.WinCE 模拟器通过ActiveSync 6.1(即Windows Mobile设备中心)连接PC 1.启动WinCE模拟器 命令行:  start .\DeviceEmulator.exe WINCE镜像\Wince5.bin /memsize 256 /video 480x272x16 /sharedfolder .\模拟卡 2.设置ActiveSy

Windows Mobile设备操作演示准备工作小记

公司最近为PDA开发了一款作业程序,我在工作中常常需要将操作过程通过电脑上设影出来为客户讲解使用方法.本文记录了相关的准备工作. 1. 微软嵌入式操作系统体系 RTOS: Embedded Real Time Operating Systems Windows Embedded Compact Windows Mobile Windows Phone 2.PDA型号 我司典型的PDA型号为Intermac CK71.其使用了Microsoft Windows Embedded Handheld