سؤال

هل من الممكن تحميل Control في تطبيق Windows؟

لديّ جيل بريد إلكتروني كويب ، لكنني أريد نقله إلى خدمة Windows للحصول على النشرة الإخبارية الشهرية.

يتم تنفيذ رسائل البريد الإلكتروني الآن باعتبارها UserControls ، وبهذه الطريقة يمكن لـ HTML الشخص تعديل Look & Feel بسهولة.

يشبه تطبيق العرض الحالي:

StringBuilder sb = new StringBuilder(4000);
StringWriter sw = new StringWriter(sb);
HtmlTextWriter htw = new HtmlTextWriter(sw);

Page page = new Page();

EmailTemplateBase emailCtrl = (EmailTemplateBase)page.LoadControl(
                "Controls/EmailTempaltes/Template.ascx");
// Exception here

emailCtrl.DataContext = dataContext;
emailCtrl.Parameter = parameter;
emailCtrl.RenderMode = renderMode;
emailCtrl.DataBind();
emailCtrl.RenderControl(htw);

subject = emailCtrl.Subject;

string MessageText = sb.ToString().Replace("\t", "").Replace(Environment.NewLine, "");

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

المحلول

كان الحل بالنسبة لي هو استدعاء خدمة الويب ، التي تمكنت من إنشاء HTML من .ascx.

  1. تمرير المعلمات اللازمة إلى خدمة الويب
  2. في WebService ، قم ببناء صفحة جديدة ، من LoadControl
  3. اضبط جميع المعلمات
  4. هل تقديم إلى StringBuilder.

يمكنك رؤية التعليمات البرمجية المعنية.

نصائح أخرى

بدلا من ال LoadControl الطريقة المستخدمة في ASP.NET ، يمكنك استخدامها Controls.Add طريقة التحكم الوالد. فقط أضف لوحة لتكون الوالد ثم:

UserControl uc1 = new UserControl //this is your usercontrol

Panel1.Controls.Add(uc1);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top