![](/img/trans.png)
[英]How to scroll smoothly ScrollViewer in Windows 8 Metro App?
[英]How can I make a Windows 8 Metro scrollviewer respond to mousewheel?
我目前正在使用Metro和C#為Windows 8編寫應用程序。 在我的應用程序中,我結合使用scrollviewer和gridview來顯示我的數據。 但是我的問題是,如何使它可以使用鼠標滾輪滾動?
在我的搜索中,我發現System.Windows.Input中的MouseWheelParameters,但是當我嘗試使用get_pageTranslation時,出現了一個錯誤,指出我不能顯式使用get方法。
WinRT中的ScrollViewer確實可以通過鼠標滾輪使用。 但是,在您的方案中,實際上有兩個ScrollViewer,一個是您創建的,另一個是在GridView模板中的。 這兩個沖突。
為了解決此問題,我從GridView模板中刪除了ScrollViewer,如下所示:
<GridView.Template>
<ControlTemplate>
<ItemsPresenter />
</ControlTemplate>
</GridView.Template>
這似乎可行,但可能還有其他不良副作用...
ScrollViewer中有單向滾動的默認樣式
<Style x:Key="HorizontalScrollViewerStyle" TargetType="ScrollViewer">
<Setter Property="HorizontalScrollBarVisibility" Value="Auto"/>
<Setter Property="VerticalScrollBarVisibility" Value="Disabled"/>
<Setter Property="ScrollViewer.HorizontalScrollMode" Value="Enabled" />
<Setter Property="ScrollViewer.VerticalScrollMode" Value="Disabled" />
<Setter Property="ScrollViewer.ZoomMode" Value="Disabled" />
</Style>
<Style x:Key="VerticalScrollViewerStyle" TargetType="ScrollViewer">
<Setter Property="HorizontalScrollBarVisibility" Value="Disabled"/>
<Setter Property="VerticalScrollBarVisibility" Value="Auto"/>
<Setter Property="ScrollViewer.HorizontalScrollMode" Value="Disabled" />
<Setter Property="ScrollViewer.VerticalScrollMode" Value="Enabled" />
<Setter Property="ScrollViewer.ZoomMode" Value="Disabled" />
</Style>
使用這些樣式可使用鼠標滾輪滾動。 您可能需要單擊以將焦點放在ScrollViewer上,以便它可以移動。
<ScrollViewer Style="{StaticResource HorizontalScrollViewerStyle}">
<StackPanel ... />
</ScrollViewer>
該“get_pageTranslation”其實是“ PageTranslation上MouseWheelParameters”屬性,你說訪問:
wheelParameters.PageTranslation
這個:
get_PageTranslation()
是實現PageTranslation屬性的方法的名稱,但是不能從C#或C ++應用程序訪問。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.