C# UWP:RichEditBox和RichTextBlock在显示某些字体方面的差异

C# UWP:RichEditBox和RichTextBlock在显示某些字体方面的差异,c#,fonts,uwp,richeditbox,richtextblock,C#,Fonts,Uwp,Richeditbox,Richtextblock,我在UWP中有一个项目,我需要在RichEditBox和RichTextBlock中显示相同的文本 对于某些字体(如Courier),这是很好的,也没有什么大问题,但对于其他字体(如Arial),差异相当大。 请注意,我使用完全相同的代码,唯一的区别就是字体 请在此处找到重现问题的MVCE: 如何设置这两个元素以同样的视觉方式以Arial格式显示文本 对于某些字体(如Courier),这是很好的,也没有什么大问题,但对于其他字体(如Arial),差异相当大。请注意,我使用完全相同的代码,唯一的区

我在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
的受欢迎程度。