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 ハンドラーをビジュアル ツリー階層の 1 つ上のコントロールに移動すると、hitCount は最初は正しく、その後は 0 になります。問題を再現するために、同様の XAML レイアウトでテスト プロジェクトをセットアップしましたが、毎回正しく動作します。したがって、VisualTreeHelper の動作を妨げている悪いことをしたかどうかはわかりません。これをデバッグする方法がよくわかりません。この関数が結果を返さない原因は何ですか?