Как получить x и y позицию элемента, чтобы новый элемент управления помещался рядом с ним в приложении WPF C # - PullRequest
0 голосов
/ 23 сентября 2018

Я хочу показать окно автозаполнения рядом с текстовым полем.У меня есть много текстовых полей в форме.Все эти текстовые поля являются дочерними элементами стековой панели.Поэтому, когда пользователь щелкает текстовое поле, под ним должно появиться поле автозаполнения.

Я создал блок автозаполнения, добавив текстовые блоки на панель стека.Эта панель стека имеет ширину 150 и высоту авто.Название панели стека - autoCompleteBox.

Я хочу поместить это поле автозаполнения рядом с текстовым полем в форме.Чтобы переместить поле автозаполнения ниже выделенного текстового поля, я использую 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);

Но он также не дает желаемого результата.(В обоих случаях autoCompleteBox находится далеко от целевого текстового поля)

Я хочу разместить поле автозаполнения чуть ниже текущего текстового поля.

1 Ответ

0 голосов
/ 23 сентября 2018

Поместите поле автозаполнения в Popup и задайте для свойства PlacementTarget целевое текстовое поле.

WPF Popup

PlacementTarget свойство

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...