שמירת brush בC# - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

שמירת brush בC#


unknown2007

Recommended Posts

היי,

אני מנסה לשמור קובץ לXML

יש בו משתנים מסוג int float וכו'...

בעייתי היא, כאשר אני רוצה לשמור משתנה מסוג brush יש שגיאה.

כיצד אפשר לשמור בכ"ז?

את משתנה color שרציתי לשמור, חילקתי ל3 int ים כי גם color לא מוכר בשמירה.

אשמח לעזרה.

קישור לתוכן
שתף באתרים אחרים

מה? תן עוד קצת פרטים. איך אתה מממש את זה? באיזו חבילה אתה משתמש?

חוץ מזה, הועבר לפורום שפות עילית.

מה ז"א איזו חבילה?

הנה קטע הקוד:

 
XmlSerializer xmlserialize = new XmlSerializer(typeof(clsabc));

SaveFileDialog d = new SaveFileDialog();
d.Filter = str;
if (dlg.ShowDialog() == DialogResult.OK)
{
StreamWriter sw = new StreamWriter(d.FileName);
saveFileName = d.FileName;
xmlserialize.Serialize(sw, abc);
sw.Close();
}

קישור לתוכן
שתף באתרים אחרים

את*** =/

אני רק צריכה פיתרון לbrush

משתנים אחרים כמו int, point,float

הוא יודע לשמור!

אני אתן דוגמא: עבור משתנה מסוג bitmap הייתי צריכה לתת לו לשמור רק את הנתיב. אז כל פעם כשרציתי להשתמש בנתיב מתוך הקובץ השמור

הייתי ממירה אותו לתמונה בחזרה

bitmap.fromfile(("נתיב שמור בקובץ"))  

כנ"ל לגבי משתנה color בשמירה הוא לא מוכר, לכן פרקתי אותו ל3 int ים וכל פעם שרציתי להשתמש בו מתוך הקובץ

קראתי ל

color.fromrgb(int1,int2,int3)

מה שאני מבקשת זה רעיון איך להשתמש כך גם ב brush

קישור לתוכן
שתף באתרים אחרים

בכיף..

brush זה משתנה מסוג brush

שמקבל לתוכו צבע (וכאן הבעיה שלי, אני לא יודעת איך הוא מקבל את הצבע ולכן לא יודעת איך לחלק אותו)

והוא בעצם ממלא צורות סגורות בצבע הנבחר.

זה משתנה למילוי..

קישור לתוכן
שתף באתרים אחרים

אוקי, עכשיו אנחנו מתחילים קצת להגיע לאנשהו.

הצלחתי להבין שאת עובדת עם WPF, ואת מתכוונת למחלקה System.Windows.Media.Brush. אם היית טורחת לציין את זה הכל היה הרבה יותר ברור.

עכשיו, לבעייתך - אין דרך לעשות סריאליזציה ל-Brush. איך את יוצרת את ה-Brush שיש לך? את יכולה לעשות סריאליזציה לערכים מהם את בונה את ה-Brush, כמו שעשית עבור Color.

קישור לתוכן
שתף באתרים אחרים

כיוון שאין ל-Brush אפשרות לסריאליזציה, את יכולה לעשות סריאליזציה לתכונות שלו.

לדוגמה, במקרה של Brushes.Black, הטיפוס האמיתי של ה-Brush הזה הוא SolidColorBrush, שיש לו property בשם Color. אז בתכלס מספיק לשמור את ה-Color ואז ליצור את ה-Brush בהתאם.

אם את משתמשת בטיפוסים נוספים של Brush (כגון TileBrush או GradientBrush) אז תצטרכי לעשות להם סריאליזציה מתאימה.

קישור לתוכן
שתף באתרים אחרים

אז אחרי כמה ימי עבודה...

ביטלתי את הbrush, במקומו עשיתי כמו שאמרת..

בכל מקום שהיה צורך להשתמש בו, עשיתי

new SolidBrush(Color.FromArgb(R, G, B))

ועכשיו זה עובד כמו שצריך...

תודה על העזרה!!

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...