日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

WPF动画之后属性值无法改变

發(fā)布時(shí)間:2025/6/17 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WPF动画之后属性值无法改变 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
WPF動(dòng)畫之后屬性值無(wú)法改變 原文:WPF動(dòng)畫之后屬性值無(wú)法改變

? ? ? ? 前一段時(shí)間使用WPF2048游戲的時(shí)候,遇到下面的情形:使用按鍵對(duì)色塊進(jìn)行移動(dòng)時(shí),觸發(fā)位置左邊XY屬性的DoubleAnimation動(dòng)畫,但是如果此時(shí)改變窗口的大小,并觸發(fā)Canvas.SetLeft重新設(shè)置色塊的位置時(shí),發(fā)現(xiàn)色塊沒有更新到正確的位置上。

? ? ? ??通過調(diào)試發(fā)現(xiàn),Canvas.SetLeft調(diào)用前后XY的數(shù)值并沒有發(fā)生變化。

? ? ? ??最終在微軟官網(wǎng)找到原因

? ? ? ??http://msdn.microsoft.com/zh-cn/library/aa970493(v=VS.100).aspx

? ? ? ??官方解釋,某些情況下,對(duì)屬性進(jìn)行動(dòng)畫處理之后,無(wú)法修改該屬性的值。

? ? ? ??也就是說(shuō),動(dòng)畫對(duì)數(shù)值進(jìn)行了加鎖,在解鎖之前,其他代碼無(wú)法對(duì)其進(jìn)行修改。

? ? ? ??官網(wǎng)提供三種解決方法:

? ? ? ?1、?將動(dòng)畫的?FillBehavior?屬性設(shè)置為?Stop

? ? ? ??2、移除整個(gè)演示圖板。

? ? ? ? 3、?從單個(gè)屬性移除動(dòng)畫。

? ? ? ??第一種方式在動(dòng)畫結(jié)束之后,數(shù)值會(huì)恢復(fù)之前的值,所以最終需要重新設(shè)定該值。

? ? ? ??第二種方式通過使用?RemoveStoryboard?或?Storyboard.Remove移除Storyboard,直接消除其影響。

? ? ? ??第三種使用正在進(jìn)行動(dòng)畫處理的對(duì)象的?BeginAnimation(DependencyProperty,?AnimationTimeline)?方法。?將正進(jìn)行動(dòng)畫處理的屬性指定為第一個(gè)參數(shù),將?null?指定為第二個(gè)參數(shù)。

? ? ? ??上面三種方法親測(cè)可用。

?

?

posted on 2019-05-01 10:16 NET未來(lái)之路 閱讀(...) 評(píng)論(...) 編輯 收藏

轉(zhuǎn)載于:https://www.cnblogs.com/lonelyxmas/p/10799261.html

總結(jié)

以上是生活随笔為你收集整理的WPF动画之后属性值无法改变的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。