2011-08-05 5 views
0

スクロールビューアでマウスホイールを使用してスクロールする際に問題があります。 マウスカーソルがui要素を含まないスクロールバーの領域にあると、スクロールが機能しないようです。ScrollViwerでマウスホイールが正常に動作しない

添付の例では、スクロールビューアーに大きな余白を持つ四角形を塗りつぶしています。マウスカーソルが四角形の上にある場合、スクロールは機能しますが、マージンを超えるとスクロールは発生しません。

これを修正する方法はありますか?

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

私が最近持っていたエラーの解決策は、スクロールビューアにバックグラウンドを追加することでした。透明な背景では、Silverlightはマウスがスクロールビューアではなく背景にあると考えるかもしれません。私はこの答えは確実ではありませんが、テストするのが速く簡単です。 – StephenT

答えて

3

私が最近持っていたエラーの解決策は、スクロールビューアにバックグラウンドを追加することでした。透明な背景では、Silverlightはマウスがスクロールビューアではなく背景にあると考えるかもしれません。私はこの答えは確実ではありませんが、テストするのが速く簡単です。

コンテナがかなり正方形でなければならないので、これがおそらく理由は(私が思う)です。だから、コンテナが重なっているにもかかわらず、内容が違う2つの物が重なっていると、あなたは上にあるものではなく、実際に上にあるものとやりとりすることができます。

+0

うわー、ありがとう、私のために働く... – Marko

関連する問題