كيفية إيقاف الرسوم المتحركة في C# / WPF?

StackOverflow https://stackoverflow.com/questions/20298

  •  09-06-2019
  •  | 
  •  

سؤال

لدي شيء من هذا القبيل:

barProgress.BeginAnimation(RangeBase.ValueProperty, new DoubleAnimation(
    barProgress.Value, dNextProgressValue,
    new Duration(TimeSpan.FromSeconds(dDuration)));

الآن كيف يمكنك التوقف عن تلك الرسوم المتحركة (على DoubleAnimation)?السبب في أنني أريد أن أفعل هذا لأنني أود أن أبدأ الرسوم المتحركة الجديد (يبدو ان هذا العمل, ولكن من الصعب أن أقول) و في نهاية المطاف وقف الرسوم المتحركة الماضي...

هل كانت مفيدة؟

المحلول

إلى التوقف عن ذلك ، اتصل BeginAnimation مرة أخرى مع الحجة الثانية تعيين null.

نصائح أخرى

عند استخدام القصص المصورة إلى التحكم في الرسوم المتحركة, تأكد من تعيين المعلمة الثانية إلى true في الرسوم المتحركة كما يمكن السيطرة عليها:

public void Begin(
    FrameworkContentElement containingObject,
    **bool isControllable**
)

هناك طريقتان لإيقاف BeginAnimation.الأول هو استدعاء BeginAnimation مرة أخرى مع المعلمة الثانية تعيين إلى null.سيؤدي هذا إلى إزالة كافة الرسوم المتحركة على الممتلكات ، تعود القيمة إلى القيمة الأساسية.

اعتمادا على كيفية استخدام تلك القيمة قد لا يكون هذا السلوك تريد.الطريقة الثانية هي تعيين الرسوم المتحركة BeginTime إلى null ثم استدعاء BeginAnimation معها.سيؤدي هذا إلى إزالة هذه الرسوم المتحركة محددة وترك قيمة في موقفها الحالي.

DoubleAnimation myAnimation = new Animation();
// Initialize animation
...

// To start
element.BeginAnimation(Property, myAnimation);

// To stop and keep the current value of the animated property
myAnimation.BeginTime = null;
element.BeginAnimation(Property, myAnimation);

إذا كنت تريد القيمة الأساسية لتصبح فعالية قيمة مرة أخرى ، يجب أن وقف الرسوم المتحركة من التأثير مكان الإقامة.هناك ثلاث طرق تفعل هذا مع القصة المصورة والرسوم المتحركة:

  • تعيين المتحركة FillBehavior خاصية التوقف
  • إزالة كامل القصة المصورة
  • إزالة الرسوم المتحركة من الملكية الفردية

من MSDN

كيفية:تعيين خاصية بعد موحية مع القصة المصورة

في حال اضطررت لاستخدام الأمرين ، xaml يحتوي على زر الذي يطلق الزناد الزناد الحرائق القصة المصورة والرسوم المتحركة.

لقد وضع زر التوقف المتحركة مع هذه التعليمات البرمجية خلف:

MyBeginStoryboard.Storyboard.Begin(this, true);
MyBeginStoryboard.Storyboard.Stop(this);

أنا لا أحب ذلك ولكن هذا يعمل حقا هنا.محاولة إعطائها!

<Trigger.EnterActions>
       <BeginStoryboard x:Name="myStory">
       .........
       </BeginStoryboard>
</Trigger.EnterActions>
<Trigger.ExitActions>
       <StopStoryboard BeginStoryboardName="myStory"/>
</Trigger.ExitActions>

وضع الرسوم المتحركة في القصة المصورة.دعوة Begin() ووقف() على لوحة العمل للبدء في وقف الرسوم المتحركة.

يمكنك استخدام هذه التعليمة البرمجية:

[StoryBoardName].Remove([StoryBoardOwnerControl]);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top