在C# .net Maui桌面应用程序中,当使用Application.Current.OpenWindow()打开多个窗口时,使用标题栏中的关闭按钮关闭窗口(不是主应用程序窗口)会在Windows 11中引发未处理的异常。
同样的代码在Windows 10中工作得很好。
在Windows 11中,当使用Application.Current.CloseWindow()从代码中关闭窗口时,情况也很好。
下面是一个GitHub存储库,用于一个简单的程序来演示这个问题:https://github.com/Raminiya/MauiAppWindowTest
我发现了几个关于同一问题的报告,但没有解决方法。他们大多将问题与第二个窗口中的webview相关,并通过先关闭webview来解决。我对第二个窗口页面上的特别说明有意见。在https://github.com/dotnet/maui/issues/7317中也建议了一种变通方法,但没有奏效。
我还尝试使用以下代码覆盖关闭按钮函数:https://learn.microsoft.com/en-us/answers/questions/1384175/how-to-override-the-close-button-in-the-title-bar并简单地忽略事件,这样我就可以从代码中关闭窗口,但是,在按下标题栏关闭按钮后(我忽略事件),然后当我使用Application.Current.CloseWindow()关闭窗口时,我会得到相同的异常。(仅在windows 11上)
1条答案
按热度按时间9njqaruj1#
虽然这个问题不会出现在所有的windows 11机器上,我不知道为什么,这里是解决方案:
通过将以下行添加到MauiProgram.cs中,可以调用函数
setBorderAndTitleBar(false,false);
问题已解决。(只有#If Windows和#endif之间的行。