Windows Phone键盘逗号 - 点冲突

时间:2013-06-11 16:08:02

标签: c# localization windows-phone

我想使用数字键盘(InputScope=Number),但希望显示','而不是'。'在左下角,因为它是土耳其语的小数分隔符。 键盘布局取决于手机语言,即使我强制使用这样的代码文化:     System.Globalization.CultureInfo.DefaultThreadCurrentCulture = new CultureInfo("tr-TR"); System.Globalization.CultureInfo.DefaultThreadCurrentUICulture = new CultureInfo("tr-TR");

如何在左下角仅用','强制数字键盘?

或者至少如何检测KeyEventArgs上两个字符之间的差异?因为两者都返回Unknown作为密钥代码(很明显是相同的密钥),当用户按下时我无法想出区分它们的方法吗?

2 个答案:

答案 0 :(得分:1)

这实际上是手机本身的设置。当区域设置为具有逗号小数分隔符和键盘的区域时,它将显示逗号。请参阅以下带有法语区域和法语键盘的屏幕截图

enter image description here

答案 1 :(得分:0)

鉴于您无法更改键盘的文化,您有两个选择:

  1. Hook KeyUp,如果KeyCode未知,那么你得到了。或者,
  2. Hook TextChanged并检查最后一个字母是否是a。或者,并根据需要进行替换(请注意,如果更新TextChanged中的文本,您将重新触发TextChanged)
  3. 例如:

        private void txt_KeyUp(object sender, System.Windows.Input.KeyEventArgs e)
        {
            if (e.Key == System.Windows.Input.Key.Unknown)
            {
                txt.Text = txt.Text.Replace('.', ',');
    
                // reset cursor position to the end of the text (replacing the text will place
                // the cursor at the start)
                txt.Select(txt.Text.Length, 0);
            }
        }