gpt4 book ai didi

c# - 如何修复 ListView Windows Phone 8.1 XAML 中的错误

转载 作者:太空宇宙 更新时间:2023-11-03 15:35:25 25 4
gpt4 key购买 nike

我在 HUB 中制作了一个列表并成功管理,但是当我尝试创建一种样式来分隔要列出的项目时,我遇到了一个非常奇怪的错误,当我试图在列表中间向下滑动时,他开始shake 只是因为我添加了边距,如果我删除工作正常。

这是我的代码!

<ListView x:Name="list" Loaded="ListView_Loaded" SelectedItem="true"  SelectionChanged="searchResultsList_SelectionChanged" ItemsSource="{Binding}">
<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 Caminho}" />
</Border>

<StackPanel Margin="0,16,0,0" Grid.Column="2">
<TextBlock Foreground="White" Text="{Binding NomeCurso}" TextWrapping="WrapWholeWords" FontSize="{StaticResource TextStyleExtraLargeFontSize}" />

</StackPanel>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>

所以我的错误特别在这部分代码中:

<Setter Property="Margin" Value="0,0,0,20" />

如果我离开这个 Works well,有人知道它是什么吗?

最佳答案

这是 WP 8.1 的一个错误,它与虚拟化有关。

您需要为每个项目明确指定宽度或使用我使用的宽度(感谢 Rudy ),这是一个扩展的 ListView 解决了这个问题并且边距仍然有效:

public class PerfectScrollListView : ListView
{
public PerfectScrollListView()
{
this.SizeChanged += PerfectScrollListView_SizeChanged;
}

private void PerfectScrollListView_SizeChanged(object sender, SizeChangedEventArgs e)
{
if (ItemsPanelRoot != null)
{
ItemsPanelRoot.Width = e.NewSize.Width;
}
}
}

关于c# - 如何修复 ListView Windows Phone 8.1 XAML 中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32032029/

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