gpt4 book ai didi

c# - WPF RichTextBox 内联更改字体颜色

转载 作者:太空宇宙 更新时间:2023-11-03 13:40:36 29 4
gpt4 key购买 nike

我已经为这个解决方案搜索了一段时间,所以现在我在这里发布。

现在我可以改变整个 RichTextBox 的前景色:

yourRichTextBox.Foreground = Brushes.Red;

我还可以更改用户使用光标选择的某些文本的颜色:

if(!yourRichTextBox.Selection.IsEmpty){
yourRichTextBox.Selection.ApplyPropertyValue(TextElement.ForegroundProperty, Brushes.Red);
}

但我希望能够更改用户键入的下一个文本的颜色。

我有一个颜色选择器框,它返回用户想要的文本颜色。所以用户在 RichTextBox 中输入普通黑色字体,然后他们会点击颜色选择器按钮,选择一种颜色,点击确定,然后他们输入的下一个内容将是该颜色。有没有办法做到这一点,还是我运气不好?

我能想到的唯一方法是有一个缓冲区来捕获用户键入的每个字符,然后在每个键入的字母上设置前景属性,然后将其添加回 RichTextBox,想法?

最佳答案

您用于选择的相同代码对我有用。例如:

    <RichTextBox x:Name="yourRichTextBox" TextChanged="yourRichTextBox_TextChanged_1">
<FlowDocument>
<Paragraph>
<Run Text="fdsfdfsda"/>
</Paragraph>
<Paragraph>
<Run/>
</Paragraph>
</FlowDocument>
</RichTextBox>

代码隐藏:

    private void yourRichTextBox_TextChanged_1(object sender, TextChangedEventArgs e)
{
yourRichTextBox.Selection.ApplyPropertyValue(RichTextBox.ForegroundProperty, Brushes.Red);
}

一旦您开始输入,第二个字母及之后的字母(第一个触发此更改)将为红色。

关于c# - WPF RichTextBox 内联更改字体颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17175694/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com