WPF ScrollViewer / обработчик событий мыши Canvas - PullRequest
2 голосов
/ 16 декабря 2011

Я создал следующий элемент управления:

<UserControl x:Class="FooBar.AnnotationControl"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Height="400" Width="500" >
    <ScrollViewer Height="400" Width="500">
        <Canvas Height="400" Width="500" Name="ctlCanvas" MouseLeftButtonDown="MouseLeftButtonDownHandler" >
            <Canvas.RenderTransform>
                <ScaleTransform x:Name="ZoomTransform" />
            </Canvas.RenderTransform>
        </Canvas>
    </ScrollViewer>
</UserControl>

namespace FooBar
{

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

        }

        private void MouseLeftButtonDownHandler( object sender, MouseButtonEventArgs args)
        {
           //Do Something
        }

    }

}

, когда я нажимаю на холст, я не достигаю точек останова в MouseLeftButtonDownHandler.Я даже прикрепляю этот обработчик к ScrollViewer и получаю тот же результат.Есть идеи, что здесь происходит?

1 Ответ

1 голос
/ 16 декабря 2011

Фоном по умолчанию для холста является прозрачный, что позволяет проходить через него тесты попадания.Чтобы ваш Canvas регистрировался на HitTests, присвойте ему цвет фона.

<Canvas Background="White" ... />
...