如何使用Silverlight 4 ScrollViewer使鼠标滚轮正常工作

时间:2010-06-07 03:29:14

标签: silverlight

当我在Silverlight 4中使用以下xaml时,ScrollViewer将无法识别鼠标滚轮,除非我在滚动条拇指上单击一次,并将鼠标悬停在滚动条上,同时转动鼠标滚轮。

<Grid x:Name="LayoutRoot" Background="White">
    <ScrollViewer>
        <StackPanel Name="stackPanel1">
            <Button Content="Button 1" Width="150" />
            <Button Content="Button 2" Width="150" Margin="0,20,0,0" />
            <Button Content="Button 3" Width="150" Margin="0,20,0,0" />
            <Button Content="Button 4" Width="150" Margin="0,20,0,0" />
            <Button Content="Button 5" Width="150" Margin="0,20,0,0" />
            <Button Content="Button 6" Width="150" Margin="0,20,0,0" />
            <Button Content="Button 7" Width="150" Margin="0,20,0,0" />
        </StackPanel>
    </ScrollViewer>
</Grid>

有没有其他人经历过这种情况,是否有任何解决方法?

2 个答案:

答案 0 :(得分:17)

此处的分辨率似乎是在ScrollViewer上设置背景画笔。在我的情况下,我选择使用透明刷。它似乎与命中测试有关,因此没有画笔的控件永远不会收到任何鼠标事件。

<ScrollViewer Background="Transparent">

答案 1 :(得分:0)

从此处http://silverlight.codeplex.com/

安装Silverlight工具包

添加对 System.Windows.Controls.Navigation System.Windows.Controls.Toolkit dll

的引用

修改代码,将导航名称空间添加到UserControl标记,如下所示

<UserControl x:Class="SilverlightApplication1.MainPage"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
      xmlns:navigation="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation"
      mc:Ignorable="d"
      d:DesignHeight="300" d:DesignWidth="400">

将StackPanel包裹在帧标签中,如此

<ScrollViewer x:Name="SV"  >
        <navigation:Frame>
            <StackPanel Name="stackPanel1">
            <Button Content="Button 1" Width="150" />

在后面的代码中,添加以下行

    public MainPage()
    {
        InitializeComponent();
        SV.SetIsMouseWheelScrollingEnabled(true);

参考:http://diptimayapatra.wordpress.com/2009/12/08/mouse-wheel-scroll-for-scrollviewer-in-silverlight-3/