Мне нужно знать положение каретки в TextBox, чтобы я мог всплыть контекстное меню рядом с ним. Как мне найти его расположение (не индекс символа)?
Найдена эта статья , описывающая, как сделать то, что мне нужно сделать. Оказывается, вы можете установить PlacementTarget для текстового поля и PlacementRectangle из GetRectFromCharacterIndex, и он будет работать.
Проверьте этот пример .
Я думаю, вам нужно будет получить индекс символа в каратах и затем превратить его в координату пикселя, вызвав TextRenderer.MeasureText () для текста слева от карата. Это, очевидно, сложнее, если ваш TextBox многострочный. Это так?