我有一个带复选框的stackpanel。 我似乎无法在带有margin属性的复选框之间使用相同的间距
有人可以告诉我我做错了什么吗?
下面的代码告诉我:
http://www.shrani.si/f/1Y/M6/4eniAdAw/margin.png http://www.shrani.si/f/1Y/M6/4eniAdAw/margin.png
如您所见,元素之间的间距不是恒定的!
<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>
答案 0 :(得分:4)
我猜你的问题是你的MinWidth =“150”属性。我想你现在总共有5个堆叠面板。你有4个堆栈面板,每个面板都有自己的复选框。然后我假设你有一个第5个堆叠面板拿着你的4个堆叠面板。
如果这是真的......那么问题是你的每个复选框都在150宽度(最小)的堆栈面板中,但是你的第三个堆栈面板大于150,因为文本很长,它必须更大包含整个文本(加上你的20的边距)。
删除MinWidth =“150”,我想你会在每个复选框的文本之间获得20的余量。 (如果你想要复选框的实际框之间的均匀间距,那么你应该保持你的最小宽度,但要足够大,以至于它至少与包含最长文本的复选框一样宽。)