如何对齐 DataTemplateSelector 选择的 DataTemplate 中的文本?

How to align Text in DataTemplate choosen by a DataTemplateSelector?

我正在尝试根据 DataTemplateSelector 的选择对齐 ListBox 的 DataTemplate 中的文本。

我想要的是这样的:

并尝试使用 DataTemplateSelector

    <DataTemplate x:Key="RequestTemplate" DataType="local:Message">
            <TextBlock Text="{Binding Text}" Background="LightGreen" TextAlignment="Left" TextWrapping="Wrap"/>
    </DataTemplate>

    <DataTemplate x:Key="ResponseTemplate" DataType="local:Message" >
            <TextBlock Text="{Binding Text}"  Background="Yellow" TextAlignment="Right" TextWrapping="Wrap"/>
    </DataTemplate>

    <local:MesssageDataTemplateSelector x:Key="MessageDataTemplateSelector"
          ResponseTemplate="{StaticResource ResponseTemplate}"
          RequestTemplate="{StaticResource RequestTemplate}" />

列表框本身:

<ListBox ItemTemplateSelector="{StaticResource MessageDataTemplateSelector}"  ItemsSource="{Binding Messages}" />

已应用颜色,但未应用对齐。

我也试过 Horizo​​ntalAlignment,也没用。如何实现效果?

一种解决方案是更改 ListBoxItem 样式,使其 HorizontalContentAlignmentStretch:

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