加载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。
有人能帮我吗?
我的理解是,在加载文本框时,您需要调用故事板。
下面的代码为我工作。
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] 删除。
我来说两句