在给定的xaml中,有一部分:
<ColorAnimation Storyboard.TargetProperty="Background.(SolidColorBrush.Color)" To="Black" Duration="0:0:3"/>
如果我只指定"Background"
,那么它就不起作用了。为什么?我在哪里可以获得有关制作路径的信息?
P.S。:我看到了一些非常疯狂的道路,比如"(blablabla).(blablabla).(blablabla.blablabla)"
,这让我很紧张,因为我无法轻易找到它意味着......
答案 0 :(得分:2)
如果您只指定Background
,则不起作用,因为故事板会为颜色设置动画,而此颜色是Color
属性的Background
属性。
Background
是一个画笔,所以它可以包含任何类型的画笔。要访问Color
,需要将画笔转换为SolidColorBrush
。
这基本上就是表达式Background.(SolidColorBrush.Color)
的作用。它会将Background
转换为SolidColorBrush
,然后从中访问Color
属性。
在c#代码中你会写
((SolidColorBrush)Background).Color = someColor;
答案 1 :(得分:1)
试试这个
<强>示例1 强>
<Button>
<Button.Triggers>
<EventTrigger RoutedEvent="Loaded">
<BeginStoryboard>
<Storyboard>
<ColorAnimation Storyboard.TargetProperty="Background.Color" From="Transparent" To="Red" Duration="0:0:0.1"></ColorAnimation>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Button.Triggers>
</Button>
<强>示例2 强>
<Grid>
<Button x:Name="Button"></Button>
<Grid.Triggers>
<EventTrigger RoutedEvent="Loaded">
<BeginStoryboard>
<Storyboard>
<ColorAnimation Storyboard.TargetName="Button" Storyboard.TargetProperty="Background.Color" From="Transparent" To="Green" Duration="0:0:0.1"></ColorAnimation>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Grid.Triggers>
</Grid>