ScrollView 在 Windows 10 中不工作
ScrollView not working in Windows 10
我有一个包含大约 200 个联系人的 ViewModel,我将它绑定到一个 ListView
<Grid>
<ScrollViewer
HorizontalScrollBarVisibility="Auto"
VerticalScrollBarVisibility="Auto">
<ListView x:Name="ContactListing" ItemsSource="{Binding ContactListing}" >
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Path=DisplayName}" />
<Image Source="{Binding Thumbnail,Converter={StaticResource ResourceKey=contactConv}}" />
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</ScrollViewer>
</Grid>
如果有人能解释 ScrollViewers 可见性背后的细节就太好了
一个 ListView
控件已经包含一个 ScrollViewer
并且实现了基于项目数量的滚动,没有必要将这个控件包装在另一个 ScrollViewer
中。您可以在包含所有 Windows 10 种样式的 generic.xaml 文件的第 6219 行的 ListView
默认 ControlTemplate 中仔细检查此内容:
C:\Program Files (x86)\Windows Kits\DesignTime\CommonConfiguration\Neutral\UAP.0.10240.0\Generic\generic.xaml
因此,您只需从 XAML 片段中删除 ScrollViewer
。
<Grid>
<ListView x:Name="ContactListing" ItemsSource="{Binding ContactListing}" >
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Path=DisplayName}" />
<Image Source="{Binding Thumbnail,Converter={StaticResource ResourceKey=contactConv}}" />
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</Grid>
注意:当您使用 ListView
时,我想您希望所有项目都堆叠在一起。如果您想要多个列来显示您的项目,请改用 GridView
。
我有一个包含大约 200 个联系人的 ViewModel,我将它绑定到一个 ListView
<Grid>
<ScrollViewer
HorizontalScrollBarVisibility="Auto"
VerticalScrollBarVisibility="Auto">
<ListView x:Name="ContactListing" ItemsSource="{Binding ContactListing}" >
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Path=DisplayName}" />
<Image Source="{Binding Thumbnail,Converter={StaticResource ResourceKey=contactConv}}" />
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</ScrollViewer>
</Grid>
如果有人能解释 ScrollViewers 可见性背后的细节就太好了
一个 ListView
控件已经包含一个 ScrollViewer
并且实现了基于项目数量的滚动,没有必要将这个控件包装在另一个 ScrollViewer
中。您可以在包含所有 Windows 10 种样式的 generic.xaml 文件的第 6219 行的 ListView
默认 ControlTemplate 中仔细检查此内容:
C:\Program Files (x86)\Windows Kits\DesignTime\CommonConfiguration\Neutral\UAP.0.10240.0\Generic\generic.xaml
因此,您只需从 XAML 片段中删除 ScrollViewer
。
<Grid>
<ListView x:Name="ContactListing" ItemsSource="{Binding ContactListing}" >
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Path=DisplayName}" />
<Image Source="{Binding Thumbnail,Converter={StaticResource ResourceKey=contactConv}}" />
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</Grid>
注意:当您使用 ListView
时,我想您希望所有项目都堆叠在一起。如果您想要多个列来显示您的项目,请改用 GridView
。