Xaml 通用Windows应用程序中奇怪的ListView行为

Xaml 通用Windows应用程序中奇怪的ListView行为,xaml,listview,win-universal-app,Xaml,Listview,Win Universal App,我们的应用程序以前是为Windows 8.1设计的。我们现在正在考虑将其移植到适用于Windows 10的通用Windows应用程序 我们注意到了行为上的差异,特别是在ListView/ItemsControl中 塌陷的可见性正在吞噬空间。在Win 8.1中,折叠的可见性没有额外的空间 ListViewItems的附加页边距,特别是当ItemsPanel为水平时。似乎总是有大约10px的右边距 奇怪的是,对于第二个项目符号,将其更改为GridView解决了边距问题。第一颗子弹仍然存在 还有其

我们的应用程序以前是为Windows 8.1设计的。我们现在正在考虑将其移植到适用于Windows 10的通用Windows应用程序

我们注意到了行为上的差异,特别是在ListView/ItemsControl

  • 塌陷的可见性正在吞噬空间。在Win 8.1中,折叠的可见性没有额外的空间
  • ListViewItems的附加页边距,特别是当ItemsPanel为水平时。似乎总是有大约10px的右边距
奇怪的是,对于第二个项目符号,将其更改为GridView解决了边距问题。第一颗子弹仍然存在

还有其他人遇到过这个问题吗?你是如何解决的

多谢各位

编辑:参考代码:

<GridView Grid.Row="1"
  ItemsSource="{Binding Path=Tables}">
<GridView.ItemContainerStyle>
<Style TargetType="GridViewItem">
    <Setter Property="VerticalContentAlignment" Value="Top" />
    <Setter Property="Margin" Value="0" />
</Style>
</GridView.ItemContainerStyle>
<GridView.ItemTemplate>
<DataTemplate>
    <Grid Visibility="{Binding Path=ShowTable, Converter={StaticResource BoolToVisConverter}}">
        <!-- A lot of UI Element -->
    </Grid>
</DataTemplate>
</GridView.ItemTemplate>
<GridView.ItemsPanel>
<ItemsPanelTemplate>
    <ItemsStackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</GridView.ItemsPanel>
</GridView>

这是我的密码。我已经跟踪了它,网格的可见性工作正常(真/假,正确设置可见性)。问题是,即使“网格”被隐藏,“GridViewItem”似乎仍然会占用空间。GridViewItem的宽度似乎没有改变。在Windows 8.1应用程序上,没有空格


这是错误吗?

GridViewItems定义了默认的
MinWidth
。您必须在
ItemContainerStyle
中删除它。您可以检查默认模板



我无法重现你的额外保证金问题。使用上面显示的代码,列表中的所有元素都显示为彼此相邻。

折叠的项目不应使用空格。请分享一些代码。谢谢Kai,我已经提供了代码参考。我确实有ItemContainerStyle,但它似乎仍然不正确。谢谢Kai!成功了!我比较了Win8和Win10 ListViewItem的默认样式,有很多更改,包括MinWidth。现在我知道怎么回事了,我需要看看其他人。
<Setter Property="MinWidth" Value="0" />