עבור לתוכן

שמירת brush בC#

Featured Replies

פורסם

היי,

אני מנסה לשמור קובץ ל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();
}

פורסם
  • מחבר

abc זה משתנה מסוג הקלאס שלי.

הקלאס זה clsabc

יש בו משתנים שונים...

הקוד עובר על כל המשתנים ומכניס לקובץ XML את התוכן שלהם.

פורסם

ואיך אתה מצפה שנעזור לך בלי לדעת איך הקלאס הזה נראה בכלל?

פורסם
  • מחבר

את*** =/

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

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

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

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

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

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

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

קראתי ל

color.fromrgb(int1,int2,int3)

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

פורסם
  • מחבר

בכיף..

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

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

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

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

פורסם

מה זה הסוג brush? מאיפה הגיעה המחלקה הזו? באיזו חבילה היא נמצאת? איך את משתמשת בה?

פורסם
  • מחבר

brush זה משתנה מהמחלקה Graphics

דוגמא לשימוש בו:

Brush brush;
point p=new point(10,10);
Graphics gf = CreateGraphics();

gf.FillPolygon(brush,p);


פורסם

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

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

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

פורסם
  • מחבר

סורי.. מרוב שאני בתוך זה, נדמה לי שכולם צריכים להבין מייד........ :-\

דוגמה ליצירת brush :

 
Brush b = Brushes.Black;

אני לא יודעת איך לעשות את זה...

פורסם

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

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

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

פורסם
  • מחבר

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

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

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

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

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

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

ארכיון

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

דיונים חדשים