Вопрос

Я стараюсь установить цвет фона управления, когда мышь над ней. Я стараюсь сделать это через менеджера 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} в своем объявлении.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top