سؤال

مكافحة التعرج لا يمكن إيقاف تشغيله في WPF.لكنني أريد إزالة المظهر غير الواضح لخطوط WPF عندما تكون صغيرة.

أحد الاحتمالات هو استخدام مكون .net 2.0.يبدو أن هذا سيفقد القدرة على الشفافية ودعم Blend.لم أحاول ذلك رغم ذلك.

أي شخص لديه حل لهذا؟هل هناك أي عيوب منه؟

شكرًا لك

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

المحلول

هل حاولت وضع أ WindowsFormsHost التحكم في نافذة/تحكم WPF؟سيسمح ذلك لـ WPF بتقديم عنصر تحكم WinForms.

تحديث نوفمبر 2012:هذا السؤال والجواب عمره 4 سنوات. لقد تحسن عرض النص منذ ذلك الحين في WPF.من فضلك لا تضع عناصر تحكم WinForms في تطبيقات WPF؛لقد كانت تلك طريقة مخترقة لإصلاح عرض الخطوط.لم تعد هناك حاجة إليها.

نصائح أخرى

يمكن إيقاف تشغيل ميزة Anti-Alias ​​بدءًا من WPF 4.0 من خلال الخيار التالي:

TextOptions.TextFormattingMode="Display"

SnapsToDevicePixels ليس له أي تأثير على الإطلاق على عرض النص.

لدى Microsoft مدونة مخصصة لعرض النص في WPF هنا مدونة نص WPF

لقد تحسنت الأمور بالتأكيد في .NET 4.0.

قم بإزاحة الكائنات التي ترسمها، والتي لا تريد حوافها، بمقدار 0.5 بكسل.سيؤدي هذا إلى رسم محرك الرسم على البيكسلات الفعلية، بدلاً من الرسم على الحافة من البكسل (وهو الافتراضي).عند الرسم على حافة البكسل، يحدث الحواف عادةً على وحدات البكسل المحيطة.

وهذا مشابه لرسم الكوارتات على نظام Mac.

يحرر:آسف، لم أقرأ السؤال.هذا لا ينطبق على الخطوط، فقط على الأشكال.سأترك التعليق هنا كمرجع، رغم ذلك.

حاول استخدام UIElement.SnapsToDevicePixels الخاصية على عناصر واجهة المستخدم في نافذتك.يميل الناس إلى الإبلاغ عن أنه يعمل بشكل أفضل الرسومات والخطوط, ولكنني لاحظت تحسنًا في عرض النص باستخدامه أيضًا.

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