堆栈面板忽略水平对齐问题 XAML

本文关键字:对齐 问题 XAML 水平 堆栈 | 更新日期: 2023-09-27 18:33:17

我有问题,我只是尝试制作带有消息的聊天窗口(从右传入和从左发送),但似乎堆栈面板忽略了水平对齐。这是我的代码

<ListView>
            <ListView.ItemTemplate>
                <DataTemplate>
                    <StackPanel>
                        <StackPanel HorizontalAlignment="Left">
                            <TextBlock TextWrapping="Wrap" 
                            FontSize="22"
                            Text="{Binding MessageTextIn}"              
                        />
                            <TextBlock
                            FontSize="10"
                            Text="{Binding MessageTimeIn}" Padding="10"
                        />
                        </StackPanel>
                        <StackPanel HorizontalAlignment="Right">
                            <TextBlock TextWrapping="Wrap"
                                FontSize="22"
                                Text="{Binding MessageTextOut}"
                            />
                            <TextBlock
                                FontSize="10"
                                Text="{Binding MessageTimeOut}" Padding="10"
                            />
                        </StackPanel>
                    </StackPanel>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>

似乎我做错了什么,但究竟是什么?

感谢您的任何帮助!

对不起,如果我问一些愚蠢的事情。

堆栈面板忽略水平对齐问题 XAML

这是因为您的 ItemContainer 只有正确的对齐方式(默认情况下)。设置列表视图的 ItemContainerStyle:

<ListView>
    <ListView.ItemContainerStyle>
        <Style TargetType="ListViewItem">
            <Setter Property="HorizontalAlignment" Value="Stretch" />
        </Style>
    </ListView.ItemContainerStyle>
</ListView>