Windows phone 应用投影后 ScrollViewer 不工作

Windows phone ScrollViewer doesn't work when projection is applied

我在真正的复杂项目中发现了这个问题,但它可以通过简单的测试项目重现。所以我有测试 UWP 页面

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
        <Grid
            VerticalAlignment="Top"
            HorizontalAlignment="Left"
            Height="100">
            <Grid.Projection>
                <PlaneProjection GlobalOffsetY="100"/>
            </Grid.Projection>
            <ScrollViewer
                VerticalScrollMode="Enabled"
                VerticalScrollBarVisibility="Visible">
                <StackPanel>
                    <Button Content="1"/>
                    <Button Content="2"/>
                    <Button Content="3"/>
                    <Button Content="4"/>
                    <Button Content="5"/>
                    <Button Content="6"/>
                    <Button Content="7"/>
                </StackPanel>
            </ScrollViewer>
        </Grid>
    </Grid>

它在 PC 版本中按预期工作,但滚动条在移动 (windows phone) 版本中不起作用。同样的故事 Windows Phone 8.1 如果在父网格上评论投影 - 一切正常。

有任何修复或至少解决该问题的想法吗?

it works as expected in PC version, but scroller doesn't work in mobile (windows phone) version.

根据设计,如果scrollviewer(此处为投影变换)的全局变换不能表示为矩阵变换,则处理触控交互无法使用

所以如果你只需要申请GlobalOffsetYGlobalOffsetX。我建议您改为使用 TranslateTransform。它不会阻止 ScrollViewer 滚动:

<Grid
    VerticalAlignment="Top"
    HorizontalAlignment="Left"
    Height="500" Width="200">
    <Grid.RenderTransform>
        <TranslateTransform Y="100"/>
    </Grid.RenderTransform>
    <ScrollViewer
        VerticalScrollMode="Enabled"
        VerticalScrollBarVisibility="Visible">
        <StackPanel>
            <Button Content="1"/>
            <Button Content="2"/>
            <Button Content="3"/>
            <Button Content="4"/>
            <Button Content="5"/>
            <Button Content="6"/>
            <Button Content="7"/>
        </StackPanel>
    </ScrollViewer>
</Grid>