Pergunta

Eu estou tentando definir o preenchimento de um StackPanel, mas não há tal propriedade. Tentei StackPanel.Border, mas não existe tal propriedade também.

Todas as idéias?

Foi útil?

Solução

Você poderia colocar uma borda ao redor do StackPanel e definir um estofamento sobre isso. Eu acabo fazendo isso muito, uma vez que existem muitos UIElements que não têm uma propriedade de preenchimento.

<Border Padding="10">
    <StackPanel>
        <!--...-->
    </StackPanel>
</Border>

(Nota: Todos os FrameworkElements tem uma propriedade Margin, espaço que vai do elemento, mas não inclui a largura da margem, como parte do ActualWidth)

.

Se você quiser espaço os itens dentro de um StackPanel, você vai querer adicionar uma margem para cada criança como Rob disse.

Outras dicas

Se você quer dizer que você quer para o espaço fora elementos filhos do StackPanel (que não tem uma propriedade Padding), consulte: Como fazer espaço que eu os elementos filho de um StackPanel?

Ou você poderia fazer algo semelhante para a TIM:

<Border>
    <StackPanel Margin="10">
        ...
    </StackPanel>
</Border>

Você provavelmente vai querer adicionar margem para os itens no painel em vez. Você vai obter o mesmo resultado, apenas tem que abordá-lo para trás.

Poderia ser Margin que você está procurando?

Esta é uma variante de preenchimento para elementos de StackPanel

<StackPanel Orientation="Horizontal" Grid.Row="2">
    <StackPanel.Resources>
         <Style x:Key="StackPanelPadding" TargetType="Control">
            <Setter Property="Margin" Value="5,0,0,0"/>
            <Setter Property="Height" Value="40"/>
         </Style>
         <Style BasedOn="{StaticResource StackPanelPadding}" TargetType="Button"/>
    </StackPanel.Resources>
    <Button/>
    <Button/>
</StackPanel>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top