WPF:堆栈面板中元素之间的间距

标签 wpf margin stackpanel

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

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

下面的代码给了我这个:

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>

最佳答案

我猜你的问题是你的 MinWidth="150"属性。我认为您现在总共有 5 个堆栈面板。您有 4 个堆栈面板,每个面板都有自己的复选框。然后我假设你有一个 5th stack panel 持有你的 4 stack panel。

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

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

关于WPF:堆栈面板中元素之间的间距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3280709/

相关文章:

wpf - 如何将 WPF Toolkit Datagrid 与 XamlPad(最新版本)结合使用?

c# - Style Setter 中的绑定(bind)值不起作用

css - :not to keep CSS from being applied to one single page id?的使用方法

CSS 无法设置页边距的底部

WPF - 动画堆栈面板方向的变化?

silverlight - 如何在 WP7 上实现相机应用风格的照片条?

WPF:为什么所有人都喜欢Grid控件?

WPF 将文本框绑定(bind)到字典条目

css - 如何从页面上最后生成的 DIV 中删除填充

c# - 使用 DisplayMemberPath 将自定义类数据绑定(bind)到 WPF ComboBox