如何连接WPF鼠标事件?

时间:2012-01-06 15:31:35

标签: wpf mouseevent

我是WPF新手。在我看的WPF示例代码中,有一个鼠标事件处理程序如下:

namespace Recipe_04_15
{
    public class DragCanvasControl : Canvas
    {
        ...
        static DragCanvasControl()
        {
            DefaultStyleKeyProperty.OverrideMetadata(typeof(DragCanvasControl),
                new FrameworkPropertyMetadata(typeof(DragCanvasControl)));
        }
        protected override void OnPreviewMouseLeftButtonDown(MouseButtonEventArgs e)
        {
            ...
        }
...

我不明白的是OnPreviewMouseLeftButtonDown方法如何连接到鼠标按钮事件。 XAML代码没有指定事件?

2 个答案:

答案 0 :(得分:2)

该功能已在UIElement类中连线 http://msdn.microsoft.com/en-us/library/system.windows.uielement.previewmouseleftbuttondown.aspx

既然你从画布继承,你也会从更深层次的UIElement继承 DragCanvasControl => Canvas => Panel => FrameworkElement =>的UIElement

通过覆盖UIElement中的OnPreviewMouseLeftButtonDown,您可以访问此事件。

答案 1 :(得分:0)

如果它不在XAML中,则必须将其附加在代码隐藏中。如果不是,则不会执行该方法。

请注意,您实际上是在寻找PreviewMouseLeftButtonDown事件,而不是Click或MouseDown。