StackPanelのパディングを設定しようとしていますが、そのようなプロパティはありません。StackPanel.Borderを試しましたが、そのようなプロパティもありません。
何か案は?
StackPanelのパディングを設定しようとしていますが、そのようなプロパティはありません。StackPanel.Borderを試しましたが、そのようなプロパティもありません。
何か案は?
StackPanel の周りに Border を配置し、その上にパディングを設定できます。パディング プロパティを持たない多くの UIElements があるため、これを何度も行うことになります。
<Border Padding="10">
<StackPanel>
<!--...-->
</StackPanel>
</Border>
(注: すべての FrameworkElements には Margin プロパティがあり、要素の間隔を空けますが、ActualWidth の一部としてマージン幅は含まれません)。
StackPanel 内の項目の間隔を空けたい場合は、Rob が言ったように、各子にマージンを追加する必要があります。
または、TiM と同様のことを行うこともできます。
<Border>
<StackPanel Margin="10">
...
</StackPanel>
</Border>
StackPanelの子要素(Paddingプロパティがない)の間隔を空ける場合は、「StackPanelの子要素の間隔を空けるにはどうすればよいですか?」を参照してください。
代わりに、パネル内のアイテムにマージンを追加することをお勧めします。同じ結果が得られますが、逆方向にアプローチする必要があります。
これは、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>