определить анимации и триггеры как допускающий повторное использование ресурс?

Мне нравится, разламывают мои классы на пакеты, которые связаны друг с другом.

, Например: Model For связанные с базой данных вызовы

Представление Классы, которые имеют дело с тем, что Вы видите

Управление классы Базовой функциональности

Util Любые разные классы, которые используются (обычно статические функции)

и т.д.

13
задан bitbonk 3 November 2009 в 11:05
поделиться

3 ответа

Похоже, нет никакого хорошего решения этой общей проблемы только для XAML. Я закончил тем, что написал свои собственные прикрепленные свойства, которые определяют все поведение анимации для данного элемента. Примерно так:

<DataTemplate>
   <!-- ...  -->
   <Rectangle Fill="Gray">
     <v:AnimationHelper.Animations>
        <v:StandardColorStateAnimation TargetColorProperty="(Rectangle.Fill).(SolidColorBrush.Color)" TargetStateProperty={Binding State} />
     </v:AnimationHelper.Animations>
   </Rectangle>
<DataTemplate>

Остальное (создание анимации и т. Д.) Выполняется в программном коде.

1
ответ дан 2 December 2019 в 02:11
поделиться

Не могли бы вы попробовать что-нибудь подобное?

  • Оберните все ваши текущие шаблоны элементов управления невидимым корневым элементом, например Border или StackPanel, ограничивающая рамка которого будет охватывать весь элемент управления.
  • Создайте стиль или шаблон элемента управления для этого невидимого поля, содержащего все ваши триггеры и анимации.
  • Заставьте анимацию анимировать произвольное свойство Color на невидимом блоке.
  • В визуальных деревьях для всех ваших различных элементов управления привяжите любые свойства, которые вы хотите анимировать, к свойству Color невидимого корневого элемента.
3
ответ дан 2 December 2019 в 02:11
поделиться

Я понимаю, что эта проблема немного устарела на момент публикации, но я нашел решение, для которого требуется очень мало кода.

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

Единственный требуемый код программной части - это создание переменных в коде.

Пользовательский элемент управления может использоваться повторно снова и снова без перезаписи раскадровки XAML или триггеров данных.

0
ответ дан 2 December 2019 в 02:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: