C# UWP:RichEditBox和RichTextBlock在显示某些字体方面的差异
我在UWP中有一个项目,我需要在RichEditBox和RichTextBlock中显示相同的文本 对于某些字体(如Courier),这是很好的,也没有什么大问题,但对于其他字体(如Arial),差异相当大。 请注意,我使用完全相同的代码,唯一的区别就是字体 请在此处找到重现问题的MVCE: 如何设置这两个元素以同样的视觉方式以Arial格式显示文本 对于某些字体(如Courier),这是很好的,也没有什么大问题,但对于其他字体(如Arial),差异相当大。请注意,我使用完全相同的代码,唯一的区别就是字体 首先,您需要设置这两个不同控件的相同C# UWP:RichEditBox和RichTextBlock在显示某些字体方面的差异,c#,fonts,uwp,richeditbox,richtextblock,C#,Fonts,Uwp,Richeditbox,Richtextblock,我在UWP中有一个项目,我需要在RichEditBox和RichTextBlock中显示相同的文本 对于某些字体(如Courier),这是很好的,也没有什么大问题,但对于其他字体(如Arial),差异相当大。 请注意,我使用完全相同的代码,唯一的区别就是字体 请在此处找到重现问题的MVCE: 如何设置这两个元素以同样的视觉方式以Arial格式显示文本 对于某些字体(如Courier),这是很好的,也没有什么大问题,但对于其他字体(如Arial),差异相当大。请注意,我使用完全相同的代码,唯一的区
characterspace
:
m_richEditBox.CharacterSpacing = 100;
m_richTextBlock.CharacterSpacing = 100;
然后,您需要对两个控件设置相同的FontStretch
,但问题来了:经过几次测试,我发现textStretch对RichEditBox/TextBox不起作用。默认情况下,里面的文本看起来更像fontstract.Condensed
。因此,作为一种临时解决方法,您可以将RichTextBlock.fontstrench
设置为fontstrench.Condensed
:
m_richTextBlock.FontStretch = FontStretch.Condensed;
我将通过内部渠道进行咨询以报告此问题,并在收到任何回复后更新此线程。我可以复制此问题,并已向相关团队报告。如果有任何更新,我会告诉你。你可能知道,但明确地说:
RichTextBox
和RichTextBlock
使用不兼容的文档呈现和操作模型并没有坏处。因此,1)你不能(我希望你能)对这两种代码使用相同的代码,只能尝试将其格式化并尽可能接近;2) 毫不奇怪,文本呈现中存在差异。这真是太棒了,MSFT的伙计们愿意帮助解决像你这样的问题,尽管更通用的解决方案,例如RichTextBlock
编辑器可以显著提高UWP
的受欢迎程度。