Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 当.NET 4.7.x/WPF升级到.NET 4.7.x时,主窗口不显示。升级到.NET 4.7.x可能会导致无限循环_C#_.net_Wpf - Fatal编程技术网

C# 当.NET 4.7.x/WPF升级到.NET 4.7.x时,主窗口不显示。升级到.NET 4.7.x可能会导致无限循环

C# 当.NET 4.7.x/WPF升级到.NET 4.7.x时,主窗口不显示。升级到.NET 4.7.x可能会导致无限循环,c#,.net,wpf,C#,.net,Wpf,为了帮助那些使用WPF桌面应用程序并遇到类似问题的人解决这个问题,这里提供了一个摘要以及在.NET 4.7.x framework升级后应用程序窗口未出现时的解决方法 问题 在从4.6.2对.NET framework进行基本升级之后。对于4.7.x,应用程序主窗口从未显示,而是挂起在无限循环中。mainwindow.show()函数从未返回到应用程序。该问题与Microsoft.net 4.7.x相关,但不容易调试和发现 根本原因 .NET4.7包含了一个新算法,用于在网格中为宽度中声明为“*

为了帮助那些使用WPF桌面应用程序并遇到类似问题的人解决这个问题,这里提供了一个摘要以及在.NET 4.7.x framework升级后应用程序窗口未出现时的解决方法

问题

在从4.6.2对.NET framework进行基本升级之后。对于4.7.x,应用程序主窗口从未显示,而是挂起在无限循环中。
mainwindow.show()
函数从未返回到应用程序。该问题与Microsoft.net 4.7.x相关,但不容易调试和发现

根本原因

.NET4.7包含了一个新算法,用于在网格中为宽度中声明为“*”的列分配空间。当为4.7.x编译应用程序时,网格大小可能会导致应用程序陷入无限循环,从而锁定和冻结应用程序


最初由@SamBent在解决方案/解决方案中发布

将app.config中的
StarDefinitionsCanExceedAvailableSpace
开关设置为true,以强制使用旧算法:

<configuration>
        <runtime>
            <AppContextSwitchOverrides value="Switch.System.Windows.Controls.Grid.StarDefinitionsCanExceedAvailableSpace=true" />
        </runtime>
</configuration>

上面报告的问题已通过我的WPF桌面应用程序中的此解决方法修复。希望这可以帮助其他人,因为调试过程可能相当困难。此问题是一个.net 4.7.x错误,Microsoft无法解决