Domanda

Qualcuno può aiutarmi a capire l'allineamento tratto WPF. Mi capita spesso di incorrere in problemi dove voglio un controllo per riempire uno spazio, ma non ho mai capito a quale livello dovrei mettere il VerticalAlignment = "Stretch". Specialmente quando UserControls sono coinvolti.

Ho sempre risolvere il problema cercando cose diverse o mettere tratto su tutti i livelli, ma vorrei capire come farlo correttamente.

Consente di prendere l'esempio che ho avuto oggi:

  • Ho una griglia con una cella dimensione fissa (che può essere ridimensionato con un GridSplitter)
  • In questa cella ho un UserControl contenente uno StackPanel con un TabControl
  • Nella TabControl ho TabItems contenenti un altro UserControl con un controllo ListView

O in una sorta di pseudo XAML

<ns:MyUserControl1 Grid.Row="0" Grid.Column="0">
    <!-- this is in MyUserControl1 -->
    <StackPanel>
        <TabControl>
            <TabItem>
               <ns:MyUserControl2>
                    <!-- This is in MyUserControl2 -->
                    <ListView/>
               </ns:MyUserControl2>
            </TabItem>
        </TabControl>
    </StackPanel>
</ns:MyUserControl>

Ora voglio il ListView per riempire l'intera cella della griglia (escluso il TabControl e margini, naturalmente).

È stato utile?

Soluzione

Il tuo ListView riempirà la vostra MyUserControl2 - se si desidera che questo per adattarsi all'interno di tutta la scheda, è necessario assicurarsi di rimuovere altezza e larghezza dei vincoli all'interno del file XAML del UserControl (questi saranno default a 300 ciascuno)

EDIT: Apologies - Ho saltato la parte importante della vostra XAML ... Il contenitore MyUserControl1 è uno StackPanel ... questo sarà impilare controlli figlio e ridimensionare per adattarsi loro; Se si sostituisce con un DockPanel (o una griglia), i controlli figlio riempiranno lo spazio disponibile e vi darà il risultato che siete dopo ...

Dai un'occhiata alla questo articolo di MSDN ... Speranza questo aiuta:)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top