0

我有一个 ListBox - ListBox.ItemTemplate - DataTemplate xaml 设置,我正在尝试将 ListBox (TextBlock) 中的文本居中。TextAlignment 属性似乎不起作用。有任何想法吗?这是我的代码:

  <ListBox x:Name="listBox1" HorizontalAlignment="Left" Height="520" Margin="190,220,0,0" VerticalAlignment="Top" Width="295" SelectionChanged="listBox1_SelectionChanged" FontSize="20" FontWeight="Bold" >
        <ListBox.ItemTemplate>
            <DataTemplate>
                <TextBlock Text="{Binding name}" FontSize="25" Foreground="Black" TextAlignment="Center"/>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>
4

1 回答 1

1

ListBox 在内部使用 StackPanel 来包含每个 itemtemplate 默认情况下,itemtemplate 的大小仅足以容纳其子项。在您的模板中,文本块只会调整自身大小以适应绑定文本,因此,没有“中心”,因为边界文本块与文本大小完全匹配。明确设置文本块的大小,或者您可以将以下内容添加到列表框中(或在页面资源中声明为可重用样式)

<ListBox.ItemContainerStyle>
                <Style TargetType="ListBoxItem">
                    <Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter>
                </Style>
</ListBox.ItemContainerStyle>
于 2012-11-08T22:25:21.487 回答