簡體   English   中英

如何使Windows 8 Metro scrollviewer響應鼠標滾輪?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM