
Visual Studio 2019 では、デザイナー モードでフォームまたはユーザー コントロールを開くと、「ファイルを開く」という状態のまま停止します。
答え1
ぜひ次のリンクを確認してください: https://weblog.west-wind.com/posts/2019/Feb/14/WPF-Hanging-in-Infinite-Rendering-Loop?fbclid=IwAR23ZnUrz7buVpFLXOX2qQin1WcifQ6h280EO25URO74NTGDkTedx1TDRb4
以下はそのページからの引用です:
StarDefinitionsCanExceedAvailableSpace オーバーライドの使用 この設定は、新しい GridRendering の動作をオーバーライドし、基本的にプロジェクトで .NET 4.7.x ターゲットを使用して実行できるようにしますが、以前のバージョンで使用されていた古い動作は保持されます。
アプリケーションの app.config で設定できる構成設定があります。
<configuration>
<runtime>
<AppContextSwitchOverrides value="Switch.System.Windows.Controls.Grid.StarDefinitionsCanExceedAvailableSpace=true"
/>
</runtime>
</configuration>
このスイッチを使用すると、4.7.1を実行しても、どのスケーリングモードでもロックアップが発生しないことを確認できます。
実行中のバージョンが 4.6.2 に戻ったので、別のブランチでもう一度 4.7.1 に移行して試してみたところ、確かに切り替えによってアプリケーションが 4.7.1 を対象に実行されるようになりました。つまり、ハッキーな回避策があるということです。
ただし、これは回避策です。Microsoft によると、この「修正」により、グリッド レンダリングの割り当てが改善され、サイズ設定がより正確になり、パフォーマンスも向上し、メモリ使用量も削減されます。紙の上ではこれは大きな改善ですが、副作用もあります。
答え2
ファイルを新しい別のソリューションとプロジェクトに移動することで修正されました
1-新しいソリューションとプロジェクトを作成します (新しいプロジェクトのみを作成することもできます)
2-最初に cs ファイルを移動し、次にデザイナー、最後に resx を移動します
3-ソリューションを再構築します
4-プロジェクト ファイルを完成させます
5-最後にデザイナーとファイルの場所を確認します
問題が発生した場合はやり直して、フォームとツールの cs を手動で作成し、その内容を古いものから新しいものに同じ名前でコピーして移動できます
6-検索>すべてを置換 (現在のソリューション) を使用して名前空間を変更します
X-ソリューションを構築してプログラミングを楽しんでください