Как подключить настраиваемые свойства элемента управления, которые анимируются внутри шаблона элемента управления?
Я создаю настраиваемую кнопку с несколькими состояниями и хочу анимировать цвет текста кнопки в качестве состоянияизменения.Обычно текст серый, а при наведении мыши он становится черным.
Я создал NormalTextBrush для черного текста и FadedTextBrush для серого текста:
<SolidColorBrush x:Key="NormalTextBrush" Color="Black" />
<SolidColorBrush x:Key="FadedTextBrush" Color="DarkSlateGray" />
Пока все хорошо.Моя анимация запускается без ошибок.Когда мышь проходит над кнопкой, текст становится серым и черным.Но то, что я действительно хочу сделать, это позволить разработчику с помощью элемента управления указать цвет текста.
Итак, я переопределяю обе текстовые кисти как привязки к свойству Foreground элемента управления.FadedTextBrush использует конвертер значений для исчезновения цвета переднего плана.Переопределенные ресурсы выглядят так:
<SolidColorBrush x:Key="NormalTextBrush" Color="{Binding Path=Foreground, RelativeSource={RelativeSource TemplatedParent}}" />
<SolidColorBrush x:Key="FadedTextBrush" Color="{Binding Path=Foreground, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource ColorConverter}, ConverterParameter='1.2'}" />
И вот тут у меня возникают проблемы.WPF не разрешает привязки анимаций внутри шаблонов управления.Выдает исключение с сообщением «Не удается заморозить это дерево шкалы времени раскадровки для использования в потоках».Проблема задокументирована здесь .
И это подводит меня к моему вопросу: как настроить ресурсы Brush так, чтобы они были связаны со свойством Foreground, но чтобы я могиспользовать их с анимацией в моем шаблоне управления?
Кто может ответить на этот вопрос, я куплю вам пиво в следующий раз, когда увижу вас!Спасибо за вашу помощь.