Колесо мыши не работает должным образом с ScrollViwer - PullRequest
0 голосов
/ 05 августа 2011

У меня проблема с прокруткой с помощью колесика мыши в средстве прокрутки. Похоже, что если курсор мыши находится над областью полосы прокрутки, которая не содержит никакого элемента пользовательского интерфейса, прокрутка не работает.

В прикрепленном примере я заполняю средство просмотра прокрутки прямоугольником с большими полями. Когда курсор мыши находится над прямоугольником, прокрутка работает, но когда он находится над полем, прокрутка не происходит.

Есть идеи, как это исправить?

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 Ответ

3 голосов
/ 05 августа 2011

Из-за ошибки, которая у меня недавно возникла, может быть решение добавить фон в просмотрщик. С прозрачным фоном Silverlight может подумать, что мышь находится на заднем плане, а не прокрутка. Я не уверен в этом ответе, но это было бы быстро и легко проверить.

Причина, по-видимому, в этом (я думаю), потому что контейнер в значительной степени должен быть квадратным. Поэтому, если у вас есть две вещи, накладывающиеся друг на друга, когда контейнеры перекрываются, а содержимое - нет, это позволит вам взаимодействовать с тем, с кем вы на самом деле находитесь, а не с тем, что сверху.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...