Эффективное вычисление ширины текста

Мне нужно вычислить ширину столбца с большим количеством строк (функция AutoSize столбца). Использование Canvas.TextWidth слишком медленное.

Текущее решение: В моем текущем решении используется класс измерителя текста, который один раз создает таблицу поиска для фиксированного алфавита, а затем очень быстро вычисляет ширину данной строки, складывая ширину символов, извлеченных из таблицы поиска. Для символов, не содержащихся в таблице поиска, используется средняя ширина символа (также вычисляется один раз).

Проблема: Это хорошо работает для европейских языков, но не для азиатских языков.

Вопрос: Как лучше всего решить эту проблему? Как можно реализовать такую ​​функцию AutoSize без относительно медленных функций Canvas и без зависимости от определенного алфавита?

Спасибо за любую помощь.

12
задан Bruce McGee 27 September 2011 в 12:35
поделиться