2010-10-27 84 views
2
<LinearGradientBrush x:Key="BrushPrincipalBorderBlue" EndPoint="1.3,1" StartPoint="-0.2,0"> 
     <GradientStop Color="#FF030637" Offset="1"/> 
     <GradientStop Color="#FF0E0F31" Offset="0.166"/> 
     <GradientStop Color="#FF2E2F70" Offset="0.629"/> 
     <GradientStop Color="#FF030637" Offset="0.63"/> 
    </LinearGradientBrush> 

    <Storyboard x:Key="GoToBlue"> 
     <ColorAnimation Storyboard.TargetName="border" Storyboard.TargetProperty="Background.GradientStops[3].Color" Duration="0:0:0.5" 
     To="{DynamicResource BrushPrincipalBorderBlue.GradientStops[3].Color}" /> 
    </Storyboard> 

我怎样才能将'To'属性设置为我的画笔的GradientStop颜色?因为调用我称之为的方式是行不通的。WPF上的ColorAnimation渐变色

回答

0

不知道你想要做的,但补偿的是双号,因此你需要使用DoubleAnimation是像这样的:

 <Canvas.Triggers> 
      <EventTrigger RoutedEvent="Canvas.Loaded"> 
       <BeginStoryboard> 
        <Storyboard> 
         <DoubleAnimation 
          Storyboard.TargetName="BlackCanvasGradient" 
          Storyboard.TargetProperty="Offset" 
          From="0" To="0.8" Duration="0:0:2" > 
         </DoubleAnimation> 
        </Storyboard> 
       </BeginStoryboard> 
      </EventTrigger> 
     </Canvas.Triggers> 
+0

我想改变的LinearGradient的颜色。我不想移动渐变的偏移。我混淆了一些说法来设置偏移量,我意味着一个GradientStop – shinji14 2010-10-28 15:55:10

0

的BrushPrincipalBorderBlue名字仅仅是一个关键的它是不是一个实际的一个LinearGradientBrush因此没有任何属性。通过向画笔添加名称,我可以消除错误。看看是否适合你。

<Window.Resources> 
    <LinearGradientBrush x:Name="myBrush" x:Key="BrushPrincipalBorderBlue" EndPoint="1.3,1" StartPoint="-0.2,0"> 
    <GradientStop Color="#FF030637" Offset="1"/> 
    <GradientStop Color="#FF0E0F31" Offset="0.166"/> 
    <GradientStop Color="#FF2E2F70" Offset="0.629"/> 
    <GradientStop Color="#FF030637" Offset="0.63"/> 
</LinearGradientBrush> 

<Storyboard x:Key="GoToBlue"> 
     <ColorAnimation Storyboard.TargetName="border" Storyboard.TargetProperty="Background.GradientStops[3].Color" Duration="0:0:0.5" To="{DynamicResource myBrush.GradientStops[3].Color}" /> 
</Storyboard> 

我能够访问颜色的唯一方法是定义他们seperatly即

<Window.Resources> 
    <Color x:Key="BrushPrincipalBorderBlue.Color1"> 
     <Color.A>#FF</Color.A> 
     <Color.B>#03</Color.B> 
     <Color.R>#06</Color.R> 
     <Color.G>#37</Color.G> 
    </Color> 
    <Color x:Key="BrushPrincipalBorderBlue.Color2"> 
     <Color.A>#FF</Color.A> 
     <Color.B>#0E</Color.B> 
     <Color.R>#0F</Color.R> 
     <Color.G>#31</Color.G> 
    </Color> 
    <Color x:Key="BrushPrincipalBorderBlue.Color3"> 
     <Color.A>#FF</Color.A> 
     <Color.B>#2E</Color.B> 
     <Color.R>#2F</Color.R> 
     <Color.G>#70</Color.G> 
    </Color> 
    <Color x:Key="BrushPrincipalBorderBlue.Color4"> 
     <Color.A>#FF</Color.A> 
     <Color.B>#03</Color.B> 
     <Color.R>#06</Color.R> 
     <Color.G>#37</Color.G> 
    </Color> 
    <LinearGradientBrush x:Key="BrushPrincipalBorderBlue" EndPoint="1.3,1" StartPoint="-0.2,0"> 
     <GradientStop Color="{DynamicResource BrushPrincipalBorderBlue.Color1}" Offset="1"/> 
     <GradientStop Color="{DynamicResource BrushPrincipalBorderBlue.Color2}" Offset="0.166"/> 
     <GradientStop Color="{DynamicResource BrushPrincipalBorderBlue.Color3}" Offset="0.629"/> 
     <GradientStop Color="{DynamicResource BrushPrincipalBorderBlue.Color4}" Offset="0.63"/> 
    </LinearGradientBrush> 
    <LinearGradientBrush x:Key="BrushPrincipalBorderOriginal" EndPoint="1.3,1" StartPoint="-0.2,0"> 
     <GradientStop Color="#FFFFFFFF" Offset="1"/> 
     <GradientStop Color="#FFFFFFFF" Offset="0.166"/> 
     <GradientStop Color="#FFFFFFFF" Offset="0.629"/> 
     <GradientStop Color="#FFFFFFFF" Offset="0.63"/> 
    </LinearGradientBrush> 
</Window.Resources> 
<Grid Name="myGrid" Background="{DynamicResource BrushPrincipalBorderOriginal}" > 
    <Grid.Triggers> 
     <EventTrigger RoutedEvent="Canvas.Loaded"> 
      <BeginStoryboard> 
       <Storyboard> 
        <ColorAnimation Storyboard.TargetName="myGrid" Storyboard.TargetProperty="Background.GradientStops[3].Color" Duration="0:0:2" To="{DynamicResource BrushPrincipalBorderBlue.Color3}" AutoReverse="True" RepeatBehavior="Forever"/> 
       </Storyboard> 
      </BeginStoryboard> 
     </EventTrigger> 
    </Grid.Triggers> 
</Grid> 

+0

是的,它的编译,但颜色不会改变。 – shinji14 2010-10-28 15:53:45