在Silverlight中,我有一个Vertical ListBox,每个项目都有一个Horizontal ListBox。我希望HorizontalListbox中的项目在父(Vertical)ListBox的宽度上均匀分布。我怎么能这样做?
<ListBox x:Name="MachineListBox" Background="Green">
<ListBox.ItemTemplate>
<DataTemplate>
<ListBox ItemsSource="{Binding CoilList}" Background="Red" HorizontalAlignment="Stretch">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel
HorizontalAlignment="Stretch" />
</ItemsPanelTemplate >
</ListBox.ItemsPanel>
<ListBox.ItemTemplate >
<DataTemplate>
<TextBlock
Text="{Binding Coil}"
HorizontalAlignment="Stretch"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
答案 0 :(得分:0)
我会冒昧地建议您使用我自己发明的自定义控件。它被称为ProportionalPanel,它可以满足您的需求 - 均匀地放置物品。您可以将它用于内部ListBox中的ItemsPanel而不是StackPanel。我还提供了源代码,因此您可以按照自己喜欢的方式调整逻辑。我博客上的相关帖子是here。
答案 1 :(得分:0)
我认为比例尺寸调整操作符可以满足您的需求。没试过,但听起来像是一个选择。宽度= “*" and Margin="2
*”。