Программно вставить символ в PasswordBox в позицию каретки

104
28 мая 2021, 00:20

Дорого времени суток! Я пишу WPF контрол экранной клавиатуры. У нее должен быть режим пароля. Реализовывать этот режим я собрался с помощью PasswordBox. И в ходе реализации возникла проблема: если пользователь в процессе ввода пароля решит переместить каретку в любое место, кроме конца строки, то ввод из позиции каретки невозможен, поскольку ее положение в PasswordBox никак не отслеживается. Проблему удаления символа из любого места помогли решить команды EditingCommands, а вот со вставкой беда. Есть ли какие-либо вариаты ввода символов с форматом типа SomeClass.InsertSymbolInCaretPosition(string symbol, IInputElement myPasswordBox) либо вообще иные выходы из ситуации?

Answer 1

В общем, в ходе размышлений пришел к такому костыльному варианту:

Метод, по кнопке добавляющий символ в строку, выглядит так:

System.Windows.Forms.Clipboard.SetText("s");
passwordBox.Paste();
System.Windows.Forms.Clipboard.Clear();

В итоге, получаем копирование нужного символа, которое происходит автоматически в позицию каретки. Для нужд экранной клавиатуры этого вполне хватает.

READ ALSO
Проблема с Bitmap Palette 8bpp indexed (Window xp)

Проблема с Bitmap Palette 8bpp indexed (Window xp)

Всем доброго времени сутокРаботаю с 8-битными индексированными изображениями в формате png

104
Обновление модели в EF Core при подходе Db-First

Обновление модели в EF Core при подходе Db-First

Я использовал в проекте EntityFramework Core с подходом database first и создал модель данных по документации

103
Запись разных значений в Sql server

Запись разных значений в Sql server

Есть exe программа, написанная на C#Она записывает значения в SQL Server

89
Спецификация AVI файлов

Спецификация AVI файлов

Есть ли нормальная спецификация формата файлов AVI?

110