4

使用 C# 开发 Metro 风格的应用程序。我有一个继承自 Grid 的自定义控件。MyGrid 包含一些其他自定义控件。我正在尝试对 PointerReleased 处理程序中的这些控件进行命中测试:

void MyGrid_PointerReleased(object sender, PointerRoutedEventArgs e)
{
    PointerPoint pt = e.GetCurrentPoint(this);
    var hits = VisualTreeHelper.FindElementsInHostCoordinates(pt.Position, this);
    int breakhere = hits.Count();
}

执行此代码后,hitCount 为 0。如果我将 PointerReleased 处理程序在可视树层次结构中移到更高的一个控件,则 hitCount 第一次正确,之后为 0。我设置了一个具有类似 XAML 布局的测试项目,以尝试重现该问题,并且每次都能正常工作。所以我不确定我做了什么坏事阻止了 VisualTreeHelper 工作。我不太确定如何进行调试。有什么想法会导致此函数不返回任何结果吗?

4

0 回答 0