使用外接显示器时 UWP 应用显示问题

UWP App Display Issues When Using External Monitor

UWP 应用如何记住其 window 大小和位置?我想弄清楚如何让它显示在屏幕中央并以设定的大小显示,但应用程序始终显示为最大化或最小化(在任务栏中)。

更重要的是,如果我的笔记本电脑连接到外接显示器,然后断开与该显示器的连接,那么 运行ning 应用程序最终会以应用程序 Window(主页)仅显示为最小化(在任务栏)。

点击它不会恢复它。我想通了,它以某种方式认为我的笔记本电脑仍然连接到显示器并且可能认为它在那里显示。

我什至试过添加线条来设置尺寸

public MainPage()
{
    this.InitializeComponent();
    ApplicationView.PreferredLaunchViewSize = new Windows.Foundation.Size(300, 400); 

    ApplicationView.PreferredLaunchWindowingMode = 
       ApplicationViewWindowingMode.PreferredLaunchViewSize; 
    ...
}

如果我将鼠标悬停在任务栏中的 UWP 应用程序图标上,它会显示在小弹出窗口中 window,我可以右键单击其工具栏并顺便选择“恢复”、“最大化”、“移动”、“大小”、“最小化”。不过,只有最大化会在我的屏幕上显示它。这导致应用程序要么在我的屏幕上最大化,要么在任务栏中最小化,但我无法移动、调整大小或恢复它。

我发现修复它的唯一方法是断开外接显示器,运行 应用程序。这样,它就会显示在我的笔记本电脑上,我可以将其调整为我喜欢的大小。然后,如果我将它最小化并恢复它,那就行得通了。现在,如果我再次连接外接显示器并 运行 它,该应用程序将正常显示在我的笔记本电脑屏幕上。

根据 https://social.msdn.microsoft.com/Forums/en-US/c6445232-9219-4fd0-aba4-c285364d9620/uwp-app-cannot-be-resized-shows-only-as-maximized-or-as-minimized-in-taskbar?forum=wpdevelop 的部分解决方案 ,在 MainPage c-tor 中的 InitializeComponent 调用后添加以下行为我解决了问题。

ApplicationView.PreferredLaunchWindowingMode = ApplicationViewWindowingMode.Auto;