如何在XAML中加载动画?文本块左滑入场动画失效求助
问题分析与解决
你的动画未生效的核心原因是没有给TextBlock显式指定RenderTransform为TranslateTransform,动画目标属性(RenderTransform).(TranslateTransform.X)需要依赖一个已存在的TranslateTransform实例才能生效。
修改后的完整代码
<TextBlock Foreground="#365B6D" Margin="0, 20, 0, 0" Style="{StaticResource topsmalltext}" TextAlignment="Center"> Who uses social media? <TextBlock.RenderTransform> <!-- 必须显式定义TranslateTransform,动画才能找到对应的X属性 --> <TranslateTransform /> </TextBlock.RenderTransform> <TextBlock.Triggers> <EventTrigger RoutedEvent="TextBlock.Loaded"> <BeginStoryboard> <Storyboard> <DoubleAnimation From="-384" To="0" Storyboard.TargetProperty="(RenderTransform).(TranslateTransform.X)" Duration="0:0:2" /> </Storyboard> </BeginStoryboard> </EventTrigger> </TextBlock.Triggers> </TextBlock>
关键说明
- 当你在动画中引用
(RenderTransform).(TranslateTransform.X)时,XAML底层需要TextBlock的RenderTransform已经是TranslateTransform对象,否则动画无法定位到对应属性,自然不会执行。 - 若不指定RenderTransform,TextBlock默认的RenderTransform是IdentityTransform,而非TranslateTransform,导致动画的属性路径无效。
内容的提问来源于stack exchange,提问作者arctg30
相关产品推荐
相关产品推荐

