#silverlight #validation #exception-handling
#silverlight #проверка #обработка исключений
Вопрос:
При использовании обработки проверки по умолчанию в Silverlight (используя ValidatesOnExceptions=True,NotifyOnValidationError= True ),
вы обычно получаете сообщение об исключении в сторону текстового поля.
Я хотел бы изменить местоположение сообщения проверки (сообщения об исключении) и поместить его в верхнюю часть текстового поля. Любые идеи о том, как я могу это сделать. Я не смог найти никакой литературы по изменению местоположения сообщения об ошибке в сети.
Ответ №1:
Это (IMO) печальный недосмотр в пользовательском интерфейсе проверки по умолчанию. У вас должен быть способ указать значение размещения всплывающей подсказки, вместо этого значение размещения фиксируется в шаблоне как «Правильное».
Следовательно, чтобы изменить это, вам нужно посетить этот раздел MSDN «Стили и шаблоны текстовых полей», сделать копию TextBox
стиля по умолчанию и ссылки «ValidationToolTipTemplate». Добавьте их в новый ResourceDictionary
файл и присвоите значение TextBox
Style
ключа. Теперь вы можете настроить Placement
свойство всплывающей подсказки проверки в шаблоне текстового поля.
Включите этот новый ResourceDictionary
словарь как объединенный либо в свой App.Xaml, либо в ресурсы UserControl / Page и назначьте этот стиль своему TextBox
Style
свойству.
Чрезмерная возня с простым изменением, но другого пути нет. С другой стороны, теперь, когда они есть в вашем собственном коде, вы можете выполнять всевозможные другие действия со стилем текстового поля и / или всплывающей подсказкой проверки.
Комментарии:
1. Во всяком случае, я чувствую, что такого рода вещи — это скорее недосмотр в дизайнере Visual Studio. Внесение такого рода изменений намного проще в Expression Blend. Щелкните правой кнопкой мыши на шаблоне объекта -> редактировать копию, и вы получите весь шаблон для редактирования.
2. @Brandorf: Если бы VS сделал все, что мог Blend, как бы MS смогла продать выражение? 😉
3. Спасибо, Энтони.. Моя проблема решена. Я загрузил представление silverlight по адресу gist.github.com/1276226 для всех, кто ищет помощи по этому вопросу.