Entwickler-Ecke
WPF / Silverlight - Dockpanel soll ganzes Fenster einnehmen
OlafSt - So 14.09.14 11:18
So... Mein erstes WPF-Problem ;)
Ich belasse das in diesem Thread, da ich die leise Hoffnung hege, das mir die WPF-Profis hier später eine genauso auführliche und lehrreiche "Abnahme" machen ;)Moderiert von
Christian S.: Sorry, da muss ich den Spielverderber machen. Abgeteilt von hier [http://www.entwickler-ecke.de/topic_Stilpruefung_113418.html].
Mein Problem: Ich möchte die klassische GUI konstruieren. Menubar, Statusbar, irgendwas dazwischen. Nach dem Studium des Buches nutzt man dafür ein DockPanel. Allerdings gibt es keine Einstellung, die das Dockpanel dazu bewegt, sich automatisch auf volle Größe aufzublasen, so das es die gesamte Fensteroberfläche einimmt.
In Delphi gibts dafür "DockPanel.Align = alClient". Existiert sowas auch in WPF ? Das Buch gibt darauf keine Antwort, seine Fenster sind eh viel zu klein, so das die Dock-/Stack-/Gridpanels von allein "alClient" sind.
XAML-Code:
XML-Daten
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| <Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="280" Width="515" Closing="Window_Closing"> <DockPanel Height="100" Name="dockPanel1" Width="200"> <Menu DockPanel.Dock="Top" Height="23" Name="menu1" Width="200"> <MenuItem Header="Datei"> <MenuItem Click="button1_Click" Header="Verbinden" Name="menuItem_Connect" /> <MenuItem Click="Beenden_Click" Header="Beenden" Name="menuItem_Exit" /> </MenuItem> </Menu> <StatusBar DockPanel.Dock="Bottom" Height="23" Name="statusBar1" Width="120"> <StatusBarItem x:Name="ConnectStatus" Background="Red" Content="Nicht verbunden..." /> </StatusBar> </DockPanel> </Window> |
Palladin007 - So 14.09.14 12:02
Das DockPanel "bläst" sich immer auf maximale Größe auf, solange du nichts Anderes vorgibst.
Du hast sowohl Height als auch Width gesetzt, also bleibt es auf dieser Größe.
So verhält es sich auch mit anderen Controls, wenn du keine explizite Größe angibst, nimmt es sich den Platz, den es bekommt.
Auf diese Weise kannst du Fenster erstellen, die sich ihrer Größe anpassen können.
Also sollte man nie irgendwelche expliziten Größendaten angeben, wenn nicht unbedingt nötig. Es gibt aber auch für Höhe und Breite den Wert "Auto", das ist der Standard.
Die zweite Hälfte dieses Beitrages befindet sich hier [http://www.entwickler-ecke.de/viewtopic.php?p=689415#689415]. Ich habe ihn auf Wunsch von
Christian S. zu Gunsten der Ordnung abgetrennt.
holliesoft - Do 26.03.15 15:53
Der Thread ist zwar alt, aber der Vollständigkeit halber...
1. Wie schon erwähnt: keine absolute Größe definieren
2. DockPanel hat das Property "LastChildFill". Dieses muss auf True gesetzt werden. Dann füllt das letzte dem DockPanel hinzugefügte Control das Dockpanel aus.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!