我有一个(跛脚)用户要求使控件超级可见。
可悲的是,这意味着闪烁的背景(Ug)。
因此,控件是Border
,只有在相当罕见的情况下才能看到TextBlock
。
我看了几个动画示例,他们都有一个" Trigger"在他们。最常见的是当用户点击某些内容时。
有没有办法让动画一直运行(如果控件当然可见)?
答案 0 :(得分:4)
在这里,RepeatBehavior="Forever"
将使动画保持运行直到停止或删除
您可以在控制负载上启用自动反转的颜色动画,让它永远运行
<Border Background="Transparent">
<TextBlock Text="some text" />
<Border.Triggers>
<EventTrigger RoutedEvent="Loaded">
<BeginStoryboard>
<Storyboard>
<ColorAnimation To="SkyBlue"
Storyboard.TargetProperty="Background.Color"
RepeatBehavior="Forever"
AutoReverse="True" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Border.Triggers>
</Border>
如果您需要在可见性更改时触发动画,那么这是一种方法,请注意,当IsVisible属性变为true时应用动画,当它变为false时停止动画。
<Border Background="Transparent">
<TextBlock Text="some text" />
<Border.Style>
<Style TargetType="Border">
<Style.Triggers>
<Trigger Property="IsVisible"
Value="true">
<Trigger.EnterActions>
<BeginStoryboard x:Name="startFlashing">
<Storyboard>
<ColorAnimation To="SkyBlue"
Storyboard.TargetProperty="Background.Color"
RepeatBehavior="Forever"
AutoReverse="True" />
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
<Trigger.ExitActions>
<StopStoryboard BeginStoryboardName="startFlashing" />
</Trigger.ExitActions>
</Trigger>
</Style.Triggers>
</Style>
</Border.Style>
</Border>
通常在可见性设置为false后,如果动画仍在运行或停止,则没有明显的差异。