<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      (轉載)解決WPF動畫屬性鎖死問題

      此文來自: 馬開東博客 轉載請注明出處 網址: http://www.makaidong.com

      一般鎖死問題都是出在后臺代碼寫的動畫中,以下為轉載的解決方案!

      方法一:將動畫的 FillBehavior 屬性設置為 Stop:

      storyboard.FillBehavior = FillBehavior.Stop;

      通過將FillBehavior設置為Stop,即通知動畫在到達其活動期末尾后停止

      影響其目標關聯屬性。雖然達到了目的,但必須等待動畫結束時才會生效,且更關鍵的是之前被storyboard修改過的所有關聯屬性值此時都被還原成了初始值。因此,此方法只適合用于制作類似網頁中的導航菜單按鈕:當鼠標懸停在菜單上時,菜單圖形按鈕執行一段華麗的變化動畫;當鼠標移開后即變回為初始圖片。

       

      方法二:移除整個動畫板(Storyboard)。此方法必須通過類似           

      Leader.BeginStoryboard(storyboard, HandoffBehavior.SnapshotAndReplace, true);或

      storyboard.Begin(Leader, HandoffBehavior.SnapshotAndReplace, true);

      這兩種方式啟動動畫,然后在需要解鎖時通過

      storyboard.Remove(Leader); storyboard = null; 通知動畫板動畫停止影響名為Leader對象的目標關聯屬性,并移除storyboard。需要特別注意的是①必須將動畫的IsControllable參數設置為true;②HandoffBehavior最好設置為SnapshotAndReplace,此枚舉的作用是:新動畫將替換它們所應用到的關聯屬性上的任何現有動畫。

      方法三:從單個關聯屬性移除動畫。同樣的以精靈角色朝向為例,如果該屬性已被Storyboard鎖定,那么如果此時需要對其值進行更改,我們可以通過類似:

      Leader.BeginAnimation(QXSpirit.DirectionProperty, null);或

      Leader.ApplyAnimationClock(QXSpirit.DirectionProperty, null);

      這兩種方法來禁止關聯到Leader的動畫繼續影響Leader的DirectionProperty關聯屬性(此方法對于非動畫板動畫

       

      也同樣有效)。接著后面我們就可以輕松的通過Leader.Direction = 0 為精靈的朝向屬性進行賦值并在畫面中得到體現。

          以上三種解決方案 在WPF中靈活的配合storyboard.Children.Clear();使用幾乎可以應付任何關于Storyboard鎖死關聯屬性的問題;但是在Silverlight 中卻往往不盡如人意。畢竟只是WPF的子集,在功能與方法上有著太少的支持。因此,我拓展了以下兩種解決方案 ,更重要的,它們均為WPF/Silverlight 通用的且藥到病除的終極策略。

      方法四:可以通過每次運行新的動畫時先暫停之前的動畫(注意,是暫停(Pause)而不是停止(Stop)),例如storyboard.Pause(Leader);然后再創建一個新的動畫板storyboard = new Storyboard();這樣,之前被storyboard修改過的關聯屬性目標值會被新的storyboard作為起點屬性值,從而完美實現關聯屬性在動畫與動畫之間的銜接。有些朋友會問那之前的storyboard是否會繼續占用內存空間?對于.net的內存回收機制我們無法控知,根據我多方查閱的資料,若您不放心,不妨在創建新的Storyboard前,通過storyboard = null 將之注銷掉,在Silverlight 動畫中我是這樣做的,實踐證明此方法確實達到的目的。

      方法五:以毒攻毒。既然是Storyboard鎖死了我們需要更改的關聯屬性,那么我們同樣可以通過Storyboard動畫的形式來賦值更改這些關聯屬性。此方法乃下下策,缺點是毫無性能而言;優點是萬能性:適合一切被Storyboard鎖死的關聯屬性的修改,且無論是在WPF還是Silverlight 中。下面同樣以精靈的朝向為例,我們可以通過:

      DoubleAnimation doubleAnimation = new DoubleAnimation();

      doubleAnimation.To = direction;

      doubleAnimation.Duration = new Duration(TimeSpan.FromMilliseconds(10));

      Storyboard.SetTarget(doubleAnimation, spirit);

      Storyboard.SetTargetProperty(doubleAnimation, new PropertyPath("Direction"));

      storyboard.Children.Add(doubleAnimation);

       

      storyboard.Begin();
      這樣的動畫形式對QXSpirit.DirectionProperty關聯屬性進行強行更改。

            本節小結:希望以上5種解鎖Storyboard關聯屬性的解決方案 能對大家的WPF/Silverlight 動畫開發有所幫助;同時,如果哪些地方有寫得不妥或有錯漏的也請大家不吝賜教,我會及時進行修改及更正。

      posted @ 2016-03-09 16:10  我丫的是條魚  Views(1462)  Comments(0)    收藏  舉報
      主站蜘蛛池模板: 四虎永久免费高清视频| 日韩丝袜人妻中文字幕| 亚洲av不卡电影在线网址最新| 国产精品福利中文字幕| 欧美激情肉欲高潮视频| 国产成人高清亚洲一区91| 亚洲av无一区二区三区| 国产特级毛片aaaaaa毛片 | 亚洲成色精品一二三区| 99精品免费久久久久久久久日本| 久久99精品久久久久久齐齐| 粉嫩av蜜臀一区二区三区| 国产亚洲精品自在久久蜜TV | 国产成AV人片久青草影院| 精品嫩模福利一区二区蜜臀| 午夜福利在线观看6080| 人人妻人人澡人人爽欧美一区双| 亚洲另类激情专区小说图片| 香港特级三A毛片免费观看| 无码射肉在线播放视频| 成年女人片免费视频播放A| 精品亚洲精品日韩精品| 东方av四虎在线观看| 亚洲精品国产字幕久久麻豆| 色欧美片视频在线观看| 亚洲av二区国产精品| 无码人妻熟妇av又粗又大| 国产边打电话边被躁视频| 亚洲另类激情专区小说图片| 大屁股肥熟女流白浆| 国产精品视频午夜福利| 福利一区二区在线视频| 湟源县| 亚洲中文无码av永久不收费| 日本福利一区二区精品| 亚洲综合色在线视频WWW| 国产美女午夜福利视频| japanese无码中文字幕| 国产精品入口中文字幕| 国产精品 视频一区 二区三区| 亚洲国产初高中生女av|