2014-03-25 45 views
0

在一個給定的XAML中,有一個部分:如何指定屬性路徑?

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

如果我只指定"Background",那麼這是行不通的。爲什麼?我在哪裏可以獲得關於製作路徑的一些信息?

PS:我看到一些很瘋狂的路徑,像"(blablabla).(blablabla).(blablabla.blablabla)",這讓我很緊張,因爲我無法找到是什麼意思...容易

+1

'Background'屬於'Brush'類型,這是'ColorAnimation',可以爲由'SolidColorBrush'發佈的'Color'生成動畫。對於規則檢查['PropertyPath XAML語法'](http://msdn.microsoft.com/en-us/library/ms742451(v = vs.110).aspx) – dkozl

+0

@dkozl,它仍然不是很清楚如何形成路徑。例如,''「Background.Color」'在我的情況下工作。但是,這個'方括號內的SolidColorBrush'部分看起來像是類型轉換,給出的描述(在鏈接中)非常差,有限,我覺得它是不完整的。你知道更好的嗎? – Sinatr

+1

是的,'SolidColorBrush'的'Background.Color'也可以。如果沒有'Color'屬性只是'Background。(SolidColorBrush.Color)'''期望它是'SolidColorBrush',那麼兩種情況都會失敗,其中'Background.Color'將滿足於任何'Color'屬性,所以如果你需要另一個'刷'類型'顏色'屬性它也可以工作 – dkozl

回答

2

如果只Background,因爲它不工作故事板會動畫一種顏​​色,並且此顏色是Background屬性的Color屬性。

Background是一個畫筆,所以它可以包含任何類型的畫筆。爲了訪問Color,畫筆需要轉換爲SolidColorBrush

這基本上是表達Background.(SolidColorBrush.Color)所做的。它將Background轉換爲SolidColorBrush,然後從中訪問Color屬性。

在C#代碼,你會寫

 ((SolidColorBrush)Background).Color = someColor; 
+0

我沒有注意到它是'刷子'。謝謝。剩下的唯一問題是語法。我期望像'「((SolidColorBrush)Background).Color」',但在xaml中顯示爲'Background。(SolidColorBrush.Color)'。你知道這個有什麼參考嗎? 'type conversion xaml'在google中給出'TypeConverters'作爲結果。 – Sinatr

+0

發現我自己。它被稱爲「類型合格的屬性」。 – Sinatr

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> 

例題

<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> 
+0

'「Background.Color」'也可以,謝謝。 – Sinatr