1

我正在尝试为用户提供在richeditbox 中输入文本时更改字体大小的选项。我有以下代码:

    void textBox_GotFocus(object sender, RoutedEventArgs e)
    {
            RichEditBox textBox = sender as RichEditBox;

            ITextSelection selectedText = currentTextBox.Document.Selection;
            if (selectedText != null)
            {
                ITextCharacterFormat charFormatting = selectedText.CharacterFormat;
                charFormatting.Size = (float)textBoxFontSize;
                selectedText.CharacterFormat = charFormatting;
            }                
    }

如果我将输入设备用作鼠标和键盘,则在正常工作时调用此代码。如果我使用触摸屏并在上述函数中放置一个调试点,此代码也可以工作。

但是,如果我使用触摸屏作为输入设备并且代码中没有断点,则字体大小会自动变为 10.5,并且永远不会变回来。

我看到其他人面临类似的问题:

http://social.msdn.microsoft.com/Forums/en-US/winappswithcsharp/thread/771b6374-37da-4cdd-b68c-7b50b939b775

4

1 回答 1

0

感谢 DJ KRAZE 问题完全解决了。这是响应鼠标键盘和触摸交互的解决方案:

string currentTextBoxText = null; 
textBox.Document.GetText(TextGetOptions.None, out currentTextBoxText); 
int textLength = currentTextBoxText.Length - 1; 
currentTextBox.Document.GetRange(textLength, int.MaxValue).CharacterFormat.Size = (float)textBoxFontSize;
于 2013-05-16T20:23:50.140 回答