我在真正复杂的项目中发现了这个问题,但它可以通过简单的测试项目重现。所以我有测试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相同的故事 如果要在父网格上评论投影 - 一切正常。
针对该问题的修复或至少解决方法的任何想法?
答案 0 :(得分:1)
它在PC版本中按预期工作,但滚动条在移动(Windows Phone)版本中不起作用。
根据设计,如果scrollviewer
(此处为投影变换)的全局变换无法表示为矩阵变换,则处理触摸互动的基础层无法使用。
因此,如果您只需要应用GlobalOffsetY
或GlobalOffsetX
。我建议你改用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>