-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();
};
}
}
那么什么是'AssociatedObject'应该是再?这里没有定义。 – DavidG
你确定这是确切的源代码?开始时的“班级”似乎很奇怪。 – mjwills
是的,其实我从这个链接得到了这段代码:https://stackoverflow.com/questions/4784240/a-draggable-popup-control-in-wpf –