我一直试图让一个画布有两层。一层水平滚动,第二层位于顶部并垂直滚动。 在第二层(垂直滚动的层)中,我堆叠了一个透明网格(或面板)和一个带有信息的面板,这样我们就可以看到第一层在这一层下面,如果我们向上滚动,我们就会得到以下信息:出现在屏幕上。
这就像魅力一样,只是如果我水平滚动,第一层(下面的那个)根本不会滚动。如果我们滑动透明网格,如果垂直滚动不滚动,则不成问题。
这是我的xaml
<Canvas x:Name="Canvas">
<local:MyPage x:Name="PageContainer"/> <!--This one scrolls horizontally -->
<ScrollViewer
HorizontalScrollBarVisibility="Disabled"
VerticalScrollBarVisibility="Hidden"
Height="{Binding ActualHeight, ElementName=UcRoot}">
<!--This one scrolls vertically and appears on top -->
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid Height="600" Width="600" Grid.Row="0" x:Name="TransparentGrid" ></Grid>
<Grid x:Name="Information" Background="Azure" Height="1200" Width="600" Grid.Row="1">
</Grid>
</Grid>
</ScrollViewer>
</Canvas>
我在透明网格上尝试了很多东西(将宽度设置为1,将其移除并将信息网格边距设置为顶部为1200),但网格捕获事件并且不会转发到我的页面。
我可以得到一些帮助吗?
谢谢!
答案 0 :(得分:1)
您必须将背景设置为'Transparent'
到网格才能点按它并滑动..您可能需要使用以下属性:
ScrollViewer.VerticalScrollMode
ScrollViewer.HorizontalScrollMode
虽然这是我建议的解决方案:
<ScrollViewer ScrollViewer.VerticalScrollMode="Enabled" ScrollViewer.HorizontalScrollMode="Disabled" >
<Grid >
<TextBlock Text="contnet" />
</Grid>
</ScrollViewer>
<ScrollViewer ScrollViewer.VerticalScrollMode="Disabled" ScrollViewer.HorizontalScrollMode="Enabled" >
<Grid Background="Transparent">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid Height="600" Width="600" Grid.Row="0" x:Name="TransparentGrid" Background="Transparent" ></Grid>
<Grid x:Name="Information" Background="Azure" Height="1200" Width="600" Grid.Row="1"/>
</Grid>
</ScrollViewer>
</Canvas>