如何指定属性路径?

时间:2014-03-25 10:32:26

标签: c# wpf xaml

在给定的xaml中,有一部分:

<ColorAnimation Storyboard.TargetProperty="Background.(SolidColorBrush.Color)" To="Black" Duration="0:0:3"/>

如果我只指定"Background",那么它就不起作用了。为什么?我在哪里可以获得有关制作路径的信息?

P.S。:我看到了一些非常疯狂的道路,比如"(blablabla).(blablabla).(blablabla.blablabla)",这让我很紧张,因为我无法轻易找到它意味着......

2 个答案:

答案 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>