سؤال

في مشروعنا Silverlight 2 لقد أنشأنا خاصية مرفقة لأداء الترجمة داخل الفراغ إلى خصائص النص عناصر تحكم المستخدم المختلفة. لتحقيق ذلك، نحن ربط الحدث المحمل لل FrameworkElement عند تعيين الخاصية. عندما ينطلق الحدث، نأخذ قيمة خاصية النصية الحالية وأداء بعض بدائل السلسلة البسيطة عليها، قبل استبدال قيمة الخاصية بالنص المترجم. ومع ذلك، يؤدي ذلك إلى تقديم عنصر التحكم بالنص غير المتردد، ثم يتم استبدال النص بسرعة بالنسخة المترجمة.

هل هناك حدث بديل يمكننا ربط ذلك بإطلاق النار قبل أن يتم تقديم السيطرة؟

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

المحلول

لقد غيرت التعليمات البرمجية الخاصة بي بحيث تقوم الآن بالترجمة بمجرد استدعاء STERER الخاص بالخاصية المرفقة. ليست هناك حاجة لانتظار FrameworkElement أن تنتهي من التحميل، حيث يمكنني تغيير خاصية النص لفترة طويلة قبل تقديم العنصر.

كانت أفكاري الأولية في استخدام الحدث المحمل لتقليل وقت بدء تشغيل التطبيق من خلال ترجمة عناصر التحكم فقط التي كانت مرئية على الشاشة. نظرا لأنني اتضح، فأنا تكرير بعض العمل الذي أجريته بواسطة وقت التشغيل، حيث لن يقوم وقت التشغيل باستدعاء STERTER الخاصية حتى يحتاج إلى أي حال.

نصائح أخرى

أنا لست متأكدا تماما من هذا، ولكن يمكنك استخدام LayoutUpdated حدث. سوف ينطلق عندما يتم تغيير حجم عنصر التحكم ومثل هذا (يمكنك اتخاذ تدابير لضمان تنفيذ التعليمات البرمجية فقط مرة واحدة.)

أعلم أنه لا يبدو الأمر وكأنه حدث "الأيمن" لهذا الأمر، لكن لسوء الحظ، يترك Silverlight Kinda عليك الوقوف هناك يحمله عندما يتعلق الأمر بالأحداث.

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