2012-12-12 69 views
3

我有網頁與電網和ScrollViewer中:ScrollViewer中的Metro應用 - 通過觸摸滾動和辦理其他手勢

<Grid x:name="mainGrid"> 
    ... 
    <ScrollViewer Name="mainScroller" ScrollViewer.HorizontalScrollBarVisibility="Visible" ScrollViewer.HorizontalScrollMode="Enabled"> 
    ... 
    </ScrollViewer> 
    ... 
</Grid> 

我想要做的姿態處理垂直觸摸移動(用手指向上移動),但我想保留通過橫向滾動來滾動mainScroller內容也一樣。

我試圖增加對mainGrid在ManipulationCompleted =「Grid_ManipulationCompleted」:

private void Grid_ManipulationCompleted(object sender, ManipulationCompletedRoutedEventArgs e) 
{ 
    if (e.Cumulative.Translation.Y < -50 && e.Velocities.Linear.Y<1000) 
    { 
    ...make some action... 
    } 
} 

最終的效果是,如果我用ManipulationMode =「平移Y」爲mainGrid,然後垂直觸摸移動工作,但水平滾動條沒有了,當我不使用它時,水平滾動工作,但垂直觸摸不移動。是否有可能使這兩個功能功能? 對不起,我的英文。

+2

你爲什麼不設置ManipulationMode爲 '所有' .. – Tirumudi

+0

我試過了,但它是相同的。如果我只在mainGrid上添加ManipulationMode,我可以滾動,但操作事件僅在scrollViewer中引發。如果我在mainScroller或其子元素上添加ManipulationMode,那麼我無法滾動。 – user1897730

回答

0

它可能有助於理解您的場景,但通常情況下,您不應該創建可能與內置手勢發生衝突的新手勢,就像您提議的那樣。

約翰·維澤
微軟 - 高級技術專家
[email protected]
@johnwiese