我在滚动查看器中使用鼠标滚轮滚动时遇到问题。 似乎如果鼠标光标位于滚动条的不包含任何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);
}
}
}
谢谢!
答案 0 :(得分:3)
关于我最近遇到的错误,解决方案可能是向滚动查看器添加背景。使用透明背景Silverlight可能会认为鼠标位于背景而不是滚动查看器。我不确定这个答案,但它会快速而容易地进行测试。
原因可能就是这种情况(我认为),因为容器几乎必须是方形的。因此,如果你有两个重叠的东西,容器重叠,但内容不重叠,这将允许你与你实际结束的东西互动,而不是顶部的那个。