鼠标滚轮无法与ScrollViewer一起正常工作

时间:2011-08-05 16:06:36

标签: silverlight silverlight-4.0

我在滚动查看器中使用鼠标滚轮滚动时遇到问题。 似乎如果鼠标光标位于滚动条的不包含任何ui元素的区域上,则滚动不起作用。

在附加示例中,我使用具有大边距的矩形填充滚动查看器。当鼠标光标在矩形上方滚动时,但当它超出边距时,不会发生滚动。

知道如何解决这个问题吗?

XAML:

<UserControl x:Class="SilverlightApplication229.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"
    mc:Ignorable="d"
    d:DesignHeight="300" d:DesignWidth="400">

    <Grid x:Name="LayoutRoot" Background="White">

        <ScrollViewer VerticalScrollBarVisibility="Auto">
            <StackPanel x:Name="MyPanel" />
        </ScrollViewer>

    </Grid>
</UserControl>

代码:

public partial class MainPage : UserControl
{
    public MainPage()
    {
        InitializeComponent();

        for (int i = 0; i < 100; i++)
        {
            Rectangle rect = new Rectangle { Width = 100, Height = 100, Fill = new SolidColorBrush(Colors.Red), Margin = new Thickness(50) };
            MyPanel.Children.Add(rect);
        }
    }
}

谢谢!

1 个答案:

答案 0 :(得分:3)

关于我最近遇到的错误,解决方案可能是向滚动查看器添加背景。使用透明背景Silverlight可能会认为鼠标位于背景而不是滚动查看器。我不确定这个答案,但它会快速而容易地进行测试。

原因可能就是这种情况(我认为),因为容器几乎必须是方形的。因此,如果你有两个重叠的东西,容器重叠,但内容不重叠,这将允许你与你实际结束的东西互动,而不是顶部的那个。