سؤال

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

والدعم الرسم البياني أحجام متعددة، لذلك إذا كان يحصل على أكبر، ثم القضبان هي إعادة الحجم، وهناك مساحة أكبر للنص. الآن أريد أن ضبط النص إلى الفضاء الذي يتوفر. اذا وقفت صغيرة جدا، وأنا لا أريد أن عرض التسمية بعد الآن (تلميح هو متاح، وبالتالي فإن المستخدم لا تزال تحصل على المعلومات المطلوبة). النظر في سلسلة "حالة 1، بلاه بلاه"، وهناك ربما لا مساحة كافية لعرض السلسلة بأكملها، ولكن فقط الكلمة الأولى. في هذه الحالة أريد السلسلة إلى أن "حالة 1 .."، مع .. مشيرا إلى أن هناك بعض مزيد من المعلومات في تلميح الأدوات.

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

وأي أفكار؟

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

المحلول

إذا يمكنك استخدام TextBlocks بدلا من الملصقات، لديهم <لأ href = "http://msdn.microsoft.com/en-us/library/system.windows.texttrimming.aspx" يختلط = "نوفولو noreferrer" > TextTrimming الممتلكات التي سوف نفعل ذلك لك إما إلى أقرب حرف أو أقرب كلمة.


وبينما يبدو أنك سعيد مع الخاصية TextTrimming، سوف تعديل هذا أن أضيف أن تحكم مربع نص لديها <لأ href = "http://msdn.microsoft.com/en-us/library/system.windows. controls.textbox.getrectfromcharacterindex.aspx "يختلط =" نوفولو noreferrer "> GetRectFromCharacterIndex طريقة من شأنها أن تسمح لك لمعرفة حجم على الشاشة من حرف واحد أو أكثر طالما إعدادات الخط الملائمة التسمية. قد يكون هذا مفيدا إذا كنت تريد تقليم في أماكن محددة في التسمية بدلا من أقرب حرف / كلمة.

نصائح أخرى

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

وتبدأ من خلال الحصول على عرض بكسل الفعلي من المساحة المتاحة للنص. بعد ذلك ننظر في مجموعة الأحرف، في الملعب دوت الخ المستخدمة على الواجهة الأمامية XAML ومن هناك حساب عرض بكسل المطلوبة لكل حرف.

ويمكنك أيضا أن ننظر إلى تغيير الطابع أحجام وكذلك الحد من طول التسمية.

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