Использование шаблона в объектно -эфире
-
09-10-2019 - |
Вопрос
Я стараюсь установить цвет фона управления, когда мышь над ней. Я стараюсь сделать это через менеджера Visual State. Я смог получить следующий код, запущенный:
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Control.Background" Storyboard.TargetName="BorderBackground">
<DiscreteObjectKeyFrame KeyTime="0">
<DiscreteObjectKeyFrame.Value>
<SolidColorBrush Color="#FF123456" />
</DiscreteObjectKeyFrame.Value>
</DiscreteObjectKeyFrame>
</ObjectAnimationUsingKeyFrames>
Но я не хочу устанавливать цвет в шаблоне, но связываю его с значением управления. Я попробовал это с помощью «Tag» следующим образом:
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Control.Background" Storyboard.TargetName="BorderBackground">
<DiscreteObjectKeyFrame KeyTime="0">
<DiscreteObjectKeyFrame.Value>
<SolidColorBrush Color="{TemplateBinding Tag}" />
</DiscreteObjectKeyFrame.Value>
</DiscreteObjectKeyFrame>
</ObjectAnimationUsingKeyFrames>
и установление промежуточного управления управления, которое использует этот стиль для '#FF123456'.
Но это не работает. Это не оставило мне сообщение об ошибке, оно просто не меняет фоновую корро. Кто -нибудь знает, в чем проблема?
Заранее спасибо,
Откровенный
Решение
К сожалению, то, как вы пытаетесь сделать это, не будет работать в Silverlight. Анимации VisualStateManager не являются частью дерева дисплея, поэтому вы не можете использовать привязку. У вас есть варианты, однако, StaticResources (настройка цветов в словаре ресурсов), а анимация на основе кода - это разные обходные пути (в зависимости от именно того, что вы хотите сделать). Для последнего ознакомьтесь с веткой, где я задал аналогичный вопрос: Как я могу динамически анимировать свойство в Silverlight 4 USERCONTROL?
Другие советы
Вы не можете сделать это динамически по одной цели, но вы можете сделать еще одну цель (например, называемую Borderbackgrange), фон, вы можете явно установить на {Templatebinding Tag} в своем объявлении.
Затем вы можете поумиться по умолчанию, и в вашей анимационной раме вместо переключения цветов, переключения видимости, так что пограничный обход рухнут, а пограничная выгода - это видно.