WPF TextBox не позволяет использовать символы Юникода \ u200c - PullRequest
0 голосов
/ 24 апреля 2019

На персидском языке, кроме пробела (\ u0020), обычно также используется символ пробела или пробела (\ u200c).Например: «توسعه» плюс \ u200c плюс «یافته» будет «توسعه‌یافته» и с пробелом будет «توسعه یافته».

Это простое текстовое поле в пустом wpf-приложении без какого-либо кода:

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

Это хорошо работает на моем компьютере и ноутбуке (обе Windows 10).Я могу набрать полупространство (\ u200c), нажав Ctrl + Shift + 2 легко.Но мой друг сообщает, что он не может вводить пробел в Textbox.У него системная спецификация и стандарт раскладки клавиатуры такой же, как у меня.Он может использовать полупространство в любом другом приложении, кроме моего, и у него нет проблем с Winform TextBox;просто текстовое поле WPF!

Почему эта проблема не возникает для меня?

Скорее всего, похожий вопрос (но без ответа):

Какотображать управляющие символы Unicode в WPF TextBox?

Я не знаю, что происходит, и у меня нет никакого решения, кроме размещения Winform TextBox в моем приложении, но это мой последнийрешение, потому что я пришел к wpf, чтобы уменьшить ограничения, не сталкиваясь с новыми ограничениями.Пожалуйста, вытащите меня из этой глупой странной проблемы.

1 Ответ

0 голосов
/ 27 апреля 2019

Попробуйте установить культуру явно:

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

        InitializeComponent();
    }
...