我目前正在尝试在WPF项目中创建一些基本的文字处理器功能。我正在使用RichTextBox,并且知道所有的EditingCommands(ToggleBold,ToggleItalic ... ect)。我坚持的事情是允许用户更改字体大小和字体,就像在MS Office中那样,该值仅更改为所选文本,如果没有所选文本,则该值将更改当前插入符号的位置。
我想出了很多代码来使它起作用,但是在未选择文本的问题上遇到了问题。这是我正在为RichTextBox.Selection做的事情。

TextSelection text = richTextBox.Selection;
if (text.IsEmpty)
{
    //doing this will change the entire word that the current caret position
    //is on which is not the desire/expected result.
    text.ApplyPropertyValue(RichTextBox.FontSizeProperty, value);
}
else
    //This works as expected.
    text.ApplyPropertyValue(RichTextBox.FontSizeProperty, value);

所以我的问题是我应该怎么做呢?有没有更好/更方便的方法来做到这一点?
我曾经想到的是,我需要在段落中插入新的内联,但是我不知道该怎么做。任何帮助表示赞赏。谢谢你。

最佳答案

我已经解决了如下问题:

TextRange r = new TextRange(richtextbox.Selection.Start, richtextbox.Selection.End);
r.ApplyPropertyValue(TextElement.FontSizeProperty, value);

关于c# - WPF Richtextbox FontFace/FontSize,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/674384/

10-13 08:02