我有這個問題,我似乎無法克服。也許有人可以幫忙。比較PropertyPath值
我正在創建一個動態創建DoubleAnimations的方法。我會從數組中爲它提供一組不同的用戶控件,並自動創建DoubleAnimations以添加到StoryBoard。
的事情是,我需要插入兩種類型PropertyPaths的:PlaneProjection.RotationYProperty和Control.OpacityProperty。我必須設置Storyboard.SetTarget對他們不同,所以我需要一種方法來比較我在我的方法中調用TargetProperty的PropertyPath參數。爲了解釋這裏有我想要的代碼做一個部分:
if (TargetProperty == new PropertyPath (PlaneProjection.RotationYProperty))
{
// Do some code
projection = control.Projection as PlaneProjection;
Storyboard.SetTarget(doubleAnimation, projection);
}
else if (TargetProperty == new PropertyPath (Control.OpacityProperty))
{
Storyboard.SetTarget(doubleAnimation, control);
}
我能夠通過使用布爾作爲一種解決方法開關,使我的方法工作,但我還是寧願減少參數的個數在我的方法中,如果可能的話。
我已經嘗試使用:
if (TargetProperty.ToString() == new PropertyPath (PlaneProjection.RotationYProperty).ToString())
......還有......
if (TargetProperty.Equals(new PropertyPath (PlaneProjection.RotationYProperty)))
...但他們沒有工作。任何想法來解決這個問題?難道我做錯了什麼?
在此先感謝!
你需要'control'創建'doubleAnimation',還是僅僅用於'Storyboard.SetTarget'? –
'control'可以是我想要動畫的任何用戶控件。 'projection'就是這個控制器的'PlaneProjection'。是的,它僅用於'Storyboard.SetTarget'。 我的方法最初同時處理控件的平面投影和不透明屬性,但我想我會盡量使它與一個工作,以便我可以減少需要傳遞給它的參數的數量。那是當我注意到這個小怪癖。我一直在考慮再次使用舊的方法,但我認爲知道這是否有任何解決方法會很有趣。 – DeVilFisCh