الجامعة: دمشق
الكلية: الهندسة المعلوماتية
المرحلة: السنة الخامسة
الاختصاص: هندسة برمجيات
تاريخ التسجيل : 19/02/2006
المواضيع: 4296
كتب mrabooode:
خزن ال object تبع ال graphics ضمن ملف بعد ما تكون عملتلها serialize و بس تفتح البرنامج من جديد لازم تعمل deserialize و ترجع ال object من جديد
ما بعتقد هالشي مفيد أبدأً, لأنو الـ Graphics Object بيرسم عالشاشة مباشرةً بدون ما يخزن أي معلومات بقلبو, فمثلاً لو رسمت دائرة بنص النافذة, وبعدين صغرت النافذة (Minimize) ورجعت كبرتها (Restore) رح تلاقي أنو الدائرة اختفت.
الحل بسيط جداً, بدك تعمل Buffering للرسم يلي عمتساويه, أنا بالعادة بستعمل Two Graphics Objects, الأول بيتم إنشاؤه بالشكل التالي:
Bitmap bmp = new Bitmap(800, 600); Graphics g1 = Graphics.FromImage(bmp);
والتاني بيكون عادي, الأول ميزتو أنو أي تعملية رسم فيه بترسم الشغلة ضمن الصورة يلي ممررة إلو, بينما التاني بتكون مهمتو أنو يرسم الصورة هديك بالمكان المناسب عالنافذة.
هلأ الأحلى أنك تخلي الصورة هي Background Image للنافذة أو تحطها بقلب Picture Box وقتها ما بتعتاز Graphics Object تاني (حتى بهي الطريقة رح تلاقي أنو ما في Flickering بوقت الرسم, وهالشي أفضل بكتير).
هلأ منرجع للحديث الأول, قلتلي بدك تحفظ الشغل؟ بهي الطريقة بيكون عندك حل بسيط جداً, أنك تكتب:
bmp.Save("FileNameGoesHere");
وبس ترجع تفتح النافذة بيصير بدك ترجع ترسم الصورة بس بعد ما تحملها من الهارد
الجامعة: دمشق
الكلية: الهندسة المعلوماتية
المرحلة: السنة الخامسة
الاختصاص: هندسة برمجيات
تاريخ التسجيل : 19/02/2006
المواضيع: 4296
لأنو أنا كتبتلك فوق أنو بس ترسم رح يتم الرسم ضمن الصورة BMP وأنت بدك تخلي هالصورة Background Image للـ Form أو تخليها هي الـ Image تبع الـ Picture Box.