VirtualizingStackPanel底部对接

时间:2015-10-07 12:46:22

标签: wpf scrollviewer virtualizingstackpanel

我正在开发一些聊天应用程序并使用VirtualizingStackPanel。当我的消息列表向下滚动时,我希望它停靠在容器的底部。但是当我使用虚拟化时,总会有一些空白,因为面板停靠顶部消息,而不是底部消息。以下是一个示例:left is what I have and right is what I want

这是我的标记。

<ItemsControl ItemsSource="{Binding Chat.MessagesList}">
    <ItemsControl.ItemTemplate>
        <DataTemplate DataType="{x:Type models:ChatMessage}">
            ...
        </DataTemplate>
    </ItemsControl.ItemTemplate>
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>    
            <VirtualizingStackPanel VerticalAlignment="Bottom"/>
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
    <ItemsControl.Template>
        <ControlTemplate>
            <ScrollViewer CanContentScroll="True"
                          PanningMode="VerticalOnly"
                          VerticalScrollBarVisibility="Auto" 
                          VirtualizingStackPanel.IsVirtualizing="True"
                          VerticalAlignment="Bottom"
                          VerticalContentAlignment ="Bottom">
                <ItemsPresenter/>
            </ScrollViewer>
        </ControlTemplate>
    </ItemsControl.Template>
</ItemsControl>

是否有可能将消息对齐并保存虚拟化?任何线索都会有所帮助。

0 个答案:

没有答案