繁体   English   中英

如何对齐 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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM