【问题标题】:WPF: RichTextBox selection style properties are resetWPF:RichTextBox 选择样式属性被重置
【发布时间】:2023-03-12 01:18:02
【问题描述】:

我制作了一个简单的文本编辑器(基于 RichTextBox),可以加粗/倾斜/更改所选文本的字体大小。这些东西工作得很好 - 例如。我可以将粗体和斜体应用于同一选择。

我最近添加了“大写”按钮:

private void buttonCapitalize_Click(object sender, RoutedEventArgs e)
{
    if (!textField.Selection.IsEmpty)
    {
        textField.Selection.Text = textField.Selection.Text.ToUpper();
    }
}

并且它有点有效。每当我单击它时,选定的文本 大写,但其他属性(仅限当前选择)如 FontStyle、FontWeight 设置为正常,FontSize 设置为默认值。

有没有更好的方法来实现这个?

【问题讨论】:

    标签: c# wpf richtextbox selection


    【解决方案1】:

    我进行了一些测试,从我的结果看来,RichTextBox 将始终采用您选择之前的第一个字符的样式,而不是您提到的默认样式

    这可能是因为

    textField.Selection.Text = textField.Selection.Text.ToUpper();
    

    实际上会创建一个新字符串而不是编辑它(字符串在 C# 中是不可变的)
    如果你想保持你的风格,我猜你必须遍历你的选择并为每个选定的字符创建它

    【讨论】:

      猜你喜欢
      • 2013-10-03
      • 2019-09-10
      • 2013-08-05
      • 1970-01-01
      • 2016-04-06
      • 2017-10-05
      • 1970-01-01
      • 2014-09-27
      • 2012-01-15
      相关资源
      最近更新 更多