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

Posted lonelyxmas

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UWP 判断windows mobile是使用的实体键还是虚拟按键相关的知识,希望对你有一定的参考价值。

原文: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啊。信仰都用完了。。

 

以上是关于UWP 判断windows mobile是使用的实体键还是虚拟按键的主要内容,如果未能解决你的问题,请参考以下文章

Windows 10 Mobile是否支持UWP应用程序的Fluent设计系统?

UWP 区分设备类型

适用于 UWP 的 Windows Mobile 和其他扩展 - 我应该使用哪个版本

基于Prism.Windows的UWP开发备忘

如何在真机(手机)上开发windows 10 uwp?

UWP