PDA

View Full Version : شفافیت PictureBox برای تمام کنترلهای درون فرم



shamsoft
شنبه 24 آذر 1386, 20:16 عصر
سلام
من یه Picturebox دارم و می خوام به صورت شفاف (Transparent) و روی بقیه کنترلها (BringToFront) باشه. حالا وقتی PictureBox.BackColor = Color.Transparent میشه خب قاعدتا باید این picturebox هر چی که زیرش هست رو نشون بده ولی در عمل اصلا اینجوری نیست و Backcolor به رنگ پشت زمینه فرم در میاد. عکس زیر منظورمو بهتر بیان می کنه:

http://i6.tinypic.com/6tojywg.gif
حالا به نظر شما من چیکار کنم که کنترلهای زیر PictureBox هم نشون داده بشه ؟

Ner'zhul Arthas
یک شنبه 25 آذر 1386, 21:12 عصر
میتونید پیکچر باکس رو مخفی کنید به جاش عکس توش رو رسم کنید.

Alex_1882
دوشنبه 26 آذر 1386, 00:01 صبح
بهترین کار اینکه پسوند عکس تو تغییر بدی به gif تغیییر بده

saeed_rezaei
دوشنبه 26 آذر 1386, 22:44 عصر
میتونید پیکچر باکس رو مخفی کنید به جاش عکس توش رو رسم کنید.

می شه منظورتون رو بیشتر توضیح بدید.



بهترین کار اینکه پسوند عکس تو تغییر بدی به gif تغیییر بده
شما حتی اگه عکس هم نزارید بازهم تصویر زیر رو نشون نمی ده.


حالا می خوای اون قسمتهایی که از کنترلهای زیر picturebox فقط حالت تصویر داشته باشن، یا اینکه نه، کنترل باشن. به عبارتی اگه روی قسمتی از دکمه ای که داخل جعبه متن قرار گرفته، کلیک کنیم ، باید به کلیک جواب بده یا نه؟

sinpin
دوشنبه 26 آذر 1386, 23:43 عصر
سلام
من یه Picturebox دارم و می خوام به صورت شفاف (Transparent) و روی بقیه کنترلها (BringToFront) باشه. حالا وقتی PictureBox.BackColor = Color.Transparent میشه خب قاعدتا باید این picturebox هر چی که زیرش هست رو نشون بده ولی در عمل اصلا اینجوری نیست و Backcolor به رنگ پشت زمینه فرم در میاد. عکس زیر منظورمو بهتر بیان می کنه:

http://i6.tinypic.com/6tojywg.gif
حالا به نظر شما من چیکار کنم که کنترلهای زیر PictureBox هم نشون داده بشه ؟

با این کد میتونید کنترل PictureBox یا Label رو transparnet کنید :

pictureBox1.BackColor = Color.FromArgb(0, pictureBox1.BackColor);مقدار صفر در عبارت بالا برای حالت کاملا شفاف و 255 برای حالت کاملا کدر میباشد.

sinpin
دوشنبه 26 آذر 1386, 23:47 عصر
البته بهتر است که یک کنترل مشتق شده (Derived Control) از pictureBox اصلی با خاصیت جدید برای این منظور بسازید.
این هم توضیحات لازم :
http://addressof.com/blog/articles/293.aspx

shamsoft
سه شنبه 27 آذر 1386, 21:42 عصر
حالا می خوای اون قسمتهایی که از کنترلهای زیر picturebox فقط حالت تصویر داشته باشن، یا اینکه نه، کنترل باشن. به عبارتی اگه روی قسمتی از دکمه ای که داخل جعبه متن قرار گرفته، کلیک کنیم ، باید به کلیک جواب بده یا نه؟
آره می خوام که بشه به کنترلهای زیر pictureBox دسترسی داشته باشم.

sinpin جان کد شما هم برابر با همون PictureBox.BackColor = Color.Transparent هست که اینا همشون Transparent رو نسبت به Parent اعمال می کنند و در واقع Transparent نمیشن.
اون لینکی هم که دادی رو دارم مطالعه می کنم و فکر نمی کنم کاری رو که میخوام بتونه انجام بده

saeed_rezaei
سه شنبه 27 آذر 1386, 22:43 عصر
سلام
اگه شما می خواید که به کنترلها دسترسی داشته باشید با کمرنگ کردن مشکلتون حل نمی شه. اونوقت درست مثل فرم می شه. یه فرم رو کم رنگ کنید، می تونید زیرش رو ببینید اما نمی تونید بهشون دسترسی داشته باشید.
شما بایستی کادر مربعی کنترل تصویر رو تغییر بدید. که دراین مورد کار بسیار سختیه.
البته راه حل دیگه ای هم هست و ان هم picturebox1.sendtoback
که بیشتر به ترفند می منونه تا راه حل