如何在WPF应用程序中获取KeyChar

时间:2012-09-14 14:12:24

标签: c# .net wpf

我有一个简单的应用程序,用户在文本中键入并按Enter键,然后文本显示在大屏幕上。

问题:如何在WPF应用中获取e.KeyChar,KeyUp事件? 或者还有另一种方式吗?

public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            this.KeyUp += MainWindow_KeyUp;
        }

        private String Text;

        void MainWindow_KeyUp(object sender, KeyEventArgs e)
        {


            if (e.Key == Key.Enter)
            {
                TextLabel.Content = Text;
                Text = String.Empty;
            }
            else
            {
                Text += e.Key;
            }

        }

我输入“test”时的结果是“TEST”。 我是否必须手动处理所有系统密钥?如果我想键入“测试” - >现在我得到了结果“RihgtShiftTEST”。我想要的只是累积一个字符缓冲区,并显示文本。

1 个答案:

答案 0 :(得分:2)

对于阅读文本输入,最好使用以下事件:

http://msdn.microsoft.com/en-us/library/system.windows.uielement.ontextinput.aspx

TextCompositionEventArgs的“Text”成员已经提供了高级纯文本并过滤掉了所有讨厌的控制字符等。