Member 10527566 Ответов: 1

Подстановка цифр Wpf


When user type English words, I want all numeric characters being  Arabic font(or shape).
(something like the Word app you can do it by going to Options ---> Advanced --->
Show document content ---> Numeral)

for example I want when user type "2", but see "٢".

Is it Possible?


Что я уже пробовал:

I don't want use CultureInfo, because it makes some problem for my application

Dotnet_Dotnet

сэр, если вы используете charector или преобразования Юникода, может тогда можно

1 Ответов

Рейтинг:
2

Pete O'Hanlon

Хорошо, есть простой способ, которым вы можете "подделать" это относительно легко, но в зависимости от ширины альтернативных символов и того, как они соотносятся с шириной текущих символов, может быть немного резкий интерфейс. Хитрость заключается в наложении двух текстовых полей друг на друга. Верхний принимает входные данные, но фактически остается невидимым. Тот, что внизу, - это тот, который отображает ваше фактическое содержимое. XAML выглядит примерно так:

<Grid>
  <TextBox Text="{Binding ConvertedText}" />
  <TextBox Foreground="Transparent" Text="{Binding Text, UpdateSourceTrigger=PropertyChanged}" Background="Transparent" />
</Grid>
Итак, модель представления, стоящая за этим, не может быть проще. Фактически, когда вы изменяете свойство Text, оно автоматически запускает код преобразования.
public string Text
{
  get => _text;
  set
  {
    if (_text != value)
    {
      _text = value;
      ConvertedText = _text.Replace("1", "y");
      OnPropertyChanged();
    }
  }
}

public string ConvertedText
{
  get => _convertedText;
  set
  {
    if (_convertedText != value)
    {
      _convertedText = value;
      OnPropertyChanged();
    }
  }
}
И это все, потенциально простое решение вашей проблемы.


Richard Deeming

Возможно, вы захотите установить Focusable="False" на первом текстовом поле, чтобы пользователи, которые вкладывают через форму, не набирали в неправильном поле. :)

Pete O'Hanlon

Это правда, я пропустил его совсем, но поскольку я только что набрал код в Редакторе CP, я рад, что получил то, что написал правильно.

Member 10527566

Спасибо, но мне нужно общее решение , у меня есть много TextBox, TexBlock, GridView.

Pete O'Hanlon

Тогда вам придется взглянуть на написание чего-то вроде поведения, которое поставит вас на место.