Удалите кнопку "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"