سؤال

لدي تطبيق WPF بسيط يحتوي على عنصر تحكم مستخدم متحرك داخل وخارج زوج من قصص المصورة على النافذة الرئيسية. أنا أسقط عتامة التحكم في المستخدم، Scaletranshorm.scalex و Scaletransform.Scaley لنوبثها داخل وخارج المنظر. يبدو رائعا باستثناء المرة الأولى التي يعمل بها. يتم تعيين الرسوم المتحركة لتأخذ 3/10 من الثانية، على الرغم من أنني زادت هذا أثناء الاختبار الخاص بي. لقد حاولت تحديد قيمة افتراضية في جزء صغير من الثانية لمعرفة ما إذا كانت هناك مشكلة حيث لا تتخلص قيم الخصائص التي أقيمها المتحركة كما هو متوقع. هذا لم يفعل شيئا. أنا حتى استدعاء الرسوم المتحركة الخاصة بي بشكل صريح على النافذة التي تم تحميلها لمعرفة ما إذا كان هذا من شأنه أن يساعدني في تعيين القيم الافتراضية، ولكن ذلك لم يعمل أيضا. هل هناك بعض التهيئة التي يقوم بها وقت التشغيل في المرة الأولى التي أطلق فيها الرسوم المتحركة؟ هل هناك طريقة يمكنني الاتصال بها صراحة هذا النوع من التهيئة قبل إظهار واجهة المستخدم؟ الأعراض هي أن عنصر التحكم غير مرئي حتى حوالي 2/10 من الثانية في الرسوم المتحركة الأولى. في بعض الأحيان يكون الأمر أطول ويوضح عنصر التحكم بعد أن كانت الرسوم المتحركة بالكامل (التعتيم والحجم هي قيمها النهائية عندما تظهر أخيرا).

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

المحلول

يبدو أنك تحدد DataContext من UserControl مباشرة قبل الرسوم المتحركة. من المفترض أن يكون لديك ملزمة يحدث، مما يؤدي إلى إنشاء كائنات مرئية وإضافةها إلى الشجرة المرئية في نفس الوقت من المفترض أن تبدأ الرسوم المتحركة. هذا يتطلب معالجة الرسوم المتحركة تقاتل من أجلها. طريقة تجنب ذلك هي أن يكون لديك عنصر تحكم مثيل (مع مجموعة DataContext)، ولكن مخفي، لذلك لا يلزم إجراء إنشاء الكائنات المرئية في وقت الرسوم المتحركة. (عبر عملي في العمل Tim Lee)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top