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

C# 如何对齐DataTemplateSelector选择的DataTemplate中的文本?,c#,wpf,datatemplate,datatemplateselector,C#,Wpf,Datatemplate,Datatemplateselector,根据DataTemplateSelector的选择,我正在尝试对齐列表框的DataTemplate中的文本 我想要的是这样的东西: 并尝试使用DataTemplateSelector <DataTemplate x:Key="RequestTemplate" DataType="local:Message"> <TextBlock Text="{Binding Text}" Background="LightGreen" TextAlignme

根据DataTemplateSelector的选择,我正在尝试对齐列表框的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}" />

在不对齐的情况下应用颜色


我还尝试了水平对齐,但也不起作用。如何实现此效果?

一种解决方案是更改
ListBoxItem
样式,使其
水平内容对齐
拉伸

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