J'ai une toile (ZoomableCanvas) qui implémente le zoom et a des éléments enfants. J'essaie d'obtenir la position relative d'un élément enfant lors d'un zoom avant, afin d'afficher des informations étendues sur celui-ci.Position relative avec TransformToAncestor
<Canvas x:Name="CanvasContainer" Width="1500" Height="780">
<ZoomableCanvas ApplyTransform="false" Loaded="ZoomableCanvas_Loaded" x:Name="ShareCanvas" Width="1500" Height="780" MinWidth="1500" MinHeight="780" Grid.Row="0" Grid.Column="0" />
</Canvas>
code derrière:
Canvas main = touched.FindVisualParent<Canvas>(); //Finds "CanvasContainer"
Point relativePoint = touched.TransformToAncestor(main).Transform(new Point(0, 0));
double canvasTop = Canvas.GetTop(touched);
Mais ici canvasTop = relativePoint.Y avant le zoom? Est-ce que je l'utilise incorrectement? Ne correspond-il pas au visuel parent et donne-t-il un point relatif?
Pourquoi les 'Grid.Row' et' Grid.Column' sur le ZoomableCanvas? – Clemens
Restes d'un changement. Merci d'avoir signalé ce peu de négligence. –