@ Mystere Man: Вам может понадобиться текстовое поле, которое нельзя использовать постоянно. Например, я разрешаю пользователю создавать текстовые поля на холсте и перетаскивать их. Чтобы запретить им выделять и перемещать текст при перетаскивании, мне нужно запретить ввод данных пользователем, и выбор текста также должен быть отключен, поскольку это вызывает задержку, которая портит мою функцию перетаскивания. В моем приложении пользователь может редактировать текстовое поле только после того, как он дважды щелкнул по нему, а затем должен щелкнуть за пределами текстового поля, чтобы иметь возможность снова его переместить.
У меня в основном есть этот код (где t это TextBox):
// Prevent text entry
t.IsReadOnly = true;
// Prevent text selection
t.Focusable = false;
Это поведение предпочтительнее, чем отключение всего элемента управления (t.Enabled = false
), так как это также остановит события mousedown и doubleclick, что приведет к прекращению перетаскивания и перехода из режима редактирования в режим перетаскивания. Не говоря уже о том, что текстовое поле станет серым.