Space 内部环绕面板

Space inside Wrap panel

我从数据库列表创建按钮,这是我的 .xaml 文件

<Controls:MetroWindow
    <ItemsControl x:Name="itemsList" Height="500" Width="550" >
        <ItemsControl.ItemTemplate>
            <DataTemplate DataType="local:Hall">

                <ToggleButton x:Name="ToggleButton"
                    Click="ItemButtonClick"
                    Width="35"
                    Height="35"
                    HorizontalAlignment="Center"
                    VerticalAlignment="Center"
                    Margin="5">
                    <TextBlock TextWrapping="Wrap" TextAlignment="Center" Text="{Binding number}"/>
                </ToggleButton>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
        <ItemsControl.ItemsPanel>
            <ItemsPanelTemplate>

            <WrapPanel Margin="50" VerticalAlignment="Center" HorizontalAlignment="Center">
            </WrapPanel>
        </ItemsPanelTemplate>
        </ItemsControl.ItemsPanel>
    </ItemsControl>
</Controls:MetroWindow>

是否可以实现下图这样的效果?我需要 space 在按钮之间的这个地方

或许您可以使用 this 这样的解决方案。您可以为数字设置不同的值,并相应地 return 它们。在你的情况下,这样的事情应该有效:

在您的 class 中创建一个 属性,例如 Margin。

public Thickness Margin {
    get {
        int multiplier = 1;
        if (number == 2 || number == 8) multiplier = 2;

        return new Thickness(5, 5, 5 * multiplier, 5);
    }
}

在XAML中:

Margin="{Binding Margin}"