C# 如何正确调整应用程序的大小,使其在UWP上可见?(VisibleBundsMode似乎不起作用)
我有两个UWP应用程序,在使用Continuum进行测试后,我注意到屏幕底部的操作系统应用程序栏(带有开始按钮的栏)(当然,它可以位于屏幕的4个边缘中的每一个)覆盖了我应用程序的一部分 现在,在调用C# 如何正确调整应用程序的大小,使其在UWP上可见?(VisibleBundsMode似乎不起作用),c#,xaml,uwp,windows-runtime,windows-10,C#,Xaml,Uwp,Windows Runtime,Windows 10,我有两个UWP应用程序,在使用Continuum进行测试后,我注意到屏幕底部的操作系统应用程序栏(带有开始按钮的栏)(当然,它可以位于屏幕的4个边缘中的每一个)覆盖了我应用程序的一部分 现在,在调用Window.Current.Activate()之前,我已经在使用ApplicationView.GetForCurrentView().SetDesiredBoundsMode(ApplicationViewBoundsMode.UseVisible),但这似乎并不能解决问题 1)为什么设置Des
Window.Current.Activate()
之前,我已经在使用ApplicationView.GetForCurrentView().SetDesiredBoundsMode(ApplicationViewBoundsMode.UseVisible)
,但这似乎并不能解决问题
1)为什么设置DesiredBoundsMode
属性在这里似乎不起作用?这不应该自动调整窗口大小吗
内容到可见边界(即不包括系统覆盖,如
导航栏或应用程序栏)
我目前在Windows 10移动设备上使用的解决方法是订阅
VisibleBundsChanged
事件,然后手动调整我的Window.Current.Content
项的边距,以确保它不会在屏幕的覆盖区域后显示任何内容
基本上,我使用Window.Current.Bounds
属性和ApplicationView.VisibleBounds
属性来计算应用程序窗口不同边缘上的遮挡区域,并从那里增加边距
2)有没有合适/更好的方法来做到这一点?
我的意思是,我很确定应该使用另一种方法来避免这个问题(考虑到有很多不同的情况,比如连续体、导航栏等,我认为不应该逐个手动处理)
谢谢你的帮助 使用对VisibleBundsChanged事件的订阅。这是我找到的最好的解决方案
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;
}
使用对VisibleBundsChanged事件的订阅。这是我找到的最好的解决方案
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;
}