Проблема при попытке анимировать границу кнопки при нажатии

#silverlight #animation #button #silverlight-4.0

#silverlight #Анимация #кнопка #silverlight-4.0

Вопрос:

Я пытаюсь анимировать границу кнопки, но у меня проблемы с ее запуском. Вот настройка XAML, которую я настраиваю:

 <Button x:Name="Btn">
    <Button.Triggers>
        <EventTrigger RoutedEvent="Button.Click">
            <BeginStoryboard>
                <Storyboard Duration="100" AutoReverse="True"
                            Storyboard.TargetName="Btn"                                     
                            Storyboard.TargetProperty="BorderBrush">
                    <ColorAnimation To="Yellow" />
                </Storyboard>
            </BeginStoryboard>
        </EventTrigger>
    </Button.Triggers>
</Button>
  

Я получаю эту ошибку:

 Failed to assign to property 'System.Windows.EventTrigger.RoutedEvent'. [Line: 17 Position: 30]
  

Есть идеи, почему? Полный новичок в этом. Я использую Silverlight 4.

Ответ №1:

Silverlight поддерживает Loaded событие только в триггере события. Для такого рода вещей вам нужно заглянуть в Visual State Manager.

Кнопка уже поддерживает визуальное состояние, называемое «Нажата». Однако, чтобы изменить визуальное поведение кнопок, вам нужно сначала скопировать шаблон по умолчанию и поместить его в статический ресурс.

Вы можете получить копию стиля по умолчанию, используемого для кнопки здесь. Предположим, вы задаете этому x:Key значение «MyButtonStyle».

Вы бы добавили свою ColorAnimation к существующей Storyboard для «Нажатой» VisualState .

Тогда ваш button xaml должен быть:

 <Button Style="{StaticResource MyButtonStyle}" Content="Click Me" />