سورس پروژه ی transparent/translucent textbox (تکست باکس شفاف و نیمه شفاف) در #C
به نام خدا سلام بر برنامه نویسان عزیز 😉 در این مطلب سورس پروژه ی transparent/translucent textbox (تکست باکس شفاف و نیمه شفاف) در #C را برای دانلود قرار داده ام. انشاالله که این پروژه برای شما مفید باشد.
با استفاده از ترجمه ماشینی محتوا:
در حالی که کار بر روی یک برنامه چند رسانهای دیگر ، خودم را به یک کنترل شفاف نیاز یافتم ( TextBox ) . NET . خیلی زود متوجه شدم که اگر یک نفر بیرون باشد ، پس باید آنقدر شفاف باشد که من نمیتوانم آن را پیدا کنم . در جستجوی من ، متوجه شدم که یک فیلتر AlphaBlend برای دکمههای وب به میزبانی اینترنت وجود دارد ، اما من هیچ کدام از فرمهای برنده را نیافتم . پس من شروع به نوشتن کردم .
در این نسخه نسخه 1.0 از AlphaBlendTextBox نوشته شده در C # .
هشدار دهید که کاملا تست نشده است , نه کاملا بهینه و هنوز در هر سیستم تولیدی استفاده نمیشود . با این حال ، میخواستم آن را در اینجا تسلیم کنم ، امیدوار بودم که برخی از شما کنترل را پیدا کرده و این کد منبع مفید است .
یک یادداشت بزرگ : من از استودیو تصویری استفاده کردهام . NET ۲۰۰۳ و . . چارچوب NET ۱.۱ برای ایجاد این کنترل و پروژههای نمونه . من VS۲۰۰۲ را repost . نسخه NET ۱.۰ به محض اینکه بتوانم .
پسزمینه
در حالی که طراحی این کنترل ، من تصمیم گرفتم که بهترین روش برای زیر کلاس کنترل TextBox موجود باشد ، به طوری که کنترل جدید میتواند در هر جایی که کنترل اصلی TextBox باشد ، استفاده شود . کشف سریع این بود که کنترل TextBox یک درد واقعی است . چندین برنامه نویسان به این نکته اشاره کردهاند که این کار میتواند یک فرآیند و یا هیچ فرآیندی باشد .
این به این دلیل است که در نسخههای فعلی . NET ، کنترل TextBox فقط پوششی برای کنترل Win۳۲ قدیمی است . این امر تغییر را دشوار میسازد . اگر روش OnPaint را برای کنترل نادیده بگیرید ، نادیده گرفته میشود مگر اینکه سبک control’s را به UserPaint تغییر دهید . با این حال ، انجام این کار کنترل را از خود ترسیم میکند ، تا زمانی که کاربر برخی از متن را انتخاب میکند و حتی در آن صورت نقاشی ، غیرقابلپیشبینی است .
به مشکل اصلی من برگردیم . من یک کنترل TextBox میخواستم که برای پسزمینه شفاف بود . در حالی که به پروندههای کمک نگاه میکردم متوجه شدم . کنترلهای NET یک سبک جدید به نام SupportsTransparentBackColor دارند که به نظر میرسد این کار را انجام میدهد . با این حال ، این سبک نیاز دارد که سبک UserPaint تنظیم شود ، و همانطور که در بالا اشاره شد ، کنترل TextBox را از خود ترسیم میکند . بدتر از همه ، وقتی TextBox نقاشی کرد ، هنوز یک پسزمینه محکم داشت .
بعد از چند هفته ناامیدی ، من این راهحل را مطرح کردم : زیر کنترل TextBox و اضافه کردن یک PictureBox به کنترل ، به جای TextBox اصلی .
وقتی که کنترل باید رنگآمیزی شود ، این کار زیر را انجام میدهد :
به طور موقت سبک UserPaint را sets
گره bitmap را با ارسال پیغام PRINT WM بدست آورد
به سبک UserPaint برگردید
از نقشهرنگ برای تبدیل پسزمینه جامد به پسزمینه شفاف و شفاف استفاده میکند
ارقام را مشخص کنید و اگر لازم است آن را ترسیم کنید
سپس تصویر آلفا جدید را به PictureBox کپی کنید که وقتی رسم میشود با پسزمینه ترکیب میشود
علاوه بر این ، PictureBox باید نادیده گرفته شود تا هر رویداد موشی به آن ارسال شود . همچنین ، چندین ویژگی عمومی و روشهای TextBox باید نادیده گرفته شوند ، مانند قلم ، MultiLine ، و غیره .
استفاده از کد
این کنترل میتواند به همان شیوه کنترل استاندارد استاندارد استفاده شود . من کنترل را به عنوان یک پرونده کنترل ( DLL ) انجام دادهام . برای استفاده از این کنترل ، به سادگی روی نوار ابزار کلیک کرده و گزینه ” Add / حذف آیتمها ” و سپس به فایل AlphaBlendTextBox.dll را انتخاب کنید . پس از انجام این کار ، کنترل AlphaBlendTextBox باید در نوار ابزار شما ( تحت کنترل کاربری من ) ظاهر شود . حالا میتوانید کنترل را به یک شکل بکشید و از آن درست مانند کنترل TextBox اصلی استفاده کنید . کنترل یک ویژگی جدید به نام BackAlpha دارد که به شما اجازه میدهد تا مقدار پسزمینه control’s را تنظیم کنید . محدوده برای شفاف ، ۲۵۵ برای شفاف و یا بین برای شفاف است .
یک 1 نظر
ali
با استفاده از ترجمه ماشینی محتوا:
در حالی که کار بر روی یک برنامه چند رسانهای دیگر ، خودم را به یک کنترل شفاف نیاز یافتم ( TextBox ) . NET . خیلی زود متوجه شدم که اگر یک نفر بیرون باشد ، پس باید آنقدر شفاف باشد که من نمیتوانم آن را پیدا کنم . در جستجوی من ، متوجه شدم که یک فیلتر AlphaBlend برای دکمههای وب به میزبانی اینترنت وجود دارد ، اما من هیچ کدام از فرمهای برنده را نیافتم . پس من شروع به نوشتن کردم .
در این نسخه نسخه 1.0 از AlphaBlendTextBox نوشته شده در C # .
هشدار دهید که کاملا تست نشده است , نه کاملا بهینه و هنوز در هر سیستم تولیدی استفاده نمیشود . با این حال ، میخواستم آن را در اینجا تسلیم کنم ، امیدوار بودم که برخی از شما کنترل را پیدا کرده و این کد منبع مفید است .
یک یادداشت بزرگ : من از استودیو تصویری استفاده کردهام . NET ۲۰۰۳ و . . چارچوب NET ۱.۱ برای ایجاد این کنترل و پروژههای نمونه . من VS۲۰۰۲ را repost . نسخه NET ۱.۰ به محض اینکه بتوانم .
پسزمینه
در حالی که طراحی این کنترل ، من تصمیم گرفتم که بهترین روش برای زیر کلاس کنترل TextBox موجود باشد ، به طوری که کنترل جدید میتواند در هر جایی که کنترل اصلی TextBox باشد ، استفاده شود . کشف سریع این بود که کنترل TextBox یک درد واقعی است . چندین برنامه نویسان به این نکته اشاره کردهاند که این کار میتواند یک فرآیند و یا هیچ فرآیندی باشد .
این به این دلیل است که در نسخههای فعلی . NET ، کنترل TextBox فقط پوششی برای کنترل Win۳۲ قدیمی است . این امر تغییر را دشوار میسازد . اگر روش OnPaint را برای کنترل نادیده بگیرید ، نادیده گرفته میشود مگر اینکه سبک control’s را به UserPaint تغییر دهید . با این حال ، انجام این کار کنترل را از خود ترسیم میکند ، تا زمانی که کاربر برخی از متن را انتخاب میکند و حتی در آن صورت نقاشی ، غیرقابلپیشبینی است .
به مشکل اصلی من برگردیم . من یک کنترل TextBox میخواستم که برای پسزمینه شفاف بود . در حالی که به پروندههای کمک نگاه میکردم متوجه شدم . کنترلهای NET یک سبک جدید به نام SupportsTransparentBackColor دارند که به نظر میرسد این کار را انجام میدهد . با این حال ، این سبک نیاز دارد که سبک UserPaint تنظیم شود ، و همانطور که در بالا اشاره شد ، کنترل TextBox را از خود ترسیم میکند . بدتر از همه ، وقتی TextBox نقاشی کرد ، هنوز یک پسزمینه محکم داشت .
بعد از چند هفته ناامیدی ، من این راهحل را مطرح کردم : زیر کنترل TextBox و اضافه کردن یک PictureBox به کنترل ، به جای TextBox اصلی .
وقتی که کنترل باید رنگآمیزی شود ، این کار زیر را انجام میدهد :
به طور موقت سبک UserPaint را sets
گره bitmap را با ارسال پیغام PRINT WM بدست آورد
به سبک UserPaint برگردید
از نقشهرنگ برای تبدیل پسزمینه جامد به پسزمینه شفاف و شفاف استفاده میکند
ارقام را مشخص کنید و اگر لازم است آن را ترسیم کنید
سپس تصویر آلفا جدید را به PictureBox کپی کنید که وقتی رسم میشود با پسزمینه ترکیب میشود
علاوه بر این ، PictureBox باید نادیده گرفته شود تا هر رویداد موشی به آن ارسال شود . همچنین ، چندین ویژگی عمومی و روشهای TextBox باید نادیده گرفته شوند ، مانند قلم ، MultiLine ، و غیره .
استفاده از کد
این کنترل میتواند به همان شیوه کنترل استاندارد استاندارد استفاده شود . من کنترل را به عنوان یک پرونده کنترل ( DLL ) انجام دادهام . برای استفاده از این کنترل ، به سادگی روی نوار ابزار کلیک کرده و گزینه ” Add / حذف آیتمها ” و سپس به فایل AlphaBlendTextBox.dll را انتخاب کنید . پس از انجام این کار ، کنترل AlphaBlendTextBox باید در نوار ابزار شما ( تحت کنترل کاربری من ) ظاهر شود . حالا میتوانید کنترل را به یک شکل بکشید و از آن درست مانند کنترل TextBox اصلی استفاده کنید . کنترل یک ویژگی جدید به نام BackAlpha دارد که به شما اجازه میدهد تا مقدار پسزمینه control’s را تنظیم کنید . محدوده برای شفاف ، ۲۵۵ برای شفاف و یا بین برای شفاف است .