Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 有没有更好的方法可以在不丢失虚拟化的情况下将WrapPanel“like”控件实现为ListView的PanelTemplate_C#_Wpf_Listview_Virtualization - Fatal编程技术网

C# 有没有更好的方法可以在不丢失虚拟化的情况下将WrapPanel“like”控件实现为ListView的PanelTemplate

C# 有没有更好的方法可以在不丢失虚拟化的情况下将WrapPanel“like”控件实现为ListView的PanelTemplate,c#,wpf,listview,virtualization,C#,Wpf,Listview,Virtualization,我目前有一个ListView,它有一个datatemplate,以便显示给定文件夹中的所有.jpg文件。目前我把它设置为一个包裹面板,我发现当这个文件夹中的JPG变大时,程序会变慢。我猜是因为失去了视觉效果。我尝试过使用-这对我不起作用的原因是,我仍然得到模糊的滚动条行为,即使每个项目的高度/宽度相同。我只是想知道是否有更好的方法来实现这一点。如果我必须固定列的数量,例如一次显示一个3 x 3的列,我不会感到烦恼 我当前的列表视图如下所示: <ListView ItemsSource="

我目前有一个ListView,它有一个datatemplate,以便显示给定文件夹中的所有.jpg文件。目前我把它设置为一个包裹面板,我发现当这个文件夹中的JPG变大时,程序会变慢。我猜是因为失去了视觉效果。我尝试过使用-这对我不起作用的原因是,我仍然得到模糊的滚动条行为,即使每个项目的高度/宽度相同。我只是想知道是否有更好的方法来实现这一点。如果我必须固定列的数量,例如一次显示一个3 x 3的列,我不会感到烦恼

我当前的列表视图如下所示:

 <ListView ItemsSource="{Binding FilteredPhotoFiles}" SelectedItem="{Binding SelectedPhotoVM.SelectedPhoto}">
                <ListView.ItemsPanel>
                    <ItemsPanelTemplate>
                        <WrapPanel Width="{Binding (FrameworkElement.ActualWidth), RelativeSource={RelativeSource AncestorType={x:Type ScrollContentPresenter}}}"
                            ItemWidth="{Binding (ListView.View).ItemWidth, RelativeSource={RelativeSource AncestorType={x:Type ListView}}}"
                            MinWidth="{Binding ItemWidth, RelativeSource={RelativeSource Self}}"
                            ItemHeight="{Binding (ListView.View).ItemHeight, RelativeSource={RelativeSource AncestorType={x:Type ListView}}}"/>
                    </ItemsPanelTemplate>
                </ListView.ItemsPanel>
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <Grid Margin="2,4,2,4">
                            <Grid.Background>
                                <SolidColorBrush Color="LightGray" Opacity="0.5"/>
                            </Grid.Background>
                            <Image Source="{Binding PhotoFileInfo.FullName}" Width="300" Height="170" />                                
                        </Grid>
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>

我只是想知道是否有更好的方法来实现这一点,这样我就不会失去性能,可能是某种GridView?

如果您可以使用每行3列,那么可以使用ListView/GridView。您需要一个将这三列作为属性的ItemsSource。@user1-请从中尝试答案。