مشکل در هم رنگ کردن پشت زمینه پیکچر باکس بر روی فرم و سایر کنترل ها

mhabat

Member
سلام مجدد.
اول تشکر می کنم بابت این که اینقدر به گفته های کاربران دقت می کنید!
دقیقا هدفم همون هدفی هست که میگین 2 تا بردار که یکیش افقی و تغییر نمی کنه اون یکی هم ...

باور بفرمایید که من هر روز میام این پست آخر شمارو می خونم ولی واقعا چیزی دست گیرم نمیشه!

من هم مثل شما قبول دارم میگین میشه هزاران نقطه پیدا کرد که با اون زاویه برایند بشه aو b پیدا کرد!

ولی اصلا متوجه این کلامتون نمیشم که گفتین برای نمونه a,b رو برابر فرض کنید !
 

mhabat

Member
آقا شرمنده خیلی دیگه فکر کردم
فکر کنم متوجه شدم!

منظورتون این هستش که a,b رو برابر فرض بگیرم.
بعد تعداد مجهول میشه یه دونه ! اون مجهول رو از داخل فرمول در میارم.
مقدار بدست آمده طول بردار افقی ما هست!
و مختصات بردار بعدی ما هم از ضرب مقدار بدس آمده در زاویه یی که داریم بدست میاد
 

mhabat

Member
سلام.
من یک فرم کنترل در سی شارپ ساختم که شامل یکسری خطوط گرافیکی دیگه چند تا کنترل و....
راه ساده یی وجود داره که وقتی که این dll رو روی یک فرم قرار میدیم قابلیت autosize داشته باشه؟
یعنی وقتی رو فرم قرارش دادیم (کل dll رو به عنوان کنترل زوی فرم)بتونیم با هر انداره یی قرارش بدیم به طوری که ساختار داخل کنترل هم به همون اندازه تغییر کنه ؟
 

the_king

مدیرکل انجمن
سلام.
من یک فرم کنترل در سی شارپ ساختم که شامل یکسری خطوط گرافیکی دیگه چند تا کنترل و....
راه ساده یی وجود داره که وقتی که این dll رو روی یک فرم قرار میدیم قابلیت autosize داشته باشه؟
یعنی وقتی رو فرم قرارش دادیم (کل dll رو به عنوان کنترل زوی فرم)بتونیم با هر انداره یی قرارش بدیم به طوری که ساختار داخل کنترل هم به همون اندازه تغییر کنه ؟

اگه از امکانات آماده استفاده کنید کند تر عمل می کنه، اما امکانش هست، با TableLayoutPanel های تو در تو میشه هر جور تقسیم بندی ای رو ایجاد کرد،
بخش هایی با ابعاد ثابت یا نسبت دار (درصدی)، اما سوال تون ظاهر ارتباطی با موضوع تاپیک "مشکل در هم رنگ کردن پشت زمینه پیکچر باکس بر روی فرم و سایر کنترل ها" نداره.
 

mhabat

Member
سلام .
راهی هستش که خوده picturebox رو تغییر داد که بشه وقتی روی کنترل دیگه قرار میگیره ترنس پرنت باشه!

یعنی ما برای این میامدیم کنترل رو داخل paint ایجاد می کردیم و مشکل حل می شد.

سوالم اینه که میشه این خاصیت رو به pictureBox اضافه کرد؟

چون من مجبورم به تعداد دفعات زیادی از pictureBox و خاصیت هایی که داره استفاده کنم

و اگر بخوام یه picturebox خودم بنویسم واقعا وقت گیره
 

the_king

مدیرکل انجمن
سلام .
راهی هستش که خوده picturebox رو تغییر داد که بشه وقتی روی کنترل دیگه قرار میگیره ترنس پرنت باشه!

یعنی ما برای این میامدیم کنترل رو داخل paint ایجاد می کردیم و مشکل حل می شد.

سوالم اینه که میشه این خاصیت رو به pictureBox اضافه کرد؟

چون من مجبورم به تعداد دفعات زیادی از pictureBox و خاصیت هایی که داره استفاده کنم

و اگر بخوام یه picturebox خودم بنویسم واقعا وقت گیره

اساسا نه، وقتی کنترل مورد نظر شما می خواد Paint بشه باید هر چی که زیرش هست-شامل همه کنترل ها- مجددا و طبق ترتیب قرار گیری شون رسم بشه و بعد خودش رسم بشه.
این یعنی :
1) شناسایی همه کنترل های زیرین
2) مخفی کردن خود کنترل مورد نظر (ظاهر شدن مجدد اش باعث پرپر زدن (Flicker) میشه که اجتناب ناپذیره)
3) رسم تمامی کنترل های زیرین با رعایت ترتیب قرار گیری (بعضی از کنترل ها همچین درخواستی رو پشتیبانی نمی کنند)
4) انتقال تصویری از زیر کنترل به خود کنترل به عنوان تصویر زمینه (از اونجایی که این یک تصویر لحظه ای است اگر بعدا زیرش تغییری رخ بده منعکس نخواهد شد).
5) رسم کردن محتویات کنترل روی تصوبر زمینه
6) آشکار کردن خود کنترل
این قابلیت در ذات پنجره های ویندوز نیست، یعنی خاصیت پنجره شفاف در ویندوز اسمش هست ولی اینقدر کامل نیست، لذا از اونجایی که پیاده سازی صحیح و
مطلوب این روال همیشه کارساز نبوده در کنترل های Windows Form ئه Net. هم پشتیبانی نمیشه.
در فروم مثال PictureBox شفاف هست، اما فقط برای فرم، نه کنترل های زیرش. مثل اون Label ای که Background اش رو Transparent می کنیم.
برای موارد خاص میشه این ظاهر شفاف رو روی یک فرم اختصاصا و خیلی طبیعی ایجاد کرد، اما یک کنترل همه منظوره نمیشه.
 

جدیدترین ارسال ها

بالا