UWP ScrollViewer Left Header 和 ItemsPresenter
UWP ScrollViewer Left Header and ItemsPresenter
我试图在滚动查看器中固定一个 leftheader,但它的高度不等于 itemspresenter。我已经给出了代码片段。
<ItemsControl>
<ItemsControl.Template>
<ControlTemplate>
<ScrollViewer ScrollViewer.HorizontalScrollBarVisibility="Visible"
ScrollViewer.HorizontalScrollMode="Enabled"
HorizontalSnapPointsType="Mandatory">
<ScrollViewer.LeftHeader>
<Grid Width="190" Height="1000" Background="Black"/>
</ScrollViewer.LeftHeader>
<ItemsPresenter HorizontalAlignment="Left"
VerticalAlignment="Top"/>
</ScrollViewer>
</ControlTemplate>
</ItemsControl.Template>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<ItemsStackPanel Orientation="Horizontal" ItemsUpdatingScrollMode="KeepItemsInView">
</ItemsStackPanel>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.Items>
<Grid Width="1536" Height="1000" Background="Yellow"/>
<Grid Width="1536" Height="1000" Background="Red"/>
<Grid Width="1536" Height="1000" Background="Black"/>
</ItemsControl.Items>
</ItemsControl>
您需要向上滚动才能看到gap。
我已经测试了您的代码并重现了您的问题。我会将此问题报告给相关团队。目前修复 LeftHeader
内容的一种解决方法是,您可以将 Grid
包装成 Canvas
,就像下面的代码一样。
<ScrollViewer.LeftHeader >
<Canvas>
<Grid Width="190" Height="1000" Background="Red" />
</Canvas>
</ScrollViewer.LeftHeader>
我试图在滚动查看器中固定一个 leftheader,但它的高度不等于 itemspresenter。我已经给出了代码片段。
<ItemsControl>
<ItemsControl.Template>
<ControlTemplate>
<ScrollViewer ScrollViewer.HorizontalScrollBarVisibility="Visible"
ScrollViewer.HorizontalScrollMode="Enabled"
HorizontalSnapPointsType="Mandatory">
<ScrollViewer.LeftHeader>
<Grid Width="190" Height="1000" Background="Black"/>
</ScrollViewer.LeftHeader>
<ItemsPresenter HorizontalAlignment="Left"
VerticalAlignment="Top"/>
</ScrollViewer>
</ControlTemplate>
</ItemsControl.Template>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<ItemsStackPanel Orientation="Horizontal" ItemsUpdatingScrollMode="KeepItemsInView">
</ItemsStackPanel>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.Items>
<Grid Width="1536" Height="1000" Background="Yellow"/>
<Grid Width="1536" Height="1000" Background="Red"/>
<Grid Width="1536" Height="1000" Background="Black"/>
</ItemsControl.Items>
</ItemsControl>
您需要向上滚动才能看到gap。
我已经测试了您的代码并重现了您的问题。我会将此问题报告给相关团队。目前修复 LeftHeader
内容的一种解决方法是,您可以将 Grid
包装成 Canvas
,就像下面的代码一样。
<ScrollViewer.LeftHeader >
<Canvas>
<Grid Width="190" Height="1000" Background="Red" />
</Canvas>
</ScrollViewer.LeftHeader>