Geschachteltes TableLayoutPanel wird mit großen leeren Leerzeichen in einer Windows Forms-Anwendung auf Monitoren mit hohem DPI-Wert angezeigt.

In diesem Artikel wird das Problem behoben, bei dem geschachteltes TableLayoutPanel mit großen leeren Leerzeichen in einer Windows Forms-Anwendung auf Monitoren mit hohem DPI-Wert angezeigt wird.

Ursprüngliche Produktversion:   Microsoft .NET Framework
Ursprüngliche KB-Nummer:   3044516

Problembeschreibung

Wenn Sie eine Windows Forms-Anwendung ausführen, die geschachtelte TableLayoutPanel-Steuerelemente enthält und diese Layouts wiederum Steuerelemente mit Nicht-Null-Rändern oder Padding-Eigenschaften auf einem Betriebssystem mit aktivierter hoher Auflösung enthalten, werden die Ränder und Abstände dieser Steuerelemente exponentiell nach oben skaliert, wie oft die TableLayoutPanel-Steuerelemente geschachtelt sind. Dies führt dazu, dass die Anwendung Steuerelemente mit unwahrscheinlich großen Leerstellen anzeigt.

Ursache

Die aktuelle Implementierung von TableLayoutPanel führt einen separaten Skalierungsdurchlauf für jede Schachtelungsebene durch. Wenn die Auflösung der Anzeige auf 100 % festgelegt ist, ist dies kein Problem, aber bei größeren Auflösungen ist die Skalierung kumulativ und führt zu unerwartet großen Zahlen. Das Problem betrifft nur die Ränder- oder Abstandseigenschaften der Steuerelemente in TableLayoutPanel.

Lösung

Um dieses Problem zu beheben, legen Sie Ränder oder Abstand auf Null fest, und verwenden Sie alternative Methoden, um Platz zwischen Steuerelementen zu schaffen oder das Verschachteln von TableLayoutPanel-Steuerelementen zu vermeiden.

Weitere Informationen

Das TableLayoutPanel-Steuerelement vereinfacht die Positionierung und Größenanpassung von Windows-Formularen, indem es sie in beliebigen tabellenähnlichen Layouts anordnen kann. Wenn das TableLayoutPanel-Steuerelement die entsprechenden Größen für jedes Steuerelement im Layout berechnet, skaliert TableLayoutPanel die Ränder und alle umgebenden Abstände des Steuerelements gemäß den aktuellen DPI-Einstellungen, sodass das Gesamterscheinungsbild des Layouts unabhängig von der Auflösung gleich bleibt. Wenn eines dieser Steuerelemente ein weiteres geschachteltes TableLayoutPanel ist, wird die Skalierung auf die Von diesen Steuerelementen angewendet, deren Ränder und Abstände bereits berechnet wurden. Dies führt zu unerwarteten großen Rändern und Abständen.

Weitere Informationen zum Entwerfen des Layouts von Windows Formularen finden Sie unter Designing the layout of Windows Forms by using a TableLayoutPanel.