這篇文章裡面
非常詳細地講解了關於silverlight中動畫的targetproperty設定。但是對於我來說,貌似還是沒有解決我的問題。
首先我檢視了sl4的中文開發文件,發現文件裡面uielement::
rendertransform的一句描述如下:
這通常是由 silverlight 定義的變換之一:rotatetransform
、scaletransform
、skewtransform
、translatetransform
、matrixtransform
、transformgroup
。經過實踐發現,還有一種compositetransform:
包含的屬性:
name (dependencyobject)
, centerx
, centery
, rotation
, scalex
, scaley
, skewx
, skewy
, translatex
, translatey
以上全部的都查詢之後發現。只有這個沒有出現在文件中的存在translatex
, translatey這兩個屬性。
為什麼需要找這兩個屬性呢?因為我本身在blend 4中使用blend生成的,在grid控制項裡面新增其他控制項的移動動畫的時候發現繫結的目標屬性是:
storyboard.targetproperty="(uielement.rendertransform).(compositetransform.translatey)" 於是直接使用引號裡面的東東。
執行除錯-報錯「無法解析指定物件的 targetproperty (uielement.rendertransform).(compositetransform.translatey)」然後各種悲劇。沒辦法,繼續度娘。
這次發現無法解析的原因就是因為:
sp.rendertransform = new compositetransform();
這個rendertransform沒有生命或者宣告錯誤了導致的。趕緊改好。
再次執行---一起ok,動畫有了。。。我只是單純的使用y軸偏移做了乙個事例。
doubleanimation aniy = newdoubleanimation()
;aniy.to = 100;//
下面這句非常重要,否則無法解析targetproperty
sp.rendertransform = new
compositetransform();
storyboard.settarget(aniy, sp);
storyboard.settargetproperty(aniy,
new propertypath("
(uielement.rendertransform).(compositetransform.translatey)
"));
storyboard story = new
storyboard();
story.children.add(anix);
story.children.add(aniy);
story.begin();
Silverlight開發歷程 動畫(線性動畫)
故事板與事件觸發器 storyboard 故事板 必須指定兩個屬性 targetname 目標物件 和targetproperty 目標屬性 這兩個屬性把故事板與要產生的動畫銜接起來,起到橋梁的作用。看下面的例子 在上面的例子中,我們為這乙個故事板新增了乙個doubleanimation型別的動畫,...
Silverlight開發歷程 動畫(線性動畫)
故事板與事件觸發器 storyboard 故事板 必須指定兩個屬性 targetname 目標物件 和targetproperty 目標屬性 這兩個屬性把故事板與要產生的動畫銜接起來,起到橋梁的作用。看下面的例子 在上面的例子中,我們為這乙個故事板新增了乙個doubleanimation型別的動畫,...
Silverlight動畫學習筆記 三 緩動函式
一 定義 緩動函式 可以將自定義算術公式應用於動畫 二 為什麼要用緩動函式 您可能希望某一物件逼真地彈回或其行為像彈簧一樣。您可以使用關鍵幀動畫甚至 from to by 動畫來大致模擬這些效果,但可能需要執行大量的工作,並且與使用算術公式相比動畫的精確性將降低。三 例項講解 usercontrol...