WPF ScrollViewer/Canvas鼠标事件处理程序



我已经创建了以下控件:

<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上并得到相同的结果。知道这是怎么回事吗?

画布的默认背景是透明的,它允许命中测试通过它。为了让你的Canvas注册HitTests,给它一个背景色。

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

最新更新