Отрегулируйте размер шрифта RichTextBox в настройках с высоким значением DPI - программирование
Подтвердить что ты не робот

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

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

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

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

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

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

4b9b3361

Ответ 1

<script type="text/javascript">
tinyMCE.init({
        mode: "textareas",
        theme: "advanced",
        plugins: "safari,spellchecker,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,imagemanager,filemanager",
        theme_advanced_buttons1: "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect,fontselect,fontsizeselect",
        theme_advanced_buttons2: "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,code,|,insertdate,inserttime,preview,|,forecolor,backcolor",
        theme_advanced_buttons3: "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen",
        theme_advanced_buttons4: "insertlayer,moveforward,movebackward,absolute,|,styleprops,spellchecker,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,blockquote,pagebreak,|,insertfile,insertimage",
        theme_advanced_toolbar_location: "top",
        theme_advanced_toolbar_align: "left",
        theme_advanced_statusbar_location: "bottom",
        theme_advanced_resizing: false,
        template_external_list_url: "js/template_list.js",
        external_link_list_url: "js/link_list.js",
        external_image_list_url: "js/image_list.js",
        media_external_list_url: "js/media_list.js"
    });
</script>


<td class="textboxmain" style="height:300px; "><asp:TextBox id="textbox1" TextMode="MultiLine" Height="100%" runat="server" placeholder="test............"></asp:TextBox></td>

Ответ 2

Попробуйте установить его свойство WordWrap на true.

Ответ 3

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

Ответ 4

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

Ответ 5

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

<appSettings>
   <add key="EnableWindowsFormsHighDpiAutoResizing" value="true" />
</appSettings>