سؤال

ويقول دعونا أنني مجنون وأنا أريد أن تنفيذ مشغل تقديم HTML الأساسي مع c #. وأود أن استخدام الضوابط WPF لعرض تخطيط HTML.

وبينما لا يوجد شيء لكسب مع مثل هذه الفكرة، وأنا لا تزال ترغب في محاولة من ذلك! فماذا المكتبات والمشاريع والوثائق يساعدني ذلك؟

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

المحلول

ومنذ قدرات WPF XAML هي مجموعة شاملة من قدرات HTML، والى حد كبير كل ما سوف تحتاج إلى القيام به هو رسم خريطة واحدة إلى أخرى.

إذا الإدخال هو XHTML يمكنك ببساطة استخدام XSLT أو LINQ إلى XML للحصول على البيانات.

إذا كنت تستخدم XSLT سوف ينتهي بك الأمر مع XAML أنك تحليل مع XamlReader.Parse () للحصول على UIElement يمكنك إضافتها إلى النافذة أو غيرها من الحاويات WPF. وربما هذا هو المزيد من العمل من استخدام-LINQ إلى XML لXSLT محدودة نسبيا.

إذا كنت تستخدم-LINQ إلى XML يمكنك اختيار لإنتاج XAML ثم تحليل ذلك كما في حالة XSLT، أو يمكنك فقط إنشاء شجرة الكائن مباشرة. إذا قمت بإنشاء XAML باستخدام-LINQ إلى XML، أود أن أكتب رمز الترجمة الفعلية في VB.NET بدلا من C # التي هي لغتي المفضلة العادية. جملة "XML حرفية" VB.NET يجعل هذا الجزء من المهمة أسهل.

إذا الإدخال هو HTML التعسفية وليس XHTML، وأود أن استخدام مكتبة طرف ثالث لتحويلها إلى XHTML والعمل من هناك. التعامل مع كل الغرابة الاعراب HTML غير الكثير من العمل وربما معظمهم لا علاقة لها هدف الفعلي.

إذا كنت ترغب فقط في عرض HTML دون تحويلها إلى كائنات WPF، يمكنك استخدام عنصر تحكم الإطار.

نصائح أخرى

وتقديم HTML سوف يكون من السهل مجرد تحويل إلى XAML الملف وتقديم ينبغي أن تكون سريعة جدا. سوف تحصل على HW تسارع المتصفح مع تقريب جميلة والخطوط.

ولكن كيف تتعاملون مع المغلق - سوف تحتاج إلى إنشاء أنماط (القرف)؟ DHTML، HTML5 وجافا النصي .. الكثير من صفحات تتطلب الآن هذه thinsg كنت غير قادر حتى مشاهدته.

وطريقة سهلة للجافا سكريبت لاستخدام استخدامات محلل الجميع، قد يكون هناك طريقة أفضل (وجافا سكريبت لالمجمعين CIL؟)

وأتش تي أم أل موزعي، مع تعيين المكتوب إلى بدائل XAML، مثيرة للاهتمام ... وربما يمكنك استخدام ANTLR للمحلل lexer http://www.antlr.org/ أو بشكل أكثر تحديدا [هرس] codeproject مثيرة للاهتمام، مشروع <لأ href = "http://www.codeproject.com/KB/cs/TagBasedHtmlParser.aspx" يختلط = "نوفولو noreferrer "> http://www.codeproject.com/KB/cs/TagBasedHtmlParser.aspx ، أنت ربما محاولة تحويل أتش تي أم أل الخاص بك إلى XAML، التي من شأنها أن تكون مثيرة للاهتمام للغاية:)

وأعتقد أن هذا المشروع هو بالضبط ما كنت تهدف إلى تحقيق ما يلي:
https://htmlrenderer.codeplex.com/
ربما يمكن أن تعمل على ذلك، وإضافة دعم HTML 5 و CSS 3!

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