最近在寫啟動屏幕,發現虛擬按鈕會擋住,啟動屏幕的最下面的元素,大概有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啊。信仰都用完了。。