none
wpf AdornerLayer 偶尔出现残留,在界面上面无法清除 RRS feed

  • 问题

  • 在拖放的时候,需要用AdornerLayer显示拖放效果,但是偶尔出现拖放后该效果还保留在界面上,请高手指教一下是什么原因?以下是拖放实现的部分代码:

                adorner = new DragDropAdorner(treeViewItem);
                adornerLayer = AdornerLayer.GetAdornerLayer(collect);
                adornerLayer.Add(adorner);
                DataObject dataObject = new DataObject(dragTreeItem.Clone());

                System.Windows.DragDrop.DoDragDrop(tree, dataObject, DragDropEffects.Move);

                startHoverTime = DateTime.MinValue;
                hoveredItem = null;
                if (adorner != null)
                {
                    adornerLayer.Remove(adorner);
                }
                adorner = null;
                adornerLayer = null;

    2019年1月23日 13:40

全部回复

  • Hi Johar7766,

    根据你的描述, 你是偶尔才出现拖放后效果还保留在界面上的情况的, 你可以先试着修改下面的代码,看看是否有效果。

      adorner = new DragDropAdorner(treeViewItem);
                adornerLayer = AdornerLayer.GetAdornerLayer(collect);
                adornerLayer.Add(adorner);
                DataObject dataObject = new DataObject(dragTreeItem.Clone());
    
                System.Windows.DragDrop.DoDragDrop(tree, dataObject, DragDropEffects.Move);
    
                startHoverTime = DateTime.MinValue;
                hoveredItem = null;
                adornerLayer.Remove(adorner);
               
              
                adornerLayer = null;

    如果还是遇到相同的问题的话, 请提供一下你的完整代码, 我将尝试着在我这彼岸重现。

    Best Regards,

    Cherry


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2019年1月24日 6:24
    版主
  • WPF中的拖放 楼主可以参考这个例子写你的拖放功能
    2019年1月31日 15:30