Horizo​​ntalAlignment或VerticalAlignment不能按预期工作

时间:2018-07-08 09:01:16

标签: wpf

每一次我想我都开始了解WPF的工作方式,它正在做某事(或不做某事),我也不明白为什么。愿你能有所启迪。

我想在屏幕上放置一些数字,这些数字应该用Border包围,而完整的Border应该有彩色背景(不仅仅是{{ 1}}包含数字。)

所以我做了这样的事情:

TextBlock

但是,尽管我将<ListBox ItemsSource="{Binding Numbers}"> <ListBox.ItemsPanel> <ItemsPanelTemplate> <UniformGrid Rows="3" Columns="4" /> </ItemsPanelTemplate> </ListBox.ItemsPanel> <ListBox.ItemTemplate> <DataTemplate> <Border HorizontalAlignment="Stretch" VerticalAlignment="Stretch" BorderThickness="1" BorderBrush="Black"> <TextBlock Text="{Binding .}" /> </Border> </DataTemplate> </ListBox.ItemTemplate> </ListBox> HorizontalAlignment声明为VerticalAlignment,但边框(以及示例中未包括的背景)仅覆盖了{{1} },而不是Stretch的完整单元格。 我在这里想念东西吗?

1 个答案:

答案 0 :(得分:1)

这是因为默认情况下,列表框项目的内容演示者不会拉伸。 因此,您必须将此添加到您的列表框:

    <ListBox.ItemContainerStyle>
        <Style TargetType="ListBoxItem">
            <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
            <Setter Property="VerticalContentAlignment" Value="Stretch"/>
        </Style>
    </ListBox.ItemContainerStyle>