WPF:stackpanel中元素之间的间距

WPF:stackpanel中元素之间的间距,wpf,margin,stackpanel,Wpf,Margin,Stackpanel,我有一个带复选框的stackpanel。 我似乎无法在具有边距属性的复选框之间设置相同的间距 有人能告诉我我做错了什么吗 下面的代码告诉我: (来源:) 如您所见,元素之间的间距不是恒定的 <StackPanel MinWidth="150" cal:Bind.Model="{Binding}" Orientation="Horizontal"> <StackPanel.Resources> <Style TargetType="{x:Ty

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

有人能告诉我我做错了什么吗

下面的代码告诉我:


(来源:)

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

<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个StackPanel。您有4个堆栈面板,每个面板都有自己的复选框。然后我假设你有一个第五层的面板来容纳你的4层面板

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


删除MinWidth=“150”,我认为每个复选框的文本之间会有20个边距。(如果要使复选框的实际框之间的间距均匀,则应保持最小宽度,但要使其足够大,至少与包含最长文本的复选框一样宽)。

能否将图像附加到此处?是否确定复选框位于StackPanel内?是否可以检查是否为复选框定义了任何全局样式?此StackPanel是“独立”还是某种ItemsControl的面板?在您的示例中,您只显示一个复选框,因此很难判断图像如何与代码匹配。啊,猜对了。我没有这样想——我假设了一对多的StackPanel与复选框的比率,而不是每个复选框都有自己的复选框。我想这就引出了“为什么?”的问题,但这不是这里要问的问题……:)thanx很多。我正在换MinWidth道具,但没用。删除它确实有帮助,因为我想要文本和非实际复选框之间的边距。在我问另一个问题之前,也许我可以在这里问。。。我想摆脱设置按钮的宽度。如何使按钮根据其在整个应用程序中的文本全局调整大小?这是一个问题。。。第二个问题是,如果我有三个按钮,一个挨着一个,如何设置所有相同的宽度(最大按钮的宽度)。希望我有道理。。。