PDA

View Full Version : سوال: مرتب سازی اتوماتیک دکمه های روی فرم و گذاشتن افکت fade out روی دکمه ها



ashkan1234
پنج شنبه 21 شهریور 1392, 21:34 عصر
سلام!
1-فرض کنید چند تا دکمه روی فرم دارم که بصورت مرتب روی فرم هستند!
حالا میخوام وقتی کاربر یه سری رو مخفی کرد دکمه ها روی فرم بصورت اتوماتیک مرتب بشن!
مثلا 16 تا دکمه چهارتا ردیف چهارتایی داریم که همه بصورت مرتب روی فرم قرار گرفتن!
####
####
####
####
حالا کاربر اومد و اینجوریش کرد:
####
####
##_#
#_##
خوب این حالت روی فرم اصلا قشنگ نیست!
اگه هم یکی یکی بیام دکمه ها رو بخوام Location شون رو تغییر بدم عاسفالتیته خواهم شد...
چون ممکنه تعداد حالتها خیلی بشه!
------------------------------------------
2-چجوری میتونم این مرتب سازی رو با افکت Fade out انجام بدم؟:متفکر:
اینجا رو نگاه کنید:
http://msdn.microsoft.com/en-us/library/windows/apps/hh452703.aspx
فیلم دوم رو ببینید چجوریه!:لبخند:

aliagamon
پنج شنبه 21 شهریور 1392, 21:57 عصر
فیلمو که ندیدم اما شما میتونی بعد از اینکه هر دکمه رویداد visable فرق میکنه چک کنین اگه مخفی شد با یه حلقه همه ی دکمه های تو فرم یدونه شیفت کنن عقب(مثلا دکمه 2 مخفی میشه پوزیشن دکمه 5 بشه ماله 4 ماله 4 بشه ماله 3 ماله 3 بشه ماله 2 ....)....:لبخند:
البته افکت بخوای (مثل اون لینک)باید wPf کار کنی چون تو ویندوز فرم دستت خیلی بسته میشه ...

ashkan1234
پنج شنبه 21 شهریور 1392, 22:12 عصر
فیلمو که ندیدم اما شما میتونی بعد از اینکه هر دکمه رویداد visable فرق میکنه چک کنین اگه مخفی شد با یه حلقه همه ی دکمه های تو فرم یدونه شیفت کنن عقب(مثلا دکمه 2 مخفی میشه پوزیشن دکمه 5 بشه ماله 4 ماله 4 بشه ماله 3 ماله 3 بشه ماله 2 ....)....:لبخند:
البته افکت بخوای (مثل اون لینک)باید wPf کار کنی چون تو ویندوز فرم دستت خیلی بسته میشه ...

بلادل دمت گرم ولی اونجوری شما واسه اولی راه حل دادی همونطور هم که قبلا عرض کردم چون تعداد حالت ها زیاد میشه کار سختی هست!
اگر مترو ویندوز 8 رو دیده باشید اینکارو میکنه
حتی افکت هم داره!
wpf که نه نمیخوام!
ترجیحا همون win app معمولی!

aliagamon
جمعه 22 شهریور 1392, 00:10 صبح
اگه باتن هارو موقع تعریف تو ارایه بنویسی میتونی برنامه رو داینامیک کنی ... (یه تابع داینامیک ...)...
و البته مترو از زمل(XAML)استفاده میکنه ... یعنی ترکیب سی شارپ و زمل که میشه همون WPF خودمون:لبخند:

mousa1992
جمعه 22 شهریور 1392, 01:20 صبح
توی win forms بهتره تمرکزتو رو افکت نذاری که نهایتا نتیجه مطلوبو نخواهی گرفت
اما برا مرتب سازی پیشنهاد میکنم از flowlayoutpanel استفاده کنی

ashkan1234
جمعه 22 شهریور 1392, 11:37 صبح
توی win forms بهتره تمرکزتو رو افکت نذاری که نهایتا نتیجه مطلوبو نخواهی گرفت
اما برا مرتب سازی پیشنهاد میکنم از flowlayoutpanel استفاده کنی

داداش دمت گرم این flowlayoutpanel عجب چیز شاخیه!
حال کردم باهاش!
ولی یه مشکلی دارم باهاش!
میخوام دکمه ها به ترتیب من مرتب بشن!
این واسه خودش یکی رو میاره اول یکی رو میاره آخر!
اصلا معلوم نیست با چه الگویی اینکارو میکنه!
حتی به ترتیب حروف الفبا هم نیست!
میدونید چیکار باید کرد؟

FastCode
جمعه 22 شهریور 1392, 12:39 عصر
داداش دمت گرم این flowlayoutpanel عجب چیز شاخیه!
حال کردم باهاش!
ولی یه مشکلی دارم باهاش!
میخوام دکمه ها به ترتیب من مرتب بشن!
این واسه خودش یکی رو میاره اول یکی رو میاره آخر!
اصلا معلوم نیست با چه الگویی اینکارو میکنه!
حتی به ترتیب حروف الفبا هم نیست!
میدونید چیکار باید کرد؟
اگر راهنماش رو بخونید متوجه میشید که اصلا هم تصادفی نیست و اتفاقا خیلی هم قانونمنده.
در designer ه vs میتونید از گزینه های bring to front و send to back استفاده کنید.

ashkan1234
جمعه 22 شهریور 1392, 12:46 عصر
اگر راهنماش رو بخونید متوجه میشید که اصلا هم تصادفی نیست و اتفاقا خیلی هم قانونمنده.
در designer ه vs میتونید از گزینه های bring to front و send to back استفاده کنید.
ممنون از پاسخگوییت!
ولی bring to front و send to back که فرمودید اولویت زیر رو بودن کنترلها رو مشخص میکنه!
من مشکلم با اون نیست
بلکه با چیدمانش هست!
مثلا ببینید اینجارو استاندارد از نظر ما اینه دیگه:
Button1-Button2-Button3-Button4
ولی وقتی میزارم توی FlowControl اینجوری میشه:
Button4-Button3-Button1-Button2

mousa1992
جمعه 22 شهریور 1392, 13:48 عصر
به همون ترتیبی که میخواین کنترل ها قرار بگیرن اضافشون کنید به flowlayoutpanel و همونطور که اقای FastCode (http://barnamenevis.org/member.php?109710-FastCode) گفتن میتونید با استفاده از send to back و bring to front هم کنترل های توی پنل رو مرتب کنید

ashkan1234
شنبه 23 شهریور 1392, 10:31 صبح
خیلی ممنون از لطفتون مشکل حل شد!
از آقای FastCode هم معذرت میخوام که منظورشونو درست متوجه نشدم!
فکر نمیکردم send to back و اینا همچین قابلیتی هم داشته باشن!
آقا موسی دست شما هم درد نکنه!:لبخند: