我在加载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 有人能帮助我吗?
答案 0 :(得分:1)
我的理解是你需要在文本框加载时调用故事板。
下面的代码对我有用。
的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();
}