1

リッチエディットボックスにテキストを入力しているときにフォントサイズを変更するオプションをユーザーに提供しようとしています。私は次のコードを持っています:

    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 に答える