6

我有一个带有复选框的堆栈面板。我似乎无法在具有边距属性的复选框之间设置相同的间距

有人可以告诉我我在做什么错吗?

下面的代码给了我这个:

http://www.shrani.si/f/1Y/M6/4eniAdAw/margin.png
(来源:shrani.si

如您所见,元素之间的间距不是恒定的!

<StackPanel MinWidth="150" cal:Bind.Model="{Binding}" Orientation="Horizontal">
    <StackPanel.Resources>
        <Style TargetType="{x:Type CheckBox}">
            <Setter Property="Margin" Value="0,0,20,0"/>
        </Style>
    </StackPanel.Resources>
    <CheckBox IsChecked="{Binding IsShown}" Content="{Binding ModuleName, Converter={StaticResource localizeModuleAndFunctionConverter}}" 
              cal:Message.Attach="[Event Click] = [Action FilterShownModuleFunctions]" />
</StackPanel>
4

1 回答 1

4

我猜你的问题是你的 MinWidth="150" 属性。我想你现在总共有 5 个堆栈面板。您有 4 个堆栈面板,每个面板都有自己的复选框。然后我假设你有第 5 个堆栈面板来容纳你的 4 个堆栈面板。

如果这是真的......那么问题是您的每个复选框都在 150 宽度(最小)的堆栈面板中,但您的第三个堆栈面板大于 150,因为文本太长了,它必须更大才能包含整个文本(加上您的 20 边距)。

删除 MinWidth="150" 我认为您将在每个复选框的文本之间获得 20 的边距。(如果您希望复选框的实际框之间的间距均匀,那么您应该保持最小宽度,但使其足够大,以使其至少与包含最长文本的复选框一样宽)。

于 2010-07-19T14:33:03.327 回答