gpt4 book ai didi

c# - Windows Phone 8.1 中的 ListView 在滚动长列表时摇摆不定 (XAML)

转载 作者:IT王子 更新时间:2023-10-29 04:24:24 24 4
gpt4 key购买 nike

我在 Windows Phone 8.1 应用程序中滚动 ListViews 时遇到问题。短列表滚动得很好,滚动流畅,但是一旦虚拟化启动,整个 ListView 就会稍微向左“摆动”,但足够明显,令人讨厌。

我试过删除所有过渡效果但没有效果,也尝试过逐步加载项目也没有成功。将项目面板设置为 StackPanel(删除虚拟化)可以解决问题,但不是可取的。

我的 ListView 绑定(bind)到基本页面模板附带的 DefaultViewModel 中的一个属性。

我做错了什么以及是什么导致我的 ListView 表现出这种行为?

XAML:

<ListView x:Name="searchResultsList" IsItemClickEnabled="True" ItemClick="ListView_ItemClick" ItemsSource="{Binding searchResults}">
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="Margin" Value="0,0,0,20" />
</Style>
</ListView.ItemContainerStyle>
<ListView.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="80" />
<ColumnDefinition Width="10" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>

<Border Width="80" Height="80">
<Image Source="{Binding Image}" />
</Border>

<StackPanel Grid.Column="2">
<TextBlock Text="{Binding PodcastTitle}" TextWrapping="WrapWholeWords" FontSize="{StaticResource TextStyleExtraLargeFontSize}" />
<TextBlock Text="{Binding LastUpdated, Converter={StaticResource dateConverter}}" Style="{ThemeResource ListViewItemSubheaderTextBlockStyle}" />
<TextBlock Text="{Binding PodcastArtist}" TextWrapping="WrapWholeWords" Style="{ThemeResource ListViewItemContentTextBlockStyle}" />
</StackPanel>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>

最佳答案

所以这似乎是一个操作系统问题,如 MS 论坛上的此线程所示:http://social.msdn.microsoft.com/Forums/en-US/9a363d33-5760-4d38-9c81-84259c4edcbe/listview-jiggles-horizontally-when-large-item-about-to-scroll-in-or-out-in-windows-phone-81-preview?forum=WindowsPhonePreviewSDK&prof=required .

问题确实在于虚拟化,项目没有固定宽度。使用星号作为宽度或进行水平对齐拉伸(stretch)将不起作用,因此考虑方向和分辨率的唯一解决方案是将宽度绑定(bind)到 ListView 容器的 ActualWidth 属性:

<Grid x:name="contentRoot" Margin="19,9.5,19,0">
<ListView>
<ListView.ItemTemplate>
<DataTemplate>
<Grid Width={Binding ActualWidth, ElementName=contentRoot} />

</DataTemplate>

</ListView.ItemTemplate>
</ListView>
</Grid>

关于c# - Windows Phone 8.1 中的 ListView 在滚动长列表时摇摆不定 (XAML),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24361850/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com