2009-06-02 4 views
0

Я ищу способ отображения и редактирования текста внутри настраиваемого окна (например, круга). Текст должен использовать как можно больше разрешенного пространства, поэтому простое позиционирование окна редактирования внутри формы не достаточно хорош.Пользовательское форматированное текстовое поле/редактирование в .net?

Требования:

  1. Учитывая GraphicsPath и строку, нарисовать текст в пути. Если текст переполняется, усекает или поднимает событие.
  2. Разрешить пользователю редактировать текст в GraphicsPath.
  3. Все знания стандартного текстового поля по отношению к слово breaks, word wrap, локализация.

Там, кажется, нет никаких элементов управления, соответствующих этим требованиям. Для этого, вероятно, требуются низкоуровневые API-интерфейсы компоновки строк, и я не могу найти документацию в MSDN о таких API в Windows.

Это инструмент высокой точности, поэтому мы готовы приложить все усилия, чтобы получить то, что нам нужно.

Заранее благодарен!

ответ

0

Поскольку вы упоминали, что это для высокоточного инструмента, я бы полностью избегал использования встроенных методов TextRenderer, так как они имеют проблемы с точностью и согласованностью.

Что касается формирования элемента управления редактированием, вы имеете в виду изменение его формы от прямоугольника до круга или управление по-прежнему занимает прямоугольную область? Если первое, вы можете изменить свойство Region или P/вызвать семейство SetWindowRgn.

+0

Спасибо. Re: форма, фактическая область редактирования должна быть настраиваемой. Видимый контур будет иметь эту форму. – bright

+0

@bright - мне кажется, вам придется делать это на 100% с нуля. Я бы посмотрел на визуализаторы PostScript или что-то в этом роде для вдохновения. – overslacked

Смежные вопросы