Я создаю приложение для планирования, которое выглядит как Google Calendar, iCalendar, календарь Outlook и т. П. ... Как вы могли видеть в таких приложениях, запланированные события представлены в виде прямоугольников, которые могут быть очень маленькими, особенно еслиВы просматриваете целую неделю.
Моя задача состоит в том, чтобы дать пользователю «содержательную сводку» события, прежде чем он щелкнет по нему, используя текст в прямоугольнике.Текст должен быть очень компактным.С этой целью я хочу, чтобы он переносил строки способом, который не очень распространен, но я подозреваю, что .NET способен обрабатывать его изначально.
Если одно слово шире, чем прямоугольник, тольконачало этого слова должно показать.Но перенос по-прежнему должен происходить при встрече с пробелами, если следующее слово будет частично выходить за пределы прямоугольника.Не каждый пробел приведет к переносу на следующую строку, потому что, если два или более слова вписываются в строку, это нормально.
Я подозреваю, что ответ заключается в возможностях StringFormat, StringTrimming и FormatFlags, ноЯ не нашел правильную комбинацию для достижения целей.
Например, если у нас есть ...
Chuck Norris
Dentist Appointment
Из-за ограниченного пространства это может стать ...
Chuc
Norr
Denti
Appo
Я НЕ хочу, чтобы он стал:
Chuc
k
Norr
is
Dent
ist
Appo
intme
nt
Как вы видите в этом примере, если пользователь уже знает, кто такой Чак Норрис, присутствие буквы "k" и букв "«не помогает пользователю узнать имя.Фактически, присутствие этих букв может заставить «назначение стоматолога» быть скрытым из поля зрения, поскольку вертикальное пространство также ограничено.
Я уже знаю, как рисовать текст в прямоугольнике, который оборачивается обычным способом, иЯ также знаю, как получить его, чтобы избежать рисования любого текста, который выходит за пределы прямоугольника.Чего я не знаю, так это как заставить его обернуть его при встрече с пробелом (или возвратом каретки), не допуская при этом переноса в середине слова, если одно слово шире, чем прямоугольник.Любая помощь там?