2016-01-09 122 views
1

我目前正在開發一個應用程序在Windows Phone 8.1而我遇到了軟系統導航欄的問題。WP8.1導航欄覆蓋

我可以隱藏欄,但我似乎無法找到它是否可見。 隱藏它,我可以使用:

ApplicationView.GetForCurrentView().SuppressSystemOverlays = true; 

的問題是,有些手機擁有它,有些則沒有。我需要找到它是否處於活動狀態,以便我可以正確綁定VirtualizingStackPanel的高度。

謝謝

回答

0

據我所知,他們沒有與無硬件導航欄的工作完美的方式,我覺得在這裏你最好的選擇是訂閱ApplicationView.VisibleBoundsChanged事件,

所以基本上你需要做的是:

  1. 設置ApplicationViewBoundsModeUseCoreWindow,這樣的內容將在由核手機的窗口占據的區域進行佈局:

    ApplicationView.GetForCurrentView().SetDesiredBoundsMode(ApplicationViewBoundsMode.UseCoreWindow); 
    
  2. 訂閱VisibleBoundsChanged事件和處理您的處理程序中用戶界面的變化:

    ApplicationView.GetForCurrentView().VisibleBoundsChanged += handler; 
    

    // ...

    private void handler(ApplicationView sender, object args) 
    { 
        //handle ui changes 
    } 
    
+1

太謝謝你了!我扭轉了這個問題。當我第一次啓動應用程序時,我實際上將該欄設置爲false。然後根據你所建議的事件,如果佈局保持相同的可見尺寸,那是因爲沒有軟吧,否則,我只是重新調整佈局。謝謝! – Mike

+0

可以有更完整的這個貼子的例子嗎?它似乎不適合我。看起來VisibleBoundsChanged事件在每次啓動應用程序時觸發,而不管手機或設置如何。 – theMaxx