次のコード行を使用して、TransformToVisualメソッドを介してユーザーコントロールの位置を取得しようとしています。
this.TransformToVisual(ParentElement).Transform(new Point());
コントロールがXAMLで定義されている場合、座標は問題ありません。しかし今、私はこのように動的にコントロールを定義したいと思います:
stackPanel.Children.Add(new Control());
座標がシフトされ、TransformToVisualメソッドはマージンを無視して整列します(スタックパネルの左上隅を返します)。
XAML階層は次のとおりです。
<Grid x:Name="ParentElement">
<StackPanel>
<StackPanel>
<Border>
<StackPanel>
<TextBlock />
<StackPanel x:Name="stackPanel" />
</StackPanel>
</Border>
</StackPanel>
</StackPanel>
</Grid>
だから私の質問は:座標を再び正しく取得する方法はありますか?
ありがとう、kwitee