Wie Verwenden von DockStyle.Fill für Standardsteuerelemente in WPF?
Ich bin sehr neu in WPF. Ich bin es gewohnt, von windows forms ist, dass ich eine Leiste, platzieren Sie Steuerelemente innerhalb es und geben Sie DockStyle.Füllen Sie max Ihre Größe zu den umliegenden panel.
In WPF möchte ich gleich haben. Ich habe ein Register-Steuerelement, und ich will seine Größe zu füllen, so viel von der form wie möglich.
Ich habe ein ribbon-control (RibbonControlsLibrary) und wollen den rest des Formulars ausgefüllt werden, mit der tab-Steuerung bei max Größe.
(Ich will nicht andocken von Steuerelementen wie dem anlegen in Visual Studio, nur die alten docking-Mechanismen)
InformationsquelleAutor der Frage citronas | 2010-07-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den WPF-äquivalent von WinForms' DockStyle.Füllung:
Dies ist die Standardeinstellung für fast steuert, so im Allgemeinen, die Sie nicht haben, überhaupt etwas zu tun zu haben, die ein WPF-Steuerelement füllen Sie den übergeordneten container: tun Sie so, automatisch. Dies gilt für alle Container, die nicht quetschen, Ihre Kinder auf die minimale Größe.
Häufigsten Fehler
Ich erkläre jetzt einige häufige Fehler, die verhindern, dass
HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
aus wie erwartet funktioniert.1. Explizite Höhe oder Breite
Ein häufiger Fehler ist die explizite Angabe einer Breite oder Höhe für ein Steuerelement. Also, wenn Sie diese:
Entfernen Sie einfach die Width-und Height-Attribute:
2. Mit panel drückt Steuerung auf minimale Größe
Ein weiterer häufiger Fehler ist es, die mit panel quetschen Kontrolle, wie eng, wie es gehen wird. Zum Beispiel eine vertikale StackPanel wird immer squeeze Ihr Inhalt vertikal so klein wie Sie gehen:
Wechsel zu einem anderen Panel, und Sie werden gut zu gehen:
Auch, jede Grid-Zeile oder Spalte, deren Höhe von "Auto" wird ähnlich squeeze Ihre Inhalte in diese Richtung.
Einige Beispiele für Container, die nicht quetschen Ihre Kinder sind:
Einige Beispiele für Container, die squeeze Ihre Kinder sind:
3. Explizite Höhe und Breite sich weiter aus,
Es ist erstaunlich, wie viele Male sehe ich Grid oder DockPanel erhält eine explizite Höhe und Breite, so wie hier:
Im Allgemeinen wollen Sie nie geben jedem Fenster eine explizite Höhe oder Breite. Mein Erster Schritt bei der Diagnose Probleme beim layout zu entfernen, jeden explizite Höhe oder Breite, die ich finden kann.
4. Fenster SizeToContent, wenn es sollte nicht sein
Wenn Sie SizeToContent, Ihr Inhalt sein wird, drückte auf die minimale Größe. In vielen Anwendungen ist dies sehr nützlich und ist die richtige Wahl. Aber, wenn Ihr Inhalt hat keine "Natürliche" Größe, dann werden Sie wahrscheinlich wollen, um Sie wegzulassen SizeToContent.
InformationsquelleAutor der Antwort Ray Burns
Können Sie tun, was Sie wollen, nur sagen:
DockPanel
LastChildFill="True"
und dann sicherstellen, dass das, was Sie sein wollen, der Füller ist eigentlich das Letzte Kind!Dem Gitter ist das Tier ein layout, das Sie machen können tun die meisten nichts, aber das DockPanel ist in der Regel die richtige Wahl für Ihre äußersten layout-panel. Hier ist ein psuedocode Beispiel:
InformationsquelleAutor der Antwort Berryl
nur wickeln Sie Ihre Steuerelemente in einem raster mit zwei Zeilen. Das raster wird automatisch alle Raum gegeben und Sie können festlegen der Zeilen, dass der gesamte Raum Links von Ihnen eine Höhe von "*". Die erste Zeile in meinem Beispiel (Height="Auto") nehmen so viel Platz wie benötigt, durch die Multifunktionsleiste. Hoffe, das hilft.
Indem Sie die "Raster.Zeile=.." - Attribut, um die untergeordneten Steuerelemente des Gitters bekommen Sie zugeordnet zu den Zeilen des Gitters. Dann wird das raster der Größe ist es Kindern, wie definiert durch die Zeile-Definitionen.
InformationsquelleAutor der Antwort andyp
Ich war versuchen viele Methode hier aber nicht mein problem lösen. (Füllen andere die Kontrolle in der Kontrolle)
Bis ich das gefunden habe es
Beispiel:
Für die einfache Gestaltung
InformationsquelleAutor der Antwort Trương Quốc Khánh