Вы можете рассматривать все кнопки как элементы в ListBox.
ListBox создаст ListBoxItem для каждой кнопки, и вы можете добавить Margin к этим ListBoxItems, используя ItemContainerStyle
. Это не изменяет стили кнопок, но создает тот же эффект.
В ItemContainerStyle я также изменяю шаблон ListBoxItem, чтобы отменить наведение, цвета выделения и т. Д. c, который может изменить внешний вид - остается только простой ContentPresenter.
ItemsPanel по умолчанию - вертикальный StackPanel, но я изменил ItemsPanel и макет на горизонтальный StackPanel.
<ListBox>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" Height="32"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="Margin" Value="4"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBoxItem">
<ContentPresenter/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListBox.ItemContainerStyle>
<Button Style="{DynamicResource BtnPrimary}" Content="Primary" />
<Button Style="{DynamicResource BtnSecondary}" Content="Secondary" />
<Button Style="{DynamicResource BtnSuccess}" Content="Success" />
<Button Style="{DynamicResource BtnInfo}" Content="Info" />
<Button Style="{DynamicResource BtnWarning}" Content="Warning" />
<Button Style="{DynamicResource BtnDanger}" Content="Danger" />
<Button Style="{DynamicResource BtnLight}" Content="Light" />
<Button Style="{DynamicResource BtnDark}" Content="Dark" />
</ListBox>