[英]Why is my ListView-Item only jumping back to VisualState Selected, once?
[英]Listview-item animation that starts on different items at random
我正在嘗試為列表視圖項目制作“消失”的動畫。
我有兩個動畫,一個是Doubleanimation,將不透明度從1設置為0,另一個動畫是Thicknessanimation,其將邊距從0,0,0,0設置為50,0,0,0。
如果將其設置為Stackpanel的樣式(位於Listview.Itemtemplate中),它們將同時進行動畫處理,這看起來有點無聊。 所以我想讓每個對象在隨機時間開始動畫。 在WPF中是否有一種很好的方法?
動畫由Datatrigger觸發。
為了正確實現,您需要實現一個自定義Panel
。 如果您以前沒有做過,那並不是那么困難,這絕對是所有WPF開發人員在需要時都應該做的事情。 您可以在MSDN 上“面板概述”頁面的“ 自定義面板元素”部分中找到大量信息和代碼示例。 另請參閱WPF Tutorial.net上的“ 如何在WPF中創建自定義布局面板”一文。
因此,這將為您提供有關如何創建自定義Panel
的想法...您基本上只需實現兩個MeasureOverride
和ArrangeOverride
方法,即可在其中訪問相關集合控件中的元素。 我有幾個這樣的動畫Panel
,可以從ArrangeOverride
方法中為每個孩子的Opacity
設置動畫,如下所示:
private void AnimateOpacity(UIElement child, double from, double to,
TimeSpan animationDuration, EventHandler animationCompletedHandler)
{
DoubleAnimation opacityAnimation = new DoubleAnimation(from, to, animationDuration,
FillBehavior.HoldEnd);
if (animationCompletedHandler != null) opacityAnimation.Completed +=
animationCompletedHandler;
child.BeginAnimation(UIElement.OpacityProperty, opacityAnimation,
HandoffBehavior.Compose);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.