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 に答える