PDA

View Full Version : سوال: شفافیت background یک Label



unique1984
دوشنبه 04 خرداد 1388, 16:20 عصر
با سلام
شاید ساده به نظر برسه ، اما من هر کاری کردم نتونستم بک گراند یک لیبل رو شفاف کنم. می خوام این لیبل رو ، روی یک عکس (که البته عکس هم قابل تغییره) قرار بدم و نمی تونم رنگ ثابتی برای زمینه به اون نسبت بدم ، پس باید بک گراند لیبل کاملا شفاف باشه.

NewFoxStudent
دوشنبه 04 خرداد 1388, 16:41 عصر
خاصیت BackColore رو برابر TransParent قرار بدید درست میشه
این مقدار رو میتونید توی اولین ردیف برگه Web از جعبه رنگ BackColore پیدا کنید

esmaeily-hosein
دوشنبه 04 خرداد 1388, 16:41 عصر
BackColor=Color.Transparent

hozouri
دوشنبه 04 خرداد 1388, 17:11 عصر
برای این کار حتماً باید این عکس روی فرم یا پنل باشه و عکس رو با Background ست کنید ...

unique1984
سه شنبه 05 خرداد 1388, 11:11 صبح
خاصیت BackColore رو برابر TransParent قرار بدید درست میشه
این مقدار رو میتونید توی اولین ردیف برگه Web از جعبه رنگ BackColore پیدا کنید
این راه رو امتحان کردم اما نشد!

برای این کار حتماً باید این عکس روی فرم یا پنل باشه و عکس رو با Background ست کنید ...
همانطور که گفتم این عکس تغییر میکنه ، بنابراین نمیشه یک رنگ ثابت برای بک گراند لیبل در نظر گرفت. تنها راه شفاف کردن زمینه لیبله.
راه حل :
http://stackoverflow.com/questions/605920/c-reasons-for-why-a-label-does-not-want-to-be-transparent

Add a new class to your project and post the code shown below. Build. Drop the new control from the top of the toolbox onto your form.

using System;
using System.Windows.Forms;

public class TransparentLabel : Label {
public TransparentLabel() {
this.SetStyle(ControlStyles.Opaque, true);
this.SetStyle(ControlStyles.OptimizedDoubleBuffer, false);
}
protected override CreateParams CreateParams {
get {
CreateParams parms = base.CreateParams;
parms.ExStyle |= 0x20; // Turn on WS_EX_TRANSPARENT
return parms;
}
}

unique1984
چهارشنبه 06 خرداد 1388, 17:03 عصر
Yani motaghayer color transparens kardy ama bazam nashod ke az in code estefade kardi
بله دوست عزیز.
اگه به لینکی که گذاشتم مراجعه کنید، می بینید که با تغییر رنگ به transparent ، مشکلی حل نمیشه.بنابراین یک کلاس برای اینکار تعریف شده.

Afshin160
چهارشنبه 06 خرداد 1388, 17:28 عصر
جالب بود ...
متشكرم ..

NewFoxStudent
چهارشنبه 06 خرداد 1388, 17:37 عصر
وقتی رنگ زمینه لیبل رو ترنسپرنت میزارید رنگ زمینه به رنگ کنترل والد لیبل در میاد
حالا برای استفاده از این خاصیت باید لیبل رو روی کنترلی که میخواهید عکس داخلش نمایش داده بشه قرار بدید

NewFoxStudent
چهارشنبه 06 خرداد 1388, 17:58 عصر
31327

به این یه نگاهی بکن

arastoooo
دوشنبه 04 اردیبهشت 1391, 16:00 عصر
بله دوست عزیز.
اگه به لینکی که گذاشتم مراجعه کنید، می بینید که با تغییر رنگ به transparent ، مشکلی حل نمیشه.بنابراین یک کلاس برای اینکار تعریف شده.

شفافیت بک گراند لیبل نصبت به بگ گراند فرم هست
در نتیجه اگه میبینید جواب نگرفتین برای اینکه شاید بک گراند فرمتو میبینی
حالا یکبار تست کنید ببینین اینی که میگم جواب میده
برای فرم خودتون یه بک گراند بزارید (عکس) بعد بک گراند لیبل رو (در قسمت web) رو Transparentتنظیم کنین
حالا نتیجه کارو ببینین

bade saba
دوشنبه 04 اردیبهشت 1391, 20:43 عصر
شفافیت بک گراند لیبل نصبت به بگ گراند فرم هست
در نتیجه اگه میبینید جواب نگرفتین برای اینکه شاید بک گراند فرمتو میبینی
حالا یکبار تست کنید ببینین اینی که میگم جواب میده
برای فرم خودتون یه بک گراند بزارید (عکس) بعد بک گراند لیبل رو (در قسمت web) رو Transparentتنظیم کنین
حالا نتیجه کارو ببینین

دوست عزیز به تاریخ پست نگاه کن :گیج: سال 88 این پست رو گذاشتن

saeed_smco
شنبه 09 اردیبهشت 1391, 12:33 عصر
من هم شبیه همین مشکل رو دارم .
مشکل من اینه که میخام لیبل رو بزارم روی یک پروگرس بار که درصد رو روش چاپ کنم
بردراستایلش رو ترنسپرنت کردم اما لیبل همیشه زیر بقیه اجزا قرار میگیره . میره زیر کلید یا تکست یا پروکرس بار
اگه یک راهی باشه که روی بقیه اجزا قرار بگیره با ترنس پرنت کردن خاصیت بردراستایل مشکل حل میشه
کمک کنید ممنون میشم

Hossenbor
شنبه 09 اردیبهشت 1391, 14:33 عصر
چرا از توابع گرافیکی استفاده نمی کنید؟