WPF ListView始终显示完整的项目

Bre*_*orn 7 wpf listview scrollviewer

我有一个带有多个ListView控件的应用程序,其中要求ListView中的项目必须完全可见.应该永远不会在列表中显示部分ListViewItem.如果用户在最终显示部分项目的位置释放ScrollViewer,则列表应"快照"并自行更正,以便仅显示完整项目.

有没有人这样做过?我想我需要重载ListView和/或ScrollViewer才能执行此操作.我正在寻找有关如何处理此问题的建议.谢谢.

这是我的一个清单:

<ctrls:SnapList x:Name="PART_ProductList" 
                                            ScrollViewer.CanContentScroll="False"  
                                            ScrollViewer.VerticalScrollBarVisibility="Auto" 
                                            ScrollViewer.HorizontalScrollBarVisibility="Hidden"
                                            ItemContainerStyle="{StaticResource ProductFinderItem}" 
                                            Canvas.Top="373" Canvas.Left="75"
                                            Height="910" Width="900" >

                            <ctrls:SnapList.ItemsPanel>
                                    <ItemsPanelTemplate>
                                        <VirtualizingStackPanel VirtualizingStackPanel.IsVirtualizing="True" VirtualizingStackPanel.VirtualizationMode="Standard" />
                                </ItemsPanelTemplate>
                            </ctrls:SnapList.ItemsPanel>

                            <ctrls:SnapList.Template>
                                    <ControlTemplate>
                                    <ScrollViewer  x:Name="Scroller" VerticalAlignment="Top"  CanContentScroll="True" Style="{StaticResource VertScrollViewer}" Focusable="false" >
                                                <ItemsPresenter   />
                                            </ScrollViewer>
                                    </ControlTemplate>
                            </ctrls:SnapList.Template>
                        </ctrls:SnapList>
Run Code Online (Sandbox Code Playgroud)

Yog*_*esh 0

你有没有尝试过ListView.ScrollIntoView