Как показать что-нибудь (например, информацию), например, всплывающее окно в соответствии с местом курсора? - PullRequest
1 голос
/ 18 ноября 2011

Я хочу показать некоторую информацию в textBox точно в месте курсора. Не так, как в intellisense в C #: он появляется где "."вставлено. Пожалуйста, помогите. На изображении вы видите, что оно отображается в соответствии с точкой ("."), но я хочу, чтобы оно отображалось в соответствии с тем, что я упомянул на рисунке (извините, мой английский плохой, и я не смог найти, что это значит.)

enter image description here

Ответы [ 3 ]

2 голосов
/ 18 ноября 2011

Что вы можете сделать, когда пользователь нажимает клавишу внутри текстового поля, обрабатывает событие OnKeyDown, вычисляет текущую позицию курсора и перерисовывает всплывающий элемент управления. Этот всплывающий элемент управления может быть определен вами как пользовательский элемент управления.

Редактировать: как указал jberger, вы также можете реализовать обработчик OnSelectionChanged для обработки любого изменения курсора.

1 голос
/ 18 ноября 2011

Вы можете использовать всплывающее окно: http://msdn.microsoft.com/en-us/library/system.windows.controls.primitives.popup.aspx

По сути, это окно без рамки, отображаемой над другим содержимым.

Назначьте PlacementMode.Mouse свойству Placement.Есть несколько других свойств для изменения позиции всплывающего окна.

0 голосов
/ 18 ноября 2011

Вы также можете использовать AdornerClass для создания своего собственного всплывающего окна. Проверьте эту ссылку: http://msdn.microsoft.com/en-gb/library/system.windows.documents.adorner.aspx Если вы еще не использовали класс Adorner, вы можете начать с: http://msdn.microsoft.com/en-us/library/ms753340.aspx

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