Кстати сегодня последний день с модными цифрами :) 12.12.12 Ура товарищи! Больше такого совпадения не будет никогда!
В начале для решения задачи по расстановке переносов в словах был жестоко изнасилован гуугл. Оказалось, что для народа имеется модуль расстановки переносов на JavaScript. Hyphenator. Текущая версия взята из http://code.google.com/p/hyphenator/ Не долго думая, был сделан вольный перевод на C#.
Из всех языков, поддерживаемых Hyphenator-ом, оставлены: русский "ru" и британский английский "en-gb". Добавляются очень легко и просто копипастом из Hyphenator-а. (Языковые примитивы находятся в папке pattern) Смотрите исходники.
Все несколько не оптимизированно. Но работает, основная идея понятна :).
Для использования добавьте в проект languages.cs и hyphen.cs. Скачать
Hyphen ruhyp = new Hyphen("ru");
List<string> str = hyp.hyphenateWord("Перенос");
В результате в списке str получим набор строк
Что с этим делать решать уже вам. Пример применения на скриншоте... На КПК довольно много времени занимает конвертация паттернов в связанный список. Надо оптимизировать :)
Косяки в переносах имеются, но не критичные. Вероятно языковые паттерны будут допиливаться. Но необходимо добавить список слов исключений. (Было в hyphenator, я не стал делать ибо тривиально :) ) И вероятно можно сделать кэш перенесенных слов.
Большое спасибо авторам Hyphenator.
Ну и для страждущих еще есть реализация на php: PhpHypher https://github.com/bezumkin/PhpHypher