我有一个位于用户控件内的网格内的列表框。该用户控件放置在可以调整大小的选项卡面板中。
列表框定义为:
<ListBox HorizontalAlignment="Left" Margin="12,42,12,12" Name="listBox1" VerticalAlignment="Top" >
只要填充了我的列表框,这就很有效。当它没有填充时,它是一个大约4像素宽/高的正方形。如果它没有满,它会缩小以适应其中的任何内容。
这不是我想要的。我想要的是始终保持我定义的边距。我的问题分为两部分:
1:为什么它的表现如此?
2:我如何让它按照我想要的方式行事?
感谢。
答案 0 :(得分:3)
由于您将其置于Grid
控件上,因此您应该按预期使用它并创建行和列并将ListBox
放在正确的单元格中。
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="42" />
<RowDefinition />
<RowDefinition Height="12" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="12" />
<ColumnDefinition />
<ColumnDefinition Width="12" />
</Grid.ColumnDefinitions>
<ListBox x:Name="listBox1"
Grid.Row="1" Grid.Column="1">
</ListBox>
</Grid>
答案 1 :(得分:2)
维持边距但边距不在列表框本身之内,因此只更改列表框相对于其容器的位置。
我不确定您希望它如何显示,但可以设置最小宽度/高度。
<ListBox HorizontalAlignment="Left" Margin="12,42,12,12"
Name="listBox1" MinHeight="10" MinWidth="100" VerticalAlignment="Top" />
或只删除对齐设置
<ListBox Margin="12,42,12,12" Name="listBox1" />
如果您希望列表框填充其容器。