PDA

View Full Version : سوال: راهکاری برای کنترل تغییر رزولوشن ویندوز



sadaf_
پنج شنبه 24 آذر 1390, 10:31 صبح
سلام
من فرم های برنامه بر اساس رزولوشن 1024در 768 درست کردم
حالا بعد از تغییر رزولوشن فرم ها هم کوچکتر می شه و هم زیبایی خودش رو از دست می ده
برای حل چنین مشکلی چه راهکارهایی وجود داره؟
ممنون

az.heidarzadeh
پنج شنبه 24 آذر 1390, 11:01 صبح
سلام
چه جالب، مگه میشه که فرم رو بر اساس رزولیشن طراحی کرد مگه شما با vs کار نمیکنید؟...

ma.rad
پنج شنبه 24 آذر 1390, 11:12 صبح
چرا نمیشه- روش من استفاده از اسکرول بار روی فرم
البته خیلی سعی کردم باتغییر رزولیشن ، اندازه کنترل ها رو تغییر بدم ولی نشد

sadaf_
پنج شنبه 24 آذر 1390, 12:02 عصر
خودتون هم امتحان کنید
در رزولوشن 1024 در 768 فرم رو در 980;550
ست کنید
و می بینبد که فرم در حالت مستطیل شکل هست ولی وقتی در رزولوشن 1360 در 768
ست می کنید فرم از حالت مستطیل شکل خارج می شه
با چه روشی می شه کاری کرد که همه فرمها در همان حالت 1024 در 768 باز بشه هرچند اگر رزولوشن غیر از این باشه
یه جایی خوندم که اکتیو ایکس می تونه کمک کنه نتونستم دانلود کنم
Resizer هم بود ولی فقط در حد اسم باهاشون آشنایی دارم
اگر اطلاعاتی در این خصوص هست به من بدید
ممنون

سوداگر
پنج شنبه 24 آذر 1390, 12:37 عصر
سلام
من توصیه می کنم آموزش WPF ارائه شده توسط آقای کیانی را در تالار WPF حتما ببینید. در قسمت 5 بخش 1 (http://barnamenevis.org/showthread.php?102127-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-WPF-(%D9%85%D9%82%D8%AF%D9%85%D8%A7%D8%AA%DB%8C-%D8%AA%D8%A7-%D9%BE%DB%8C%D8%B4%D8%B1%D9%81%D8%AA%D9%87)&p=499791#post499791)، جوابتان را خواهید گرفت.

چه جالب، مگه میشه که فرم رو بر اساس رزولیشن طراحی کرد
کلا، پروژه های ویندوز فرم، از واحد پیکسل برای واحد اندازه کنترلها استفاده می کند پس تغییر اندازه ی کنترل ها در رزولوشنهای مختلف، در پروژه های ویندوزی طبیعی است. آقای کیانی مثال خوبی زده اند که بهتر است در تالار WPF خودتان آنرا بخوانید.
اما من قسمت مهمش را کپی پیست کردم:
برنامه های تحت ویندوزی که تا کنون و با تکنولوژی های موجود نوشته می شدند( می شوند) وابستگی زیادی به رزولوشن صفحه نمایش دارند. یه عنوان مثال فرم های شما، که در صفحه نمایش شما با رزولوشن 1024 * 768 به خوبی طراحی شده اند، ممکن است در یک کامپیوتر دیگری با رزولوشن بالاتر از ان (این امر در Laptop ها بسیار معمول می باشد. علاوه بر اینکه ان ها در بیشتر مواقع از تراکم 120 DPI استفاده می کنند. در صورتی که مونیتور های CRT معمولا از تراکم 96 DPI استفاده می کنند. "گر چه قابل تغییر می باشد" ) کوچک شود، و بر عکس، در یک سیستم با رزولوشن پایین، قسمتی از فرم های شما از صفحه نمایش خارج گردد.

اما با WPF این مشکلات مرتفع می گردد. دلیل آن هم استفاده از سیستم خاصی برای اندازه گیری اجزاء و عناصر برنامه شما، می باشد. عناصر، اعم از دکمه ها، فرم ها و هر شی قابل اندازه گیری با واحدی با نام DIU (Device Independent Unit ) اندازه گیری می شوند. هر یک DIU معادل با 1/96 (1 تقسیم بر 96) هر اینچ می باشد. در واقع می توان گفت هر DIU در صفحه نمایشی با تراکم پیکسل استاندارد یعنی 96 DPI ، دقیقا برابر با 1 پیکسل فیزیکی در صفحه نمایش می باشد. حال اگر از DPI بالاتری استفاده گردد، طبیعتا هر یک DIU (در همان رزولوشن قبلی)کمتر از 1 پیکسل خواهد شد.
/*================================================= ===========*/
نتیجه اینکه: تغییر اندازه کنترلهای شما به DPI ربط دارد نه سایز صفحه (768×1024)

sadaf_
یک شنبه 27 آذر 1390, 11:55 صبح
تکلیف فرمهایی که تا حالا درست کردیم چی می شه؟

hattarzadeh
یک شنبه 27 آذر 1390, 14:27 عصر
به نظر من در مورد تغییر رزولیشن تو همین سایت جستجو کن مشکلت حل می شه
اگه نخوای از فرمها رو تغییر بدی فکر کنم بهترین روش اینه که وقتی برنامت اجرا می شه رزولیشن ویندوز رو به اونی که خودت می خوای و برنامت رو توش طراحی کردن تغییر بدی.