PDA

View Full Version : سوال: کار با رزولوشن صفحه و انداره فرم ها



madrid-poorya
چهارشنبه 23 فروردین 1391, 12:33 عصر
سلام به دوستان گل:قلب:
من یه برنامه نوشتم با رزولوشن1024*768 وقتی میبرم یه کامپیوتر دیگه با یه رزولوشن دیگه کلا فرمم میریزه بهم. حالا میخوام بدونم راهی هست؟ البته گزینه Anchor هست ولی میخوام با رزولوشن کار کنم. یا یه جوری موقع اجرای برنامه رزولوشن سیستم رو بکنم1024*768 یا رزولوشن برنامه رو بکنم همون رزولوشن سیستم. یعنی دو حالت طراحی فرم داشته باشم.البته میخوام بدونم از پایه میشه اینکارو کرد یا نه:لبخند:
ممنونم

va2012
چهارشنبه 23 فروردین 1391, 12:51 عصر
سلام . دوست عزیز منم خیلی در این مورد تحقیق کردم. در برنامه نویسی WinApp با سی شارپ متاسفانه این مشکل اجرای برنامه در رزولیشن های مختلف وجود داره ولی اگر بخواهید با هر رزولیشنی برنامتون درست نشون داده بشه و متناسب با اون رزولیشن تغییر کنه باید از WPF استفاده کنید.

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

arya1348
جمعه 17 آذر 1391, 19:41 عصر
این مشکل رو تقریبا تمام دوستانی که با سی شارپ برنامه می نویسن دارن
منم یه برنامه نوشتم روی هر کامپیوتری می برم جای کنترل ها و تکست ها تغییر می کنه
اگه از آیکون و تصویر تو برنامه تون استفاده کرده باشین اوضاع خرابتر هم میشه.
از یکی شنیدم که رزولشن کامپیوتر مقصد رو موقع اجرای برنامه باید بگیرم و متناسب با اون به تمام کنترل ها درصد بدم
کسی هست با این روش کار کرده باشه البته اگه تعداد زیادی کنترل روی صفحه داشته باشید واقعا کار مشکل میشه
با WPF تا حالا کار نکردم ولی فکر می کنم یه راه حلی تو همین سی شارپ باشه استفاده از خاصیت Dock و Anchor هم مشکلی رو حل نمیکنه

andaron
چهارشنبه 07 فروردین 1392, 13:56 عصر
سلام
راحلی برای این مشکل رزلیشن وجود داره ؟

jmfnima
پنج شنبه 08 فروردین 1392, 20:26 عصر
استفاده از کامپوننت Resize میتونه مشکلت رو حل کنه .

mousa1992
پنج شنبه 08 فروردین 1392, 22:12 عصر
سلام



سلام . دوست عزیز منم خیلی در این مورد تحقیق کردم. در برنامه نویسی WinApp با سی شارپ متاسفانه این مشکل اجرای برنامه در رزولیشن های مختلف وجود داره ولی اگر بخواهید با هر رزولیشنی برنامتون درست نشون داده بشه و متناسب با اون رزولیشن تغییر کنه باید از WPF استفاده کنید.


هیچی غیر ممکن نیست- در مورد الگوریتم wpf برای انجام این کار مطالعه کن ایده های جالبی میگیری
ی راه اینه که قابلیت انتخاب فونت به کاربر بدی و انتخاب کنه برنامه توچه سایزی اجرا بشه ، با تغییر سایز فونت فرمتون و کل مخلفات متناسب تنظیم میشن و شما که با رزولوشن 1024*768 نوشتین باید فونت برنامتون توی سیستمی که 1920*1080 هست بزرگ تر بشه - تستش کن جواب میگیری

تغییر رزولوشن سیستم اصلا کار درستی نیست :D

موفق باشید

saman-arsenal
جمعه 09 فروردین 1392, 11:10 صبح
ما هم برای یکی از برنامه هامون این مشکل و داشتیم اما با گرفتن اندازه تصویر هر مانیتور با این کد ها :

double
xii = Screen.PrimaryScreen.WorkingArea.Width;
double yii = Screen.PrimaryScreen.WorkingArea.Height;


و کار کردن با xii و yii برای دادن location به برخی عناصر و استفاده از خاصیت Anchor عناصر تونستیم این مشکل رو رفع کنیم البته یکم کار میبره اما مشکل و حل میکنه :d
برای مثال ما برای location داد به یکی از فرم هامون که داخل فرم اصلیمون باز میشد اینطوری location دادیم


this
.Location = new Point(Convert.ToInt32(x-7), Convert.ToInt32(yii * 0.07));