2010-02-22 2 views
7

Wir haben eine WPF-ausführbare Datei, die eine erstellt und dann dynamisch lädt mehrere Assemblys. Jede Assembly stellt einen Bildschirm (.xaml) dar, der auf einer der Registerkarten angezeigt wird. Das Problem ist, dass das Recht unter dem und nicht am unteren Rand des Fensters ist. Wie erzwinge ich das immer am unteren Rand des Fensters zu sein? Danke!WPF <StatusBar> ist nicht am unteren Rand des Fensters

UserControl  
    DockPanel 
     CheckBox 
     StatusBar 
    DockPanel 
UserControl 

Antwort

1

Haben Sie es versucht?

<StatusBar DockPanel.Dock="Bottom" ... /> 
12

Neben ArsenMkrt Antwort zu erfahren, wie die DockPanel.Dock = „Bottom“ Attribut, vergessen Sie nicht, dass das letzte Element in einer DockPanel den Platz ausfüllt, wenn Sie es ausdrücklich sagen, sonst eine Höhe Befehl (unabhängig vom DockPanel.Dock-Attribut).

mein Vorschlag ist, so zu tun:

<UserControl> 
    <DockPanel> 
    <StatusBar DockPanel.Dock="Bottom" /> 
    <CheckBox /> 
    </DockPanel> 
</Usercontrol> 
+2

re: Ihr Kommentar auf dem letzten Element, können Sie auch die LastChildFill Eigenschaft auf DockPanel gesetzt – kenwarner

+0

@qntmfred - du hast Recht. Ich vergesse dieses Attribut, hauptsächlich aufgrund der Tatsache, dass ich normalerweise das letzte Kind füllen möchte. –

3

Ich hatte das gleiche Problem gerade jetzt. Dank Stephen Wrightons Tipp, dass der letzte Element zu einem DockPanel füllt den Bereich übrig, ich habe herausgefunden, wie ich meine Window einrichten. Es war ein bisschen komisch, da ich die Grid zuletzt hinzugefügt habe, aber es wurde in der Mitte positioniert.

<Window> 
    <DockPanel> 
     <Menu DockPanel.Dock="Top"> 
      <MenuItem Header="_File"> 
      </MenuItem> 
     </Menu> 

     <StatusBar DockPanel.Dock="Bottom"> 
      <StatusBarItem Content="Filler" /> 
     </StatusBar> 

     <Grid x:Name="rootGrid"> 

     </Grid> 
    </DockPanel> 
</Window> 
Verwandte Themen