75

StackPanelのパディングを設定しようとしていますが、そのようなプロパティはありません。StackPanel.Borderを試しましたが、そのようなプロパティもありません。

何か案は?

4

5 に答える 5

124

StackPanel の周りに Border を配置し、その上にパディングを設定できます。パディング プロパティを持たない多くの UIElements があるため、これを何度も行うことになります。

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

(注: すべての FrameworkElements には Margin プロパティがあり、要素の間隔を空けますが、ActualWidth の一部としてマージン幅は含まれません)。

StackPanel 内の項目の間隔を空けたい場合は、Rob が言ったように、各子にマージンを追加する必要があります。

于 2009-08-20T03:19:04.100 に答える
7

または、TiM と同様のことを行うこともできます。

<Border>
    <StackPanel Margin="10">
        ...
    </StackPanel>
</Border>
于 2009-08-20T07:52:35.033 に答える
6

StackPanelの子要素(Paddingプロパティがない)の間隔を空ける場合は、「StackPanelの子要素の間隔を空けるにはどうすればよいですか?」を参照してください。

于 2012-07-11T09:11:10.800 に答える
3

代わりに、パネル内のアイテムにマージンを追加することをお勧めします。同じ結果が得られますが、逆方向にアプローチする必要があります。

于 2009-08-20T03:04:00.427 に答える
3

これは、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>
于 2014-01-31T12:16:06.573 に答える