【问题标题】:Best method to find controls under a dropped usercontrol在删除的用户控件下查找控件的最佳方法
【发布时间】:2023-04-09 04:03:02
【问题描述】:

我正在尝试为用户控件实现拖放功能。

我已经设法通过使用 google 使其正常工作,但是,在删除控件时,我希望找到可能在或不在其下的所有类似类型的控件。

我目前的方法是检查每个控件,看看它是否在被删除的控件之下。但是我想知道是否有更好的方法,例如可以检查给定范围内的控件的查找控件功能?

【问题讨论】:

  • ¿你的意思是穿过逻辑树吗?
  • 如果我要知道逻辑树是什么,我的意思可能是遍历逻辑树。但正如我在帖子中所说的那样。我想找到与我放下控件的应用程序坐标相同的控件,而不必检查每个控件。

标签: silverlight drag-and-drop findcontrol


【解决方案1】:

你可以使用这个功能: http://msdn.microsoft.com/en-us/library/system.windows.media.visualtreehelper.findelementsinhostcoordinates%28v=vs.95%29.aspx

void xy_MouseMove(object sender, MouseEventArgs e)
    {
        if (m_IsDraging)
        {
            var res = VisualTreeHelper.FindElementsInHostCoordinates(e.GetPosition(null), elemenetWhichChildrenYouWantToCheck);
            //... check res for drop elements and react
        }
    }

或者你可以只在 MouseLeftButtonUp 事件中使用这个函数

【讨论】:

    【解决方案2】:

    嗯..

    • 首先,逻辑树是构成控件的子控件树。
    • 其次,检查this post

    【讨论】:

      猜你喜欢
      • 2010-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-27
      • 1970-01-01
      • 2018-08-06
      • 1970-01-01
      相关资源
      最近更新 更多