2010-02-22 9 views
7

Abbiamo un eseguibile WPF che crea e quindi carica dinamicamente più assiemi. Ogni assembly rappresenta uno schermo (.xaml) che viene visualizzato in una delle schede. Il problema è che è proprio sotto e non nella parte inferiore della finestra. Come impongo che sia sempre nella parte inferiore della finestra ? Grazie!WPF <StatusBar> non è posizionato nella parte inferiore della finestra

UserControl  
    DockPanel 
     CheckBox 
     StatusBar 
    DockPanel 
UserControl 

risposta

1

Hai provato?

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

Oltre alla risposta di ArsenMkrt su come includere l'DockPanel.Dock = attributo "basso", non dimenticare che l'elemento ultimo di una DockPanel riempirà l'area a meno che non esplicitamente detto altrimenti tramite un comando altezza (indipendentemente dall'attributo DockPanel.Dock fornito).

il mio suggerimento è quello di fare così:

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

Re: Il tuo commento su l'ultimo elemento, si può anche impostare la proprietà LastChildFill su DockPanel – kenwarner

+0

@qntmfred - hai ragione. Mi dimentico di questo attributo, principalmente a causa del fatto che di solito voglio riempire l'ultimo figlio. –

3

Ho avuto lo stesso problema solo ora. Grazie al suggerimento di Stephen Wrighton che l'l'ultimo elemento aggiunto a un DockPanel riempie l'area rimasta, ho capito come impostare il mio Window. E 'stato un po' strano da quando ho aggiunto lo Grid ultimo ma è stato posizionato nel mezzo.

<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> 
Problemi correlati