自己做了一个 矩形的自定义控件。。 实现了拖拽的功能。。
但有一点 还没有解决 望各位高手能解答一下。拖拽过程是这样的:
当鼠标压下时 会出现一个 透明的矩形副本, 鼠标移动矩形副本也随之移动, 放开鼠标矩形本体移动到矩形副本的位置上问题是这样的
当拖拽矩形时,透明的矩形副本不是产生自矩形本体的左上角,而是产生自我鼠标点击的那个位置?
这个 问题我百思不得其解 大家帮忙看看一下是 鼠标压下的代码 if (e.LeftButton != MouseButtonState.Pressed)
{
return;
} m_IsDragMove = true;
m_DragMouseCtrl = (Shape)e.Source;
VisualBrush vBrush = new VisualBrush(m_DragMouseCtrl); m_DragRect.Width = m_DragMouseCtrl.Width;
m_DragRect.Height = m_DragMouseCtrl.Height;
Canvas.SetLeft(m_DragRect, Canvas.GetLeft(m_DragMouseCtrl));
Canvas.SetTop(m_DragRect, Canvas.GetTop(m_DragMouseCtrl)); m_DragRect.Fill = vBrush;
m_DragRect.Visibility = Visibility.Visible; cvs.CaptureMouse();
但有一点 还没有解决 望各位高手能解答一下。拖拽过程是这样的:
当鼠标压下时 会出现一个 透明的矩形副本, 鼠标移动矩形副本也随之移动, 放开鼠标矩形本体移动到矩形副本的位置上问题是这样的
当拖拽矩形时,透明的矩形副本不是产生自矩形本体的左上角,而是产生自我鼠标点击的那个位置?
这个 问题我百思不得其解 大家帮忙看看一下是 鼠标压下的代码 if (e.LeftButton != MouseButtonState.Pressed)
{
return;
} m_IsDragMove = true;
m_DragMouseCtrl = (Shape)e.Source;
VisualBrush vBrush = new VisualBrush(m_DragMouseCtrl); m_DragRect.Width = m_DragMouseCtrl.Width;
m_DragRect.Height = m_DragMouseCtrl.Height;
Canvas.SetLeft(m_DragRect, Canvas.GetLeft(m_DragMouseCtrl));
Canvas.SetTop(m_DragRect, Canvas.GetTop(m_DragMouseCtrl)); m_DragRect.Fill = vBrush;
m_DragRect.Visibility = Visibility.Visible; cvs.CaptureMouse();
会出现一个半透明的Image,比如Image2 跟随你得鼠标移动,是么?你得问题是,你一点Image 发现 Image2首次出现的位置,不是Image的位置,而是鼠标位置,像瞬间移动一样?
是这个情况么?