Eto: بناء سلسلة RTF دون عناء RichTextArea

تم إنشاؤها على ٢٩ مارس ٢٠١٩  ·  12تعليقات  ·  مصدر: picoe/Eto

هذا طلب تحسين.

لدي قائمة طويلة من سطور النص ، يمكن أن يكون لكل سطر لون مختلف. أريد إضافتهم إلى RichTextArea . استخدام Append يعمل لكن الأداء ليس جيدًا.

سيكون من الرائع أن يكون لدينا طريقة لإنشاء سلسلة RTF دون إزعاج RichTextArea ، ثم يمكننا تعيين RichTextArea.Rtf للسلسلة المركبة.

لاحظ أنه على الرغم من إمكانية استخدام lib آخر لإنشاء RTF ، إلا أنهم يستخدمون فئات / أنواعًا مختلفة مقارنةً بـ Eto (على سبيل المثال ، Font ، Color ...) ، وما زلت أرغب في استخدام طريقة Append بنفس RichTextArea .

التعليق الأكثر فائدة

مرحبًا katatunix ، شكرًا على الطلب. لقد كنت أعمل بالفعل على شيء ما على طول هذه الأسطر (نوع من TextBuffer) يحتوي على نفس واجهة برمجة التطبيقات مثل RichTextArea ولكنه يتيح لك إنشائه بشكل منفصل ثم إلحاقه (أو تعيينه) إلى RichTextArea.

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

ال 12 كومينتر

مرحبًا katatunix ، شكرًا على الطلب. لقد كنت أعمل بالفعل على شيء ما على طول هذه الأسطر (نوع من TextBuffer) يحتوي على نفس واجهة برمجة التطبيقات مثل RichTextArea ولكنه يتيح لك إنشائه بشكل منفصل ثم إلحاقه (أو تعيينه) إلى RichTextArea.

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

إذا كان لديك أي كود على هذا ، أود أن ألقي نظرة عليه.

LaraSQP لقد قمت للتو بتحميل عملي حتى الآن في PR # 1507

نظرًا لأن عنصر التحكم RichTextArea يتعامل فقط مع بعض الخصائص (الخط + النمط ، اللون الأمامي + الخلفي) ، فلماذا لا تكتب فئة rtf "بسيطة" لتكوين سلسلة rtf ثم تغذيتها إلى RichTextArea.Rtf خاصية

شيء مثل:

https://www.codeproject.com/Articles/30902/RichText-Builder-StringBuilder-for-RTF

هل أفتقد شيئًا هنا وأجده معتوهًا مرة أخرى؟

LaraSQP لا ، هذا يعمل تمامًا. GTK لا يدعم RTF بالرغم من ذلك.

لا أعتقد أن Eto بحاجة إلى توفير هذه الميزة مباشرةً ، حيث لا يوجد سبب يمنعك من استخدام مُنشئ RTF خارجي ثم إدخاله في تحكم Eto.

لا أعرف عن GTK و RTF. تلك هي المشكلة.

لن يعمل منشئ RTF الخارجي كما هو بسبب المشكلات التي أثارها الملصق الأصلي (فئات / أنواع مختلفة مقارنة بـ Eto على سبيل المثال ، Font ، Color ...) ، وفي أي حال ، يجب أن يكون دفق RTF تم تحويلها إلى شيء يمكن عرضه بواسطة GTK. وبالتالي ، فإن مبلغك TextBuffer .

الرتق

LaraSQP يمكنك _could_ نظريًا إنشاء RTF باستخدام أداة خارجية / واجهة

ومع ذلك ، فإن مشكلة RTF هي أنه على الرغم من أنه "قياسي" ، إلا أنه يتكون بشكل مختلف اعتمادًا على النظام الأساسي (على الأقل Mac مقابل Windows). أسماء الخطوط المحددة في RTF على وجه الخصوص مختلفة تمامًا. يمكنك رؤية الاختلافات باستخدام TextEdit على Mac مقابل الدفتر على Windows.

أتمنى أن يساعدك هذا.

فوضوي حقا.

يجب أن يقال أنك قمت بعمل رائع مع منفذ Linux. بالكاد أي عقوبة أداء على الرغم من الاستخدام المكثف للخطوط والألوان المتعددة.

نفس الكود على Windows هو سبيكة بالرغم من ذلك.

نفس الكود على Windows هو سبيكة بالرغم من ذلك.

نعم ، لست متأكدًا من كيفية الالتفاف على ذلك .. FlowDocument بطيء للغاية.

نظرًا لأن الأداء في Linux ممتاز ، فهل تعرف أن أدائه على جهاز Mac؟

LaraSQP يجب أن يكون سريعًا جدًا على macOS أيضًا. في تجربتي ، إنه مجرد WPF بطيء جدًا في هذه المرحلة. أود أن أجد طريقة لجعلها أسرع على الرغم من (؛

في هذه الحالة ، اعتبر هذه المشكلة مغلقة بالنسبة لي.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات