كيف يمكنني تضمين عناصر تحكم محددة من system.windows.controls في تطبيق Silverlight الخاص بي؟

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

سؤال

لدى Microsoft إشارة مفيدة لعناصر التحكم المختلفة في System.Windows.Controls مساحة الاسم والتي يتم تضمين عناصر التحكم في وقت التشغيل.

بالنسبة لأي عناصر تحكم مدرجة هنا غير مدرجة في وقت التشغيل ، يجب عليك تضمين الإشارة إلى System.Windows.Controls Assembly وتحديد "نسخة محلية" في Visual Studio. هذا ما أفعله حاليًا وهو يعمل.

ومع ذلك ، من خلال تضمين DLL هذا ، أقوم بإضافة ما يقرب من 80 كيلو بايت إلى ملف XAP الخاص بي (وملف XAP الخاص بي هو 110 كيلو بايت فقط). عنصر التحكم الوحيد الذي أستخدمه يتطلب هو Gridsplitter. هل هناك طريقة لإعادة بناء نسخة مكثفة من هذه التجميع تتضمن Gridsplitter فقط؟

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

المحلول

يبدو أنني وجدت للتو إجابة Silverlight 2 ...

رمز المصدر لـ Silverlight 2 وقت التشغيل وعناصر التحكم في SDK

وأعتقد أن هذا سيعمل بالنسبة لي الآن. يجب أن أكون قادرًا على الذهاب من خلال المشروع واستبعاد جميع البتات غير الضرورية من المشروع وإعادة البناء.

ما زلت أستخدم Silverlight 2 لكنني سأتحول إلى 3 أشهر. ولا يمكنني العثور على نفس الشيء لـ Silverlight 3. ربما لا يكون المصدر متاحًا بعد لـ Silverlight 3؟

تحديث:

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

أخيرًا ، قمت للتو بإنشاء مشروع جديد. يبدو أنني يجب أن أفعل هذا من البداية. كنت بحاجة فقط لإنشاء مكتبة فئة C# Silverlight فارغة لـ Gridsplitter. ثم بدأت في إضافة ملفات المصدر اللازمة لـ Gridsplitter إلى هذا المشروع ، ثم قمت بتعيين مساحة الاسم واسم التجميع إلى system.windows.controls. بعد إنشاء هذا المشروع ، والرجوع إليه في تطبيق Silverlight الخاص بي ، فقد نجح أخيرًا. النتيجة: مدخرات 60 كيلو بايت.

كتبت المزيد عن هذا هنا:

http://regexhero.net/blog/2009/09/optimizing-silverlight-xap-file.html

في حال كان أي شخص يريدهم ، فقد حصلت على 4 من أدوات التحكم من SDK هنا ...

http://www.silverlightxap.com/controls/tagged/silverlight-sdk

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