PDA

View Full Version : مبتدی: فرم سفارشی



81579001
چهارشنبه 20 مرداد 1389, 20:54 عصر
سلام
می خواهم یک فرم سفارشی مثل عکس زیر درست کنم
به نظر اساتید چکار باید بکنم ؟
تشکر

Masoome_das
چهارشنبه 20 مرداد 1389, 21:03 عصر
منظورت چیه می خوای یک تصویر ساده در فرمت بذاری

اگه می خوای این کار را بکنی باید تصویر را به عنوان background صفحه ات تعریف کنی
این کار رابلدی
روی صفحه راست کلیک کن propertice را انتخاب کن بعدش از پنلی که باز می شه در سمت راست صفحه
ادامه بدم همین و می خوای

mahdi87_gh
چهارشنبه 20 مرداد 1389, 23:49 عصر
دوست عزیز عکس ماشینت رو در یک زمینه با رنگ خاص قرار بده و سپس اون عکس حاصله رو بعنوان پس زمینه فرم معرفی کن. حالا خاصیت Transparency Key فرم رو برابر با رنگ خاصی که لنتخاب کرده بودی قرار بده

sadra_r2235
پنج شنبه 21 مرداد 1389, 00:13 صبح
دوست عزیز عکس ماشینت رو در یک زمینه با رنگ خاص قرار بده و سپس اون عکس حاصله رو بعنوان پس زمینه فرم معرفی کن. حالا خاصیت Transparency Key فرم رو برابر با رنگ خاصی که لنتخاب کرده بودی قرار بده


دوست عزیز این کار درسته.
ولی این کار باعث میشه کناره های عکس بریده بریده بشه.
بهتره عکس رو تو فتوشاپ به فرمت Png در بیاری.
تازه با این فرمت تو فتوشاپ میتونی قسمت های اضافه رو از بین ببری(یعنی حتی سفیدی ها رو هم...).
بعد میتونی خاصیت FormBorderStyle فرم رو برابر None قرار بدی.

81579001
پنج شنبه 21 مرداد 1389, 09:59 صبح
سلام
با تشکر از اساتید با راهنمای شما حل شد
ولی فرم را نمی توان در زمان اجرا جابجا کرد
خوب باید چکار کنم ؟
تشکر

vandermond
پنج شنبه 21 مرداد 1389, 10:01 صبح
از WPF براش استفاده كني فكر ميكنم راحت تر باشه.

exlord
پنج شنبه 21 مرداد 1389, 10:43 صبح
GraphicsPath shape = new GraphicsPath();
shape.AddEllipse(0, 0, this.Width, 30);
shape.AddEllipse(30, 30, 250, 80);
this.Region = new Region(shape);

vandermond
پنج شنبه 21 مرداد 1389, 10:53 صبح
GraphicsPath shape = new GraphicsPath();
shape.AddEllipse(0, 0, this.Width, 30);
shape.AddEllipse(30, 30, 250, 80);
this.Region = new Region(shape);
خوبه ولي اين باز هم فرم رو از حالت مستطيلي خودش خارج نميكنه. اگه نمونه اي داريد كه فرم رو مثلا به حالت بيضي در بياره بزاريد. من يه زماني دنبالش بودم. فهميدم با WPF مثل اينكه ميشه. ولي ديگه وقت نشد برم دنبالش.

exlord
پنج شنبه 21 مرداد 1389, 10:59 صبح
خوبه ولي اين باز هم فرم رو از حالت مستطيلي خودش خارج نميكنه. اگه نمونه اي داريد كه فرم رو مثلا به حالت بيضي در بياره بزاريد. من يه زماني دنبالش بودم. فهميدم با WPF مثل اينكه ميشه. ولي ديگه وقت نشد برم دنبالش.


این فرم الان مسطتیل نیست 2 تا بیضیه .... شما هر شکلی که بخوای با میتونی درست کنی در این روش ...

vandermond
پنج شنبه 21 مرداد 1389, 11:59 صبح
من يك نمونه ساده با توجه به كد جناب exlord ميزارم. البته فكر ميكنم با كارهاي پردازش تصوير(و يا حتي بدون اونها) ميشه دقيقا عكس اتومبيل رو در آورد. اين نمونه خيلي ساده هستش:

81579001
پنج شنبه 21 مرداد 1389, 18:47 عصر
سلام
با تشکر از همه
راهی برای فقط ماشین با قابلیت حرکت با موس نیست
تشکر

81579001
پنج شنبه 21 مرداد 1389, 18:51 عصر
نه مستطیل نه دایره نه بیضی ونه اشکال هندسی --ماشین
تشکر

vandermond
جمعه 22 مرداد 1389, 02:05 صبح
سلام دوست عزيز
ببين عكست رو مثلا با پس زمينه آبي كمرنگ (يك رنگ كه توي عكس نباشه يا حداقل خيلي كم باشه) داري. Transparent اون رو هم بزار آبي كمرنگ. تا اينجا كه شكل فرم تغيير نكرده ولي معلوم نميشه كه فرم مستطيلي هستش. فقط مثلا با درگ و دراپ كردن فرم تابلو ميشه:لبخند:.
من براي همين زمينه سفيد كار كردم(كه البته خوب نيست چون توي عكس هم سفيد داريم). برنامه ش رو هم ضميمه كردم. تنها مشكلش اينه كه همون Drag&Drop رو اگه قسمتهاي ديگه فرم كه پاك شدن رو هم بگيري كار ميكنه. (من كيفيت عكس رو خيلي كم كردم كه حجمش كم بشه. اگه عكس اصلي رو بزاري اون كناره هاش هم درست ميشه)
البته براي اون هم كد هست ولي خوب كار نميكنه(البته در مواردي كه مرز كاملا مشخص نباشه. اگه يك خط كاملا مشخص دور شكل باشه به راحتي جواب ميده. اون كد رو هم ميزارم:

GraphicsPath GraphPath = new GraphicsPath();
Rectangle rec;
Image imgBack = this.BackgroundImage;
Bitmap bmp = new Bitmap(imgBack);

for (int i = 0; i < bmp.Width; i++)
{
for (int j = 0; j < bmp.Height; j++)
{
rec = new Rectangle(i, j, 1, 1);
if (bmp.GetPixel(i, j).ToArgb() != Color.White.ToArgb())
GraphPath.AddRectangle(rec);
}
}

this.Region = new Region(GraphPath);

mahboube
یک شنبه 18 مهر 1389, 17:00 عصر
من يك نمونه ساده با توجه به كد جناب exlord ميزارم. البته فكر ميكنم با كارهاي پردازش تصوير(و يا حتي بدون اونها) ميشه دقيقا عكس اتومبيل رو در آورد. اين نمونه خيلي ساده هستش:

سلام
من دقيقا همينو لازم دارم.چطور ميشه بدون transparent كردن يك فرم رو به شكل يك عكس درآورد؟؟