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>