Доступ к объекту раскадровки WPF - PullRequest
0 голосов
/ 04 апреля 2010

Я новичок в Silverlight и программировании wpf

Я только что создал простую раскадровку в серебряном свете, которая увеличивает высоту и ширину кнопки.

Как я и хотел, я написал этот код, чтобы при каждом перемещении курсора на кнопку начиналась раскадровка.

вот код, используемый для silverlight.

private void button_MouseEnter(object sender, System.Windows.Input.MouseEventArgs e)
{
    if(Storyboard1.GetCurrentState()!=ClockState.Active)
        Storyboard1.Begin();
}

В вышеприведенном сценарии все нормально, если я использую silverlight.

Но теперь я хотел использовать ту же функциональность в WPF.

Но проблема, с которой я столкнулся, заключается в том, что в обработчике событий нажатия кнопки WPF я не могу получить доступ к объекту Storyboard1.

Пожалуйста, помогите мне получить доступ к объекту раскадровки в обработчике событий.

1 Ответ

2 голосов
/ 04 апреля 2010

В WPF вам не нужен код для анимации такого типа; все это можно сделать в XAML. Пример:

    <Button>
        <Button.Style>
            <Style TargetType="Button">
                <Setter Property="Width" Value="50" />
                <Setter Property="Height" Value="20" />
                <Style.Triggers>
                    <EventTrigger RoutedEvent="MouseEnter">
                        <BeginStoryboard>
                            <Storyboard>
                                <DoubleAnimation Storyboard.TargetProperty="Width" To="100" />
                                <DoubleAnimation Storyboard.TargetProperty="Height" To="40" />
                            </Storyboard>
                        </BeginStoryboard>
                    </EventTrigger>
                    <EventTrigger RoutedEvent="MouseLeave">
                        <BeginStoryboard>
                            <Storyboard>
                                <DoubleAnimation Storyboard.TargetProperty="Width" To="50" />
                                <DoubleAnimation Storyboard.TargetProperty="Height" To="20" />
                            </Storyboard>
                        </BeginStoryboard>
                    </EventTrigger>
                </Style.Triggers>
            </Style>
        </Button.Style>
    </Button>

На самом деле, поскольку все в стиле, вы можете легко применить эту анимацию к нескольким кнопкам без дублирования кода:

<Window.Resources>
    <Style x:Key="myGrowingButton" TargetType="Button">
        ...
    </Style>
</Window.Resources>
...
    <Button Style="{StaticResource myGrowingButton}">Button1</Button>
    <Button Style="{StaticResource myGrowingButton}">Button2</Button>
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...