Pergunta

Alguém pode me ajudar a entender o alinhamento trecho WPF. Costumo correr em questões onde eu quero um controle para preencher uma área mas nunca compreender de que nível devo colocar o VerticalAlignment = "Stretch". Especialmente quando UserControls estão envolvidos.

Eu sempre resolver o problema, tentando coisas diferentes ou colocando estiramento em todos os níveis, mas eu gostaria de entender como fazê-lo corretamente.

Vamos dar o exemplo que eu tenho agora:

  • Eu tenho uma grade com uma célula de tamanho fixo (que pode ser redimensionada com um GridSplitter)
  • Nesta célula Eu tenho um UserControl que contém um StackPanel com um TabControl
  • No TabControl Eu tenho TabItems contendo outro UserControl com um ListView

Ou em algum tipo de 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>

Agora, eu quero que o ListView para preencher toda a célula da grade (excluindo o TabControl e margens de curso).

Foi útil?

Solução

Seu ListView vai encher o seu MyUserControl2 - se você quer este para caber dentro de todo o Tab, você precisa ter certeza de que você remova a altura e restrições largura dentro arquivo XAML do UserControl (estes será o padrão para 300 cada)

EDIT: Apologies - Eu saltei a parte mais importante do seu xaml ... O recipiente MyUserControl1 é um StackPanel ... isso vai empilhar controles filho e redimensionar para encaixá-los; Se você substituí-lo com um DockPanel (ou um Grid), os controles filho vai preencher o espaço disponível e lhe dar o resultado que você está depois ...

Tenha um olhar em este artigo MSDN ... Esperança isso ajuda:)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top