在使用Composition API(example)在ListView
上创建粘性标头时,ListView的内容可以越过标头。
通常,Canvas.ZIndex
可以解决这类问题,但这不能按预期工作。
<ListView x:Name="listView">
<ListView.Header>
<Grid Canvas.ZIndex="1">
<!--Some content-->
</Grid>
</ListView.Header>
<ListView.ItemTemplate>
<!-- Some content -->
</ListView.ItemTemplate>
</ListView>
答案 0 :(得分:0)
ZIndex
相对于同一级别上的其他节点,因此您需要从后面的代码直接在ZIndex
上更改ListView.Header
。将其设置为标题中 中的任何内容都不会起作用。
XAML:
<ListView x:Name="listView">
<ListView.Header>
<Grid>
<!--Some content-->
</Grid>
</ListView.Header>
<ListView.ItemTemplate>
<!-- Some content -->
</ListView.ItemTemplate>
</ListView>
后面的代码:
public ListViewExample()
{
var headerPresenter = (UIElement)VisualTreeHelper.GetParent((UIElement)TracksList.Header);
var headerContainer = (UIElement)VisualTreeHelper.GetParent(headerPresenter);
Canvas.SetZIndex(headerContainer, 1);
}