我一直在嘗試使用兩層的一個畫布。一層橫向滾動,另一層橫向滾動,垂直滾動。 在第二層(垂直滾動的那一層)中,我堆疊了一個透明的網格(或面板)和一個包含信息的面板,以便我們可以看到第一層是在這個層下,如果我們向上滾動,出現在屏幕上。將事件路由到當前元素下的元素
這就像一個魅力,只是如果我水平滾動,第一層(下一個)根本不滾動。如果我們滑動透明網格,如果垂直滾動不滾動,則不會出現問題。
這是我的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例如)但網格捕獲事件和不會轉發到我的頁面。
我可以得到一些幫助嗎?
謝謝!
如何設置'的ScrollViewer保證金= 「0,0,0,25」'?你的圖層是透明的,所以這可以是好的 – Sakura
這是行不通的。信息面板需要佔用畫布的全部寬度,並且它也應該響應手指滑動 – Daniel
然後,您需要[handle](http://stackoverflow.com/a/12662362/1560697)頂部的「ManipulationDelta」事件層。如果用戶左/右擦,相應地滾動底層 – Sakura