سؤال

هل هناك طريقة في XAML لإضافة حشوة حول الشخصيات الفردية؟ ويفضل قبل وبعد الشخصية.

لدي مربع نص أرغب في أن يتم تباعد الإدخال أكثر قليلاً (لذلك يتوافق مع صورة الخلفية). سيكون من المثالي أن تكون قادرًا على فعل شيء مثل:

أي أفكار كيف يمكن للمرء أن ينجز هذا؟

يبدو أنه يمكن للمرء القيام بذلك في كلمة MS (التفاصيل هنا) ، نأمل أن هذا يعني أنه ممكن في XAML؟

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

المحلول

من الممكن ضبط التباعد بين الشحان في XAML باستخدام الحروف الرسومية الفصل ، وتحديدا المؤشرات منشأه. هذه واجهة برمجة تطبيقات نصية منخفضة المستوى ، لذلك عليك تحديد الخط URI (بدلاً من اسم العائلة) ، وتحتاج إلى حساب كل الفواصل بنفسك.

يستخدم XAML التالي Glyph.Indices لتطبيق التباعد بين الشحنة:

<Glyphs UnicodeString="Expanded" Indices=",100;,100;,100;,100;,100;,100;,100"
    FontUri="file://c:/windows/fonts/arial.ttf"
    Fill="Black" FontRenderingEmSize="24" />
<Glyphs UnicodeString="Normal"
    FontUri="file://c:/windows/fonts/arial.ttf"
    Fill="Black" FontRenderingEmSize="24" />
<Glyphs UnicodeString="Condensed" Indices=",60;,50;,50;,50;,45;,50;,40;,45"
    FontUri="file://c:/windows/fonts/arial.ttf"
    Fill="Black" FontRenderingEmSize="24" />

كما موثق هنا, ، خاصية المؤشرات تحتوي على قائمة منقوطة من Semicolon chr,off أزواج. chr هو فهرس الحروف الرسومية داخل الخط ؛ إذا تم حذفه ، فسيستخدم WPF الرسول الرسومية المقابلة للحرف الحالي في UnicodeString. off هو التباعد بين هذه الرسول الرمزية والقادم ؛ 0 يعرض الاثنين فوق بعضهما البعض ، أي قيمة موجبة تزيد من التباعد. يعتمد التباعد "العادي" على الخط الذي تستخدمه ؛ كما ترون في مثال "المكثف" ، استخدمت تباعد مختلفًا لأزواج مختلفة من الأحرف لجعل الإخراج يبدو أفضل.

من الواضح أن هذا ينطبق فقط على النص الثابت الذي تعرضه ، ولا يتم جمع الإدخال من المستخدم (في أ TextBox) ؛ لا أعرف بأي طريقة لضبط التباعد بين الشروط في الكائنات النصية "القياسية" (TextBlock, TextBox, Run, ، وما إلى ذلك) ، لذلك ربما الجواب هو "لا ، لا توجد طريقة للقيام بذلك في XAML".

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