2012-12-18 71 views
0

是有可能得到的元素XAML:有一個元素的當前顏色在故事板

<UserControl.Resources> 
<Storyboard x:Name="SBFade"> 
    <ColorAnimationUsingKeyFrames x:Name="keyframes" Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)" Storyboard.TargetName="LayoutRoot"> 
     <EasingColorKeyFrame KeyTime="0" Value="#FF681D1D"/> 
     <EasingColorKeyFrame KeyTime="0:0:0.6" Value="Gray"/> 
    </ColorAnimationUsingKeyFrames> 
</Storyboard> 
</UserControl.Resources> 

<Grid x:Name="LayoutRoot" Background="#808080" >.....</Grid> 

的當前顏色在生產線,其中值#FF681D1D,我想有當前網格的背景顏色(此顏色可以在運行時的任何幫助在非關鍵幀動畫改變.. 謝謝!

+0

而不是獲取背景顏色,你可以嘗試使用「Transaparent」,看看你是否得到相同的效果。 –

+0

這是一個好主意!但是,當我嘗試這樣做,網格變得透明的灰色..我期待從實際顏色漸變到灰色 –

+1

您是否嘗試過Value =「{Binding Background,ElementName = LayoutRoot}? –

回答

0

,省略了「從」值會做你想要什麼。

像:

<Storyboard x:Name="SBFade"> 
    <ColorAnimation x:Name="keyframes" Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)" Storyboard.TargetName="LayoutRoot" To="Gray" Duration="0:0:0.6" /> 
</Storyboard> 

或者,對於關鍵幀,如果您省略早期/第一個關鍵幀,則會得到相同的效果。使用除DiscreteColorKeyFrame以外的任何其他顏色(在指定時間跳轉到指定顏色而無插值)將在顏色之間進行插值。

<Storyboard x:Name="SBFade"> 
    <ColorAnimationUsingKeyFrames x:Name="keyframes" Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)" Storyboard.TargetName="LayoutRoot"> 
     <EasingColorKeyFrame KeyTime="0:0:0.6" Value="Gray"/> 
    </ColorAnimationUsingKeyFrames> 
</Storyboard> 

這些是非常相似的實施例MSDN和ColorAnimationColorAnimationUsingKeyFrames(向下滾動到XAML例子)。

如果要編寫反轉動畫(從Gray到任何顏色不退色),在視圖模型中保持所需的顏色,並將To屬性(在非關鍵幀動畫的情況下)或Value屬性(在關鍵幀動畫的情況下)該視圖模型的屬性。

+0

謝謝!!只需省略「From」,它就是好! –