WPF RichTextBox仅在使用断点的情况下才将文本设置为上标

我在将WPF RichTextBoxBaselineAlignment.Superscript中的文本格式方面遇到问题。

我有此代码:

private void TextBox_OnPreviewKeyDown(object sender,KeyEventArgs e)
{
    var textBox = (RichTextBox) sender;

    if ((Keyboard.Modifiers & ModifierKeys.Control) == ModifierKeys.Control)
    {
        if (e.Key == Key.OemPlus && (Keyboard.Modifiers & ModifierKeys.Shift) == ModifierKeys.Shift)
        {
            ChangeTextAlignment(textBox,BaselineAlignment.Superscript,BaselineAlignment.Subscript);
            e.Handled = true;
        }
        else if (e.Key == Key.OemPlus && (Keyboard.Modifiers & ModifierKeys.Shift) != ModifierKeys.Shift)
        {
            ChangeTextAlignment(textBox,BaselineAlignment.Subscript,BaselineAlignment.Superscript);
            e.Handled = true;
        }
    }
}

ChangeTextAlignment具有下一个签名:

void ChangeTextAlignment(RichTextBox richTextBox,BaselineAlignment changeTo,BaselineAlignment possibleCurrent)

因此,当我尝试对文本应用Subscript时,效果很好,但是当我尝试对文本应用上标对齐方式时,我将在按下命令按钮后键入文字,但只有在在我为ChangeTextAlignment调用Superscript函数的地方或ChangeTextAlignment函数内部的某个地方。

接下来看:

我按Ctrl + Shift + Key.OemPlus时没有在代码中设置断点,随后输入的文字也没有任何作用。

我设置了一个断点,然后按Ctrl + Shift + Key.OemPlus,它在我的断点处停止,我按F5继续,瞧,我输入的新文本被格式化为上标。

同时,如果我在RichTextBox中选择了一些文本,然后按Ctrl + Shift + Key.OemPlus而没有断点,那么它将起作用!

所以问题是:

为什么上标格式不适用于新文本,尽管适用于所选文本?

wangziguang111 回答:WPF RichTextBox仅在使用断点的情况下才将文本设置为上标

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3023865.html

大家都在问