【问题标题】:Space inside Wrap panel环绕面板内的空间
【发布时间】:2018-10-16 01:01:47
【问题描述】:

我从 db 列表创建按钮,这是我的 .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>

是否可以在图片上实现如下所示的效果?我需要在按钮之间的这个地方留出空间

【问题讨论】:

  • 您是否尝试将边距从 5 增加到例如 10 或 20?
  • 是的,但我需要在 2-3 个按钮和 8-9 个按钮之间留出更大的空间,而不是全部

标签: c# wpf panel


【解决方案1】:

也许您可以使用this 之类的解决方案。您可以为数字设置不同的值并相应地返回它们。在你的情况下,这样的事情应该可以工作:

在你的类中创建一个属性,例如 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}"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-16
    • 1970-01-01
    • 1970-01-01
    • 2018-05-30
    • 1970-01-01
    相关资源
    最近更新 更多