private void LeftMouseButtonDowm_Body(object sender, MouseButtonEventArgs e)
{
if (e.ClickCount > 1 && _adornedElement is TreeView)
{
TreeView ctrl = _adornedElement as TreeView;
_body.IsHitTestVisible = false;
ctrl.IsHitTestVisible = true;
Keyboard.Focus(ctrl);
return;
}
_startLocation = new Point((double)_adornedElement.GetValue(Canvas.LeftProperty), (double)_adornedElement.GetValue(Canvas.TopProperty));
_startHeight = (double)AdornedElement.GetValue(FrameworkElement.HeightProperty);
_startWidth = (double)AdornedElement.GetValue(FrameworkElement.WidthProperty);
_dragLocation = Mouse.GetPosition(_canvas);
_isDraging = true;
(sender as Rectangle).CaptureMouse();
}
private void MouseMove_Body(object sender, MouseEventArgs e)
{
if (_isDraging)
{
Point parentCanvas = Mouse.GetPosition(_canvas);
if (parentCanvas.X >= 15)
{
_adornedElement.SetValue(Canvas.LeftProperty, _startLocation.X + (parentCanvas.X - _dragLocation.X));
_adornedElement.SetValue(Canvas.TopProperty, _startLocation.Y + (parentCanvas.Y - _dragLocation.Y));
}
}
}
textbox套了装饰器,就是body,现在在canvas里面拖动这个body,但是body不能移到canvas外面,上面的代码能让它在整个画面随意移动,有没有大神有没有比较好的思路,谢谢