Autor Beitrag
OlafSt
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 486
Erhaltene Danke: 99

Win7, Win81, Win10
Tokyo, VS2017
BeitragVerfasst: 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 user profile iconChristian S.: Sorry, da muss ich den Spielverderber machen. Abgeteilt von hier.

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:
ausblenden 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>

_________________
Lies, was da steht. Denk dann drüber nach. Dann erst fragen.
Palladin007
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1282
Erhaltene Danke: 182

Windows 11 x64 Pro
C# (Visual Studio Preview)
BeitragVerfasst: 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. Ich habe ihn auf Wunsch von user profile iconChristian S. zu Gunsten der Ordnung abgetrennt.
holliesoft
Hält's aus hier
Beiträge: 4

Windows XP
Visual Studio 2010 Pro.
BeitragVerfasst: 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.