WPF TextTrimming

C s h a r p

New member
WPF TextTrimming

ב-TextBlock של WPF יש אפשרות שהפקד יקצר אוטומטית את הטקסט אם הוא ארוך מדי וירשום בסופו "..." , אני צריך לשנות את הפונקציונאליות הזו כך שאם הטקסט המקורי שלי הוא ABCD שהפקד לא יראה לי A.... אלא A...D , כלומר שבעצם הTRIMMING יהיה באמצע המחרוזת ולא בסופה.

למישהו יש מושג איך אני עושה את זה ?

נ.ב - השאלה היא לא איך לשים "..." באמצע מחורזת בC# אלא איך לעשות את זה רק כאשר יש בזה צורך עפ"י גודל אלמנט ה-UI.
 
אישית אני חושב שעדיף להשתדל להמנע מקונברטרים

אם אני זוכר נכון - ישנם בעיות ביצועים בשימוש מוגבר בקונברטרים, הדרך הטובה לדעתי זה שהViewModel כבר ידאג לתיקון השדה במודל, בכל מקרה, אם טוב לך, סבבה מצידי:)
 

ziv1f

New member
אין שום בעיה עם קונברטרים, רק להיפך

את הקונברטרים האפליקציה מייצרת כ-Resource כך שנוצר Instance אחד בלבד ברמה שבה הוא מוגדר (בין אם זו הרמה של המסך או היוזר-קונטרול, ובין אם זו הרמה של האפליקציה)

כמו-כן, לקונברטר אין (או לפחות לא אמור להיות) state כך שאת כל מה שהוא צריך הוא מקבל כפרמטר לפונקציה, זה מאד קליל ופשוט ו-straight forward ואני בעבודתי עושה המון דברים שונים ומשונים עם קונברטרים, ועד היום לא נתקלתי בזה בשום בעיית ביצועים

כמובן שאם בקונברטר מבצעים פעולה סינכרונית ו\או מורכבת והיא צריכה להתבצע במקום מסויים (שבו יש נניח ItemsControl או ListBox עם הרבה פריטים) מספר פעמים רב, ברור שזה יגרום לבעיית ביצועים. בכל מקרה פתרון בעיות ביצועים הוא תחום נפרד ורב-היבטים, אבל בקונברטרים עצמם אם הם בנויים כראוי אין שום עניין עקרוני בסיסי שיכול לגרום לבעיית ביצועים אלא רק להיפך

דוגמאות לקונברטרים פשוטים: תרגום ערך בוליאני ל-Visibility, תרגום ערך מסויים לצבע (יכול להיות גם המרה ל-Color וגם המרה ל-Brush), למשל חישוב מחצית מתוך ערך מספרי, וכן הלאה.

בברכה,
זיו
 

C s h a r p

New member
תודה רבה

אפילו שהפתרון שמצאתי כבר פועל , אני אבדוק את זה,
נראה יותר נח לשימוש
 
למעלה