1. 程式人生 > >UWP 判斷windows mobile是使用的實體鍵還是虛擬按鍵

UWP 判斷windows mobile是使用的實體鍵還是虛擬按鍵

pan win 一個 png 一點 res ati html dsp

原文: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是使用的實體鍵還是虛擬按鍵