如何获得元素的x和y位置,以便在WPF C#应用程序中在其附近放置一个新控件

如何获得元素的x和y位置,以便在WPF C#应用程序中在其附近放置一个新控件,c#,wpf,C#,Wpf,我想在焦点文本框附近显示自动完成框。我有许多文本框的形式存在。所有这些文本框都是堆栈面板的子项。因此,当用户在文本框中单击时,自动完成框应显示在文本框下方 我通过向堆栈面板添加文本块创建了自动完成框。此堆叠面板的宽度为150,高度为自动。堆栈面板的名称为autoCompleteBox 我想把这个自动完成框放在表单中聚焦的文本框附近。要在聚焦文本框下方移动autcomplete框,我将使用translate transform 问题是: 我无法找到聚焦文本框的确切x和y位置 到目前为止我做了什么

我想在焦点文本框附近显示自动完成框。我有许多文本框的形式存在。所有这些文本框都是堆栈面板的子项。因此,当用户在文本框中单击时,自动完成框应显示在文本框下方

我通过向堆栈面板添加文本块创建了自动完成框。此堆叠面板的宽度为150,高度为自动。堆栈面板的名称为autoCompleteBox

我想把这个自动完成框放在表单中聚焦的文本框附近。要在聚焦文本框下方移动autcomplete框,我将使用translate transform

问题是: 我无法找到聚焦文本框的确切x和y位置

到目前为止我做了什么

起初,我试图通过下面的代码从屏幕上找出它的x和y位置

Point pos=targetTextBox.PointToScreen(new Point(0d, 0d));
autoCompleteBox.RenderTransform= new TranslateTransform(pos.X, pos.Y);
但这并没有产生预期的结果

我还尝试了以下代码:

Point pos = targetTextBox.TranslatePoint(new Point(0, 0),this);
autoCompleteBox.RenderTransform= new TranslateTransform(pos.X, pos.Y);
但它也没有产生预期的结果。(两种情况下,自动完成框都远离目标文本框)


我想把自动完成框放在当前焦点文本框的正下方

将自动完成框放入
弹出窗口中
,并将
PlacementTarget
属性设置为目标文本框


谢谢。这正是我想要的。