Перевести XAML EventTrigger на C # код - PullRequest
0 голосов
/ 28 ноября 2009

Может кто-нибудь сказать мне, как это будет выглядеть в C #?

<EventTrigger RoutedEvent="Button.Click" SourceName="btnSplit">
                <EventTrigger.Actions>
                    <BeginStoryboard>
                        <Storyboard>
                            <DoubleAnimation From="0" To="1" Duration="0:0:0.25" Storyboard.TargetName="gridSplit" Storyboard.TargetProperty="(FrameworkElement.LayoutTransform).(ScaleTransform.ScaleY)"/>
                            <DoubleAnimation From="1" To="0" Duration="0:0:0.25" Storyboard.TargetName="gridJoin" Storyboard.TargetProperty="(FrameworkElement.LayoutTransform).(ScaleTransform.ScaleY)"/>
                        </Storyboard>
                    </BeginStoryboard>
                </EventTrigger.Actions>
            </EventTrigger>

Мне не нужна часть "RoutedEvent", потому что я хочу выполнить код, когда пользователь нажимает кнопку программным способом (Click-EventHandler) .. Сначала вызывается обработчик RoutedEvent, поэтому я не могу этого сделать если иное и нужно сделать всю анимацию в коде позади.

Заранее спасибо!

MemphiZ

1 Ответ

3 голосов
/ 28 ноября 2009

Решил!

Просто дайте раскадровке x: Name, а затем назовите его так:

<Storyboard x:Name="storyBoardName">
    <DoubleAnimation From="0" To="1" Duration="0:0:0.25" Storyboard.TargetName="grid1" Storyboard.TargetProperty="(FrameworkElement.LayoutTransform).(ScaleTransform.ScaleY)"/>
    <DoubleAnimation From="1" To="0" Duration="0:0:0.25" Storyboard.TargetName="grid2" Storyboard.TargetProperty="(FrameworkElement.LayoutTransform).(ScaleTransform.ScaleY)"/>
</Storyboard>

Storyboard story = (Storyboard)this.FindResource("storyBoardName");  
this.BeginStoryboard(story);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...