WPF文本框不允许Unicode字符\ u200c

时间:2019-04-24 10:00:50

标签: c# wpf unicode textbox farsi

在波斯语中,在空格(\ u0020)旁边,也经常使用半角或半角字符(\ u200c)。例如:“توسعه”加\ u200c加上“یافته”将是“ توسعه‌یافته”,带空格将是“توسعهیافته”。

这是一个空的wpf应用程序中的简单文本框,没有任何后台代码:

<TextBox FlowDirection="RightToLeft" Width="200" Height="30"/>   

它在我的PC和笔记本电脑(两个Windows 10)中都可以正常工作。我可以通过按Ctrl + Shift + 2轻松键入半角空格(\ u200c)。但是我的朋友报告说他不能在文本框中输入半角空格。他的系统规格和键盘布局标准与我的相同。他可以在除我的应用程序之外的任何其他应用程序中使用半角空格,并且Winform TextBox没有任何问题。只是WPF文本框!

为什么这个问题对我来说没有发生?

最可能类似的问题(但没有答案):

  

How to display Unicode control characters in a WPF TextBox?

我不知道发生了什么,除了在我的应用程序中托管Winform TextBox之外,我没有任何解决方案,但这是我的最后一个解决方案,因为我开始使用wpf来减少限制,而不是面对新的限制。请让我摆脱这个愚蠢的奇怪问题。

1 个答案:

答案 0 :(得分:0)

尝试明确设置区域性:

public partial class MainWindow
{
    public MainWindow()
    {
        var faCulture = CultureInfo.CreateSpecificCulture("fa-ir");
        this.Language = XmlLanguage.GetLanguage(faCulture.IetfLanguageTag);
        InputLanguageManager.SetInputLanguage(this, faCulture);

        InitializeComponent();
    }