Подтвердить что ты не робот

Заполнение на StackPanel?

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

Любые идеи?

4b9b3361

Ответ 1

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

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

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

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

Ответ 3

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

Ответ 4

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

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

Ответ 5

Это вариант заполнения элементов 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>

Ответ 6

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