после изменения текстового поля IsReadOnly attr, не могу ввести китайский - PullRequest
0 голосов
/ 10 апреля 2019

Когда MouseDoubleClick в текстовом поле, он может редактировать и вводить, но не может вводить китайский язык, когда переключиться в другое окно (или щелкнуть текстовое поле winform в главном окне) и повернуть назад, теперь он может вводить китайский язык.

демо

https://img2018.cnblogs.com/q/22977/201904/22977-20190410130035963-221502838.gif

    <UserControl.Resources>
        <Style TargetType="TextBox">
            <Setter Property="IsReadOnly" Value="True"></Setter>
            <Setter Property="Width" Value="200"></Setter>
            <Setter Property="Height" Value="40"></Setter>
        </Style>
    </UserControl.Resources>
    <Grid>
        <TextBox InputMethod.IsInputMethodEnabled="True" InputMethod.PreferredImeState="On" MouseDoubleClick="TextBox_MouseDoubleClick"></TextBox>
    </Grid>
        private void TextBox_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            var txtBox = (TextBox)sender;
            txtBox.IsReadOnly = false;
        }

обновление: код работает

private void TextBox_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            var txtBox = (TextBox)sender;
            txtBox.IsReadOnly = false;

            InputMethod.SetIsInputMethodEnabled(txtBox , false);
            InputMethod.SetIsInputMethodEnabled(txtBox , true);
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...