Удалите кнопку "X" в конце текстового поля

enter image description here

Я разрабатываю приложение для Магазина Windows, используя С# + XAML. Когда я добавляю TextBox со свойством TextWrapping установленным в NoWrap, в конце TextBox появляется "X", когда он фокусируется.

Итак, мне нужно удалить этот "X" и TextBox не может переноситься.

Ответ 1

Как вы можете видеть из этой документации, она довольно хорошо объясняет эту функцию. Как вы можете видеть, используя Javascript, Html или Css, у вас есть очень быстрые и краткие способы удалить это поле. Как вы можете просто отключить его с помощью каскадных таблиц стилей.

Image it displays.To Edit.

Теперь в пределах таблицы стилей вы можете изменить ее довольно легко:

input[type=text]::-ms-clear
{
            border: 2px solid orange
}

Большинство кнопок действительно легко использовать для согласованного дизайна в вашем приложении. Но это не отвечает на ваш вопрос, как вы отключите его с С#/XAML?

Внутри компонента Textbox вы заметите код, который указывает на визуальное состояние и видимость. Если вы закомментируете этот раздел кода, он отключит X. Пример здесь:

Как уже упоминалось выше, это очень изящный и полезный инструмент. Особенно на устройствах с сенсорным экраном; он не только придерживается унификации Microsoft, но и делает интерфейс чище, поскольку у вас есть простой способ удалить элементы в этом поле.

Я призываю вас не удалять его, надеюсь, это немного объяснит вам проблему.

Ответ 2

Как все заявили, вы действительно не должны удалять "X", если только у вас нет по-настоящему веской причины для этого.

Чтобы удалить X, вместо установки TextWrapping на "NoWrap", вы должны установить его в TextWrapping = "Wrap"

Ответ 3

X есть функция доступности. Это упрощает очистку окна на сенсорных устройствах, так как выбор текста и удаление удаленных файлов сложны и выполняются несколько шагов.

Итак, пожалуйста, не отключайте это, если у вас нет очень важной причины для этого. Не существует свойства отключить "X", и команда продуктов не намерена отключать его. Однако в образовательных целях я покажу, что вы можете отключить его, изменив стиль.

В Expression Blend щелкните правой кнопкой мыши текстовое поле и выберите "Редактировать шаблон" → "Редактировать копию". Дайте вашему шаблону имя типа "NoXTextBox" и обязательно сохраните его на уровне приложения (иначе вы сможете использовать его только на текущей странице).

Затем Blend переключится в режим редактирования внешнего вида TextBox вместо страницы. На панели "Объекты и временная шкала" вы увидите элемент с именем DeleteButton. Вы можете удалить эту кнопку из своего шаблона и сохранить свою работу. Нажмите кнопку в верхней части панели "Объекты" и "Временная шкала", которая выглядит как горизонтальная линия со стрелкой вверх (когда вы наводите курсор на эту кнопку, он скажет "Вернуться к области [Страница]" ). Теперь вы вернетесь к редактированию своей страницы, а не редактируете текстовое поле.

Чтобы сделать больше текстовых полей, подобных этому, вы можете скопировать и вставить его, или в панель инструментов "Бленд" в разделе "Стили" вы увидите свой "NoXTextBox".

Опять же, пожалуйста, не отключите это, если у вас нет повода для этого. Я, честно говоря, не могу придумать вескую причину для этого, поскольку вы нарушаете функциональность пользователей в приложениях Windows Store. В основном я хотел ответить на ваш вопрос, чтобы вы поняли, как изменить встроенные элементы управления.

Поддержка Dev, поддержка дизайна и еще более потрясающая доброта: http://bit.ly/winappsupport

Ответ 4

Измените шаблон управления и удалите DeleteButton в шаблоне и его ссылку.

Ответ 5

Это заставляет X исчезать, а также останавливает смещение текста во время ввода.

input[type=text]::-ms-clear
{
  visibility: collapse;
}

Ответ 6

Для меня решение было установить свойство IsReadOnly = "True"