DCSIMG
הוספה של פונט מקוד - חלק שני - שלמה גולדברג (הרב דוטנט)

שלמה גולדברג (הרב דוטנט)

מרצה בסלע ויועץ בעולם ה - net.

הוספה של פונט מקוד - חלק שני

לא מזמן פרסמתי פוסט - כיצד להוסיף פונט מקוד.
 
מסתבר שהחברה מפרוייקט אתגר לא נחים - וכרגע הם רוצים להוסיף את הפונט כ - Embedded Resource (כדי שלא יצטרכו להעתיק את הפונט כל פעם יחד עם קובץ ה - exe)
 
 
השלב הראשון הוא די פשוט, יש להוסיף את קובץ הפונט ל - Resources.
 
השאלה הנשאלת כעת: כיצד להוסיף את הפונט, מסתבר שיש מתודה בשם AddMemoryFont, אבל למרבה הצער זה מקבל IntPtr ולכן צריך לכתוב את הקוד הבא:

 

IntPtr pointer = Marshal.AllocHGlobal(Resources.ahronbd.Length);

Marshal.Copy(Resources.ahronbd, 0, pointer, Resources.ahronbd.Length);

myFonts.AddMemoryFont(pointer, Resources.ahronbd.Length);

Marshal.FreeHGlobal(pointer);

 
בהנחה ששם הפונט הינו ahronbd.
 
בהתחלה נגדhר משתנה מסוג IntPtr ונקצה מקום בזיכרון בגודל של המערך.
 
לאחר מכן נעתיק את הפונט לזיכרון ששמרנו בצעד בקודם.
 
נוסיף את הפונט ל - Collection.
 
נשחרר את המקום בזיכרון, (מכיוון שמדובר בזיכרון שאינו מנוהל אי אפשר להסתמך על ה - GC).
פורסם: Jan 04 2011, 02:19 PM by Shlomo | with 1 comment(s)
תגים:,
שלח תגובה

(שדה חובה)  

(שדה חובה)  

(אופציונלי)

(שדה חובה) 

Please add 1 and 6 and type the answer here:


Enter the numbers above: