在类MainWindow.xaml.cs中调用EventTrigger RoutedEvent

法兰肯天

加载TextBlock时,我有一个EventTrigger调用:

<TextBlock Name="Hit" Text="Hit!">
 <TextBlock.Triggers>
  <EventTrigger RoutedEvent="TextBlock.Loaded">
   <BeginStoryboard>
    <Storyboard>
       <DoubleAnimation 
       Storyboard.TargetProperty="Opacity"
       From="0" To="1" Duration="0:0:1"/>
    </Storyboard>
   </BeginStoryboard>
  </EventTrigger>
 </TextBlock.Triggers>
</TextBlock>

但是我想创建自己的启动器,并在我的C#类中直接调用此EventTrigger。
有人能帮我吗?

贾斯汀·CI

我的理解是,在加载文本框时,您需要调用故事板。

下面的代码为我工作。

Xaml:

<Window x:Class="WpfApplication6.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:vm="clr-namespace:WpfApplication6"
        Title="MainWindow" Height="350" Width="525">
    <Window.Resources>

            <Storyboard x:Key="animation">
                <DoubleAnimation 
       Storyboard.TargetProperty="Opacity"
       From="0" To="1" Duration="0:0:1"/>
            </Storyboard>

    </Window.Resources>

    <Window.DataContext>
        <vm:ViewModel></vm:ViewModel>
    </Window.DataContext>
    <Grid x:Name="grid">
        <StackPanel>
        <TextBlock Name="Hit" Width="200" Height="100" Text="Hit!">          
        </TextBlock>       
        </StackPanel>       
    </Grid>
</Window>

代码:

public MainWindow()
        {
            this.InitializeComponent();
            Hit.Loaded += Hit_Loaded;

        }

        private void Hit_Loaded(object sender, RoutedEventArgs e)
        {
            Storyboard sb = this.FindResource("animation") as Storyboard;
            Storyboard.SetTarget(sb, this.Hit);
            sb.Begin();
        }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章