Windows电话ScrollViewer在应用投影时不起作用

时间:2016-08-06 08:44:34

标签: windows-phone-8.1 uwp projection scrollviewer

我在真正复杂的项目中发现了这个问题,但它可以通过简单的测试项目重现。所以我有测试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相同的故事 如果要在父网格上评论投影 - 一切正常。

针对该问题的修复或至少解决方法的任何想法?

1 个答案:

答案 0 :(得分:1)

  

它在PC版本中按预期工作,但滚动条在移动(Windows Phone)版本中不起作用。

根据设计,如果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>