如何在WPF,富文本框中将按键转换为大写字母? [英] How to convert pressed key into upper case letter in WPF, rich text box?

查看:446
本文介绍了如何在WPF,富文本框中将按键转换为大写字母?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


我正在研究计算机应用程序。我想让用户从组合框中选择大写,当他输入时,富文本框中的字体会转换为大写。最终打印的文档将由大写的几行和小写的几行组成。



我是wpf,c#的新手。在文本框中有字符大小写选项,但无法获得richtextbox wpf的解决方案。



我尝试过:



Hi I am working on a computer application. I want to provide user to select upper case from combobox and when he type, the font in rich text box convert into uppercase. The final typed document will consist mixture of few lines in uppercase and few lines in lower case.

I am new to wpf, c#. In text box there is option for character casing but could not able to get a solution for richtextbox wpf.

What I have tried:

I have tried with in textbox. There is charactercasing. But no such thing in wpf rich text box. 

推荐答案

这不容易,但通过注册以下TextChanged事件处理程序,我得到了下面的代码,将每个输入转换为大写。如果你添加代码来检查你的组合框选择,你可能会让它工作。



It is not easy but by registering the following TextChanged event handler I got the code below to convert every input to uppercase. If you add code to check your combobox selection you might get it to work.

private void RichTextBox_TextChanged(object sender, TextChangedEventArgs e)
{
    var textBox = (RichTextBox)sender;

    var docStart = textBox.Document.ContentStart.DocumentStart;
    foreach ( var change in e.Changes )
    {
        if( change.AddedLength > 0 )
        {
            var changeStart = docStart.GetPositionAtOffset(change.Offset, LogicalDirection.Forward);
            var changeEnd =   docStart.GetPositionAtOffset(change.Offset+change.AddedLength, LogicalDirection.Forward);
            var changedRange = new TextRange(changeStart, changeEnd);
            var currentText = changedRange.Text;
            var upperText = currentText.ToUpper();
            if( upperText != currentText )
            {
                changedRange.Text = upperText;
                Debug.Print("Replaced " + currentText);
            }
            textBox.Selection.Select(changeEnd, changeEnd);
        }
    }

}


这篇关于如何在WPF,富文本框中将按键转换为大写字母?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆