Обивка на StackPanel? - PullRequest
       50

Обивка на StackPanel?

66 голосов
/ 20 августа 2009

Я пытаюсь установить отступ StackPanel, но такого свойства нет. Я пробовал StackPanel.Border, но такого свойства тоже нет.

Есть идеи?

Ответы [ 6 ]

106 голосов
/ 20 августа 2009

Вы можете поместить Границу вокруг StackPanel и установить отступ для этого. Я заканчиваю тем, что делал это много, так как есть много UIElement, у которых нет свойства заполнения.

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

(Примечание: все FrameworkElements имеют свойство Margin, которое будет помещать элемент, но не будет включать ширину поля как часть ActualWidth).

Если вы хотите разместить предметы внутри StackPanel, вам нужно добавить поле для каждого ребенка, как сказал Роб.

6 голосов
/ 11 июля 2012

если вы имеете в виду, что вы хотите разнести дочерние элементы StackPanel (у которого нет свойства Padding), см .: Как разнести дочерние элементы StackPanel?

6 голосов
/ 20 августа 2009

Или вы можете сделать что-то похожее на TiM:

<Border>
    <StackPanel Margin="10">
        ...
    </StackPanel>
</Border>
3 голосов
/ 20 августа 2009

Возможно, вы захотите добавить поле к элементам на панели. Вы получите тот же результат, просто подойдите к нему назад.

2 голосов
/ 31 января 2014

Это вариант заполнения для элементов 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>
2 голосов
/ 20 августа 2009

Может ли это Маржа, которую вы ищете?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...