Как добавить дополнительные привязываемые группы визуальных состояний к кнопке? - PullRequest
0 голосов
/ 19 августа 2010

Мне нужно расширить элемент управления кнопки, чтобы добавить дополнительные визуальные состояния, которые можно привязать.

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

Все существующее поведение кнопок должно быть полностью отделено от этого нового набора состояний.

Можно ли это сделать?

1 Ответ

0 голосов
/ 31 мая 2011

Это, безусловно, можно сделать. Вот пост , который проведет вас через шаги, которые вам нужно предпринять, и включает дополнительную информацию для расширения элемента управления с помощью свойств (помимо тех, которые содержат состояние), которые отображаются в конечном элементе управления.Куски, которые вам понадобятся:

  1. Класс, производный от Button (ваш пользовательский класс управления)
  2. Стиль по умолчанию для этого элемента управления (который находится в / themes / generic.XAML).Вы можете начать с универсального стиля Button и добавить в него свои состояния.
  3. Свойство зависимости, которое содержит ваше логическое значение
  4. Новая группа VisualStateGroup, которая содержит два новых состояния
  5. Некоторый код в вашем классе, который склеивает изменяющиеся состояния с булевым значением, которое вы определили, предположительно, в результате взаимодействия с пользователем и т. Д.
  6. Возможно, вам будет проще редактировать визуальное состояние в Blend, в зависимости от сложностиваши переходы будут и т. д.
...