Отрегулируйте размер шрифта RichTextBox в настройках High DPI.

Мое приложение C# включает сетки как с простыми текстовыми полями, так и с полями форматированного текста. Часто поля форматированного текста содержат форматированный текст, скопированный и вставленный из другого места, и часто разметка rtf включает жестко заданный размер шрифта (\fsXX, XX в полпункта). В большинстве случаев размер шрифта форматированного текста такой же или близок к размеру шрифта простого текста.

Когда для масштабирования DPI установлено значение, отличное от значения по умолчанию 96, форматированный текст искажается следующим образом:

а) Когда приложение НЕ настроено на поддержку DPI, форматированный текст отображается меньше, чем простой текст, и размыт.

б) Когда приложение настроено на поддержку DPI, форматированный текст больше, чем простой текст.

Есть ли способ разрешить или заставить форматированный текст масштабироваться с простым текстом, за исключением непосредственного редактирования разметки?


person Steve RG    schedule 08.11.2012    source источник
comment
Вы пробовали RichTextBox v5?   -  person Jerry    schedule 28.10.2013
comment
Можете ли вы добавить несколько скриншотов? Вам может быть проще помочь...   -  person Steve Sheldon    schedule 09.07.2015
comment
Как определяются шрифты для простых текстовых полей, в кеглях или пикселях?   -  person Steve Sheldon    schedule 09.07.2015
comment
Еще одна вещь: мир высоких точек на дюйм в Windows немного сложнее, чем вы видите до сих пор. Помимо того, что приложение должно работать с разрешением 96 dpi, вы также хотите протестировать его с разрешением от 96 до 149, а затем >150. Флаг осведомленности о dpi, который вызывает растяжение, если установлено значение false, не начинает работать до тех пор, пока dpi не станет не менее 150.   -  person Steve Sheldon    schedule 09.07.2015


Ответы (5)


Попробуйте установить для его свойства WordWrap значение true.

person Syed    schedule 04.02.2015

Одна вещь, которая может решить проблему, — установить RichTextBox в форме и установить для свойства AutoScaleMode формы значение None (перечисление AutoScaleMode документация)

person bman    schedule 01.05.2015

Возможно, вы можете использовать форму WPF, поэтому вам не нужно беспокоиться о DPI разных экранов.

person user2461687    schedule 14.04.2017

Попробуйте следующее. Это поддерживается только в .NET Framework 4.5.2 и более поздних версиях. Microsoft рассмотрела еще несколько элементов управления для HighDpiAutoresizing.

<appSettings>
   <add key="EnableWindowsFormsHighDpiAutoResizing" value="true" />
</appSettings>
person Kajal Sinha    schedule 25.06.2014
comment
эта функция была представлена ​​в версии 4.5.1 и по-прежнему не поддерживает масштабирование Richtextbox до версии 4.6.1. Дополнительная информация здесь msdn.microsoft.com/en -us/library/ms171868%28v=vs.110%29.aspx - person Souhaieb Besbes; 11.02.2016

person    schedule
comment
также загрузите сторонние инструменты tinymce - person Rahul Choudhary; 03.09.2017