PDA

نسخه کامل مشاهده نسخه کامل : اتو سایز واقعی



shalineh
16-03-2008, 14:45
در وی بی 2005 میتوان لیبل رو اتو سایز کرد. بطوریکه اندازه لیبل برابر با اندازه تکست لیبل میشود.
ولی آیا واقعا همینطوره؟
جواب منفی می باشد. یه شکل زیر دقت کنید:


[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]


این تصویر مربوط میشود به یک لیبل استاندارد در وی بی 2005 که اتوسایز آن برابر True ست شده است. حتی Margin و Padding آن هم برابر صفر قرار داده شده است. ولی باز هم مشاهده می فرمایید که حاشیه های بین لبه ها قابل رویت می باشد.
برای درک بهتر موضوع، همان لیبل رو در برنامه PhotoImpact نشان داده ام. (تصویر زیر)


[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]


ملاحظه می فرمایید که کاملا یک اتو سایز واقعی ( = اندازه تکست ) به نمایش گذاشته شده است.


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


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

نتیجه کار:


[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

bad_boy_2007
04-04-2008, 11:04
روش جالبی بود تبریک میگم ولی ای کاش واسه کدهات یکم کامنت هم میزدی که خوانایی بیشتری داشته باشه
راستی بجای کد های مشابه :
DG=Nothing
میتونی از DG.Dispose هم استفاده کنی که ساده تره .
موفق باشی :46:

CG_
20-05-2008, 13:16
میشه این پست رو با کامنت دوباره بفرستی؟ این جوری که برای من یکی فایده ای نداشت. مخصوصاً این که vb هم هست، یکم باز واسه ما تازه کارا اذیتمون می کنه.