2017-07-10 25 views
1

我有两个UWP应用程序,并在用Continuum测试它们之后,我注意到了屏幕底部的操作系统的应用程序栏(带有开始按钮的栏)(它可以在当然,屏幕的四个边缘中的每一个都覆盖了我的应用程序的一部分。如何正确调整应用程序的大小以适应UWP上的可见边界? (VisibleBoundsMode似乎没有工作)

现在,我在调用Window.Current.Activate()之前已经使用了ApplicationView.GetForCurrentView().SetDesiredBoundsMode(ApplicationViewBoundsMode.UseVisible),但这似乎并未解决问题。

1)为什么设置DesiredBoundsMode属性在这里似乎不起作用?是否应该不会自动将窗口内容 的内容重新设置为可见边界(即排除诸如 导航栏或应用栏之类的系统重叠)?


我使用的,现在在Windows 10的移动设备的解决方法是订阅VisibleBoundsChanged事件,然后手动调整我的Window.Current.Content项目的利润率,以确保它不会显示后面的东西覆盖屏幕区域。

基本上,我使用Window.Current.Bounds属性和ApplicationView.VisibleBounds属性来计算应用程序窗口不同边缘上的遮挡区域,并从那里增加边距。

2)有没有一个适当/更好的方法来做到这一点? 我的意思是,我很确定还有另一种方法应该用来避免这个问题(考虑到像Continuum,导航栏等不同情况的大量吨...我认为不应该手动处理逐个)。

谢谢你的帮忙!

回答

0

使用对VisibleBoundsChanged事件的订阅。这是我找到的最佳解决方案。

 var curr = ApplicationView.GetForCurrentView(); 
     if (curr.IsFullScreenMode == true) 
     { 
      ApplicationView.PreferredLaunchWindowingMode = ApplicationViewWindowingMode.FullScreen; 
      curr.FullScreenSystemOverlayMode = FullScreenSystemOverlayMode.Minimal; 
     } 
     else 
     { 
      ApplicationView.PreferredLaunchWindowingMode = ApplicationViewWindowingMode.Auto; 
      curr.FullScreenSystemOverlayMode = FullScreenSystemOverlayMode.Standard; 
     } 
相关问题