2017-07-06 149 views
-1

我在Wpf中实现了Popup控件。 我想做出弹出式拖拽功能,并找到下面写的一些代码。 但我得到编译时错误“AssociatedObject”未找到,行为未找到。 这里是我的代码:Geeting编译时间错误

class class MouseDragPopupBehavior : Behavior<Popup> 
{ 
    private bool mouseDown; 
    private Point oldMousePosition; 

    protected override void OnAttached() 
    { 
     AssociatedObject.MouseLeftButtonDown += (s, e) => 
     { 
      mouseDown = true; 
      oldMousePosition = AssociatedObject.PointToScreen(e.GetPosition(AssociatedObject)); 
      AssociatedObject.Child.CaptureMouse(); 
     }; 
     AssociatedObject.MouseMove += (s, e) => 
     { 
      if (!mouseDown) return; 
      var newMousePosition = AssociatedObject.PointToScreen(e.GetPosition(AssociatedObject)); 
      var offset = newMousePosition - oldMousePosition; 
      oldMousePosition = newMousePosition; 
      AssociatedObject.HorizontalOffset += offset.X; 
      AssociatedObject.VerticalOffset += offset.Y; 
     }; 
     AssociatedObject.MouseLeftButtonUp += (s, e) => 
     { 
      mouseDown = false; 
      AssociatedObject.Child.ReleaseMouseCapture(); 
     }; 
    } 
} 
+0

那么什么是'AssociatedObject'应该是再?这里没有定义。 – DavidG

+0

你确定这是确切的源代码?开始时的“班级”似乎很奇怪。 – mjwills

+0

是的,其实我从这个链接得到了这段代码:https://stackoverflow.com/questions/4784240/a-draggable-popup-control-in-wpf –

回答

0

你缺少参考System.Windows.Interactivity

using System.Windows.Interactivity;在你班上名列前茅。您还需要在项目中添加此参考。

此外,你需要解决您的class声明,目前它是:

class class ...

应该

public class ...