PDA

View Full Version : پس زمینه یک Picture Box



mehdi58
سه شنبه 02 مرداد 1386, 13:59 عصر
با سلام
وقتی یه عکس JPG رو داخل یه Picture Box قرار می دم به صورت پیش فرض BackColor مربوط به اون Picture Box شامل یه رنگ می شه .
حالا به نظر شما آیا می شه این BackColor رو در حالت بیرنگ قرار داد و یا اینکه اون رو محو کرد ؟
با تشکر

Business Analyst
سه شنبه 02 مرداد 1386, 14:18 عصر
راستی منظورتون رو نفهمیدم
ولی برای بیرنگ کردن backcolor اونو باید بذارین Transparent
فکر کنم البته

mehdi58
سه شنبه 02 مرداد 1386, 21:48 عصر
خوب چطوری باید Transparent کرد ؟

Business Analyst
سه شنبه 02 مرداد 1386, 23:57 عصر
اینو ببین اگه مشکلی بود مجدد مطرح کنید

mehdi58
جمعه 05 مرداد 1386, 19:18 عصر
دوست عزیز با Transparent این مشکل حل نشد !!!
من یه چیزی مثل Opacity می خوام .

saeed_rezaei
جمعه 05 مرداد 1386, 19:32 عصر
نمی دونم چی مد نظرتون هست
اما
بعضی از کنترلهای خواصیتی مثل opcity ندارن اما اون رو پشتیبانی می کنن. برای این گونه کنترلها شما باید خاصیت آلفای رنگشون رو تغییر بدید. برای مثال می خوایم پس زمینه یه label رو کمر نگ کنیم. یا به قول شما همون opcity رو نصف کنیم. از این روش استفاده می کنیم:

Dim R, g, b AsInteger
R = Label1.BackColor.R
g = Label1.BackColor.g
b = Label1.BackColor.b
Label1.BackColor = Color.FromArgb(125, R, g, b)

mehdi58
جمعه 05 مرداد 1386, 20:11 عصر
نمی دونم چی مد نظرتون هست
اما
بعضی از کنترلهای خواصیتی مثل opcity ندارن اما اون رو پشتیبانی می کنن. برای این گونه کنترلها شما باید خاصیت آلفای رنگشون رو تغییر بدید. برای مثال می خوایم پس زمینه یه label رو کمر نگ کنیم. یا به قول شما همون opcity رو نصف کنیم. از این روش استفاده می کنیم:

Dim R, g, b AsInteger
R = Label1.BackColor.R
g = Label1.BackColor.g
b = Label1.BackColor.b
Label1.BackColor = Color.FromArgb(125, R, g, b)

دقیقا من هم می خوام همین آلفا رو تغییر بدم اما با استفاده از کد شما رنگ Label ام سبز رنگ شد و اصلا محو نشد .

saeed_rezaei
جمعه 05 مرداد 1386, 21:09 عصر
چرا می خواید محو کنید? این محو شدن ، در این مثال ، تنها اگه تصویر در پس زمینه فرمتون وجود داشته باشه، اون رو نشون می ده. اما اگه قسمتی از لیبل روی یه کنترل دیگه قرار گرفته باشه، حتی اگه الفاش رو صفر کنید بازم نشونش نمی ده.

mehdi58
شنبه 06 مرداد 1386, 13:48 عصر
یه Button گذاشتم روی فرمم بعد هم یه Label گذاشتم کنار اون و کد شما رو هم نوشتم و در هنگام اجرا با زهم قسمتی از Button ام که Label روی اون بود نمایش داده نمی شه .
البته مشکل از اینه که من می خوام Label روی دکمه باشه و Label نشون داده نشه اما دکمه بطور کامل نمایش داده بشه.
آیا این کار شدنیه ؟

Business Analyst
شنبه 06 مرداد 1386, 14:12 عصر
بله شدنیه!
اگه میخوای لیبلت توش هیچی نباشه ینی empty باشه خوب قاعدتا معلوم نیست
اگه هم مثخواید پر باشه این کد رو بزنید!

PrivateSubForm1_Load(ByValsenderAsSystem.Object, ByValeAsSystem.EventArgs) HandlesMyBase.Load
Label1.Parent = Me.Button1
EndSub

باید label backcolor رو tarnparensy کنی!
اینطوری فقط نوشته باقی میمونه!
اگه هم میخوای اصلا معلوم نشه!حتی نوشتش! اونوقت باید اونو hidden کنی و بعد از انجام اون کاری که میخوای visible کنیش اینطوری!!!:


Label1.Visible = False
بعد از عملیاتی که میخوای اونوقت
Label1.Visible = True
به نظرو شما میخوای رنگ backcolor رو از بین ببری که راه دوم درسته
!

saeed_rezaei
یک شنبه 07 مرداد 1386, 00:26 صبح
یه Button گذاشتم روی فرمم بعد هم یه Label گذاشتم کنار اون و کد شما رو هم نوشتم و در هنگام اجرا با زهم قسمتی از Button ام که Label روی اون بود نمایش داده نمی شه .
البته مشکل از اینه که من می خوام Label روی دکمه باشه و Label نشون داده نشه اما دکمه بطور کامل نمایش داده بشه.
آیا این کار شدنیه ؟

همانطور که قبلا هم گفتم، این مشکل شما رو ، خودم قبلا باهاش برخورد کردم. با روشهایی که تاحالا گفته شده شما تنها می تونید پس زمینه برچسبتون رو کمرنگ کنید. این پس زمینه تنها باعث می شه که چنانچه تصویر رو در بک گروند فرم یا پنل پدر، بندازید، تنها اون تصویر نمایش داده بشه و برای موردی، مانندمورد شما ، که قصد دارید کنترل زیری رو نشون بدید به این ترتیب امکان پذیر نیست و 3راه حل وجود داره. البته بهتره بگم 3 راه حل رو من بلدم.

1- کنترل برچسب رو همزمان با تغییر آلفا، send to back بزنید. اینجوری، کاربر فکر می کنه که لیبل، شیشه ای شده اما در حقیقت، کنترل button اومده روی کنترل label.

2- تغییر region: چنانچه ممکن و مسیر باشه واستون، می تونید شکل ظاهری هر کنترلی رو از حالت rectangle تغییر بدید. شاید خنده دار، باشه اما یه جاهایی به درد می خوره.

3- عکس گرفتن: گاهی اوقات می خواید که اون قسمت از کنترل زیرین رو فقط نشون بدید. در این صورت می تونید از قسمت زیرین کنترل label یه تصویر بگیرید و توی label نشون بدید. این حالت واسه موارد نمایشی خوب هست اما برای مواردی مثل حالا که کنترل زیرین یه button هست و کاربر باید روی اون کلیک کنه، این حالت خوبی نیست.