J'essaie de tester un tas de UserControls sur un canevas. Je ne veux pas que HitTest() marche tout au long de l'arborescence visuelle, donc j'utilise le FilterCallback pour m'assurer que je ne fais que tester le UserControl.Problème avec VisualTreeHelper.HitTest dans WPF
Mon problème est que le UserControl ne frappe jamais, il devrait, mais ce n'est pas le cas. Si j'utilise le FilterCallback, je reviens qu'il n'a rien touché. Si je laisse le HitTest parcourir l'arborescence visuelle, il ignore le UserControl.
Voici un code:
<Canvas x:Name="Container">
<UserControl>
<Grid>
<Rectangle />
</Grid>
</UserControl>
<UserControl>
<Grid>
<Rectangle />
</Grid>
</UserControl>
</Canvas>
...
VisualTreeHelper.HitTest(Container, OnFilter, OnResult, myPoint);
...
private void OnResult(DependencyObject o)
{
//I'll get the Rectangle here, but never the userControl
}
private void OnFilter(DependencyObject o)
{
//I will get the UserControl here, but even when I do nothing more than continue, it will not trigger a visualHit. But the child rectangle will.
}
Peut confirmer que cela fonctionne. Devrait être la réponse acceptée car c'est mieux que de chercher dans l'arbre visuel manuellement. – Lennart