我是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代码没有指定事件?
答案 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。