تا اونجایی که یادم مونده تعداد point ها در یک inch برابر 72 هست.
ولی تعداد پیکسل ها در یک inch میتونه متفاوت باشه (یعنی قابل تغییره) ولی معمولا توی کارهای گرافیکی که برای نمایش روی مانیتور استفاده میشه، توی هر اینچ 72 یا 96 پیکسل در نظر گرفته میشه
اگر 1inch=72pixel می شه گفت point=pixel و هیچ تبدیلی نمیخواد.
اگر هم 1inch=96pixel باید از یه تناسب ساده استفاده کنی points = pixels * 72 / 96 و pixels = points * 96 / 72
البته مطمئن نیستم ها چون اصلا نمیدونم این فرم شما چی هست و برای چکار طراحی شده؟
--------------------------------------------------------------------------------------------------------------------------
ولی چرا اصلا اینکار کنی یه روش خیلی ساده که به تبدیل هم احتیاج نداره = حذف کردن واحد ها و کار با درصد
--------------------------------------------------------------------------------------------------------------------------
تعداد پیکسل افقیه فرم و تعداد پیکسل عمودیه فرم رو قبل از تغییر سایز فرم، توی متغیر ذخیره کن (مثلا هنگام رخداد FormLoad)
تعداد پیکسل افقی فرم و تعداد پیکسل عمودی فرم رو بعد از تغییر سایز فرم، توی یه متغیر دیگه ذخیره کن (مثلا هنگام رخداد ّFormResize)
برای کنترلت هم مقدار اولیه رو تو یه متغیر دیگه (هنگام رخداد FormLoad) ذخیره کن
کد:
private Size bfrForm = new Size(); //form Size, before resizing
private Size afrForm = new Size(); //form Size, after resizing
private Size bfrCtl = new Size(); //Control Size, before resizing
private void Form1_Load(object sender, EventArgs e)
{
bfrForm.Width = this.Width;
bfrForm.Height = this.Height;
bfrCtl.Width = button1.Width;
bfrCtl.Height = button1.Height;
}
کد:
private void Form1_Resize(object sender, EventArgs e)
{
afrForm.Width = this.Width;
afrForm.Height = this.Height;
button1.Width = (int)(bfrCtl.Width * ((float)afrForm.Width / (float)bfrForm.Width));
button1.Height = (int)(bfrCtl.Height * ((float)afrForm.Height / (float)bfrForm.Height));
}
اینجا اومدیم درصد تغییر سایز فرم رو با یه تقسیم یاده بدست آوردیم البته به چون یه عددی بین صفر و یک هست باید به float تبدیلش کنیم
کد:
((float)afrForm.Width / (float)bfrForm.Width)
اگه float نکنیم مقدارمون یا صفر میشه یا پله ای افزایش پیدا میکنه
و در آخر این مقدار اعشاری رو در مقدار اولیه ابعاد button (که تو form load ذخیرش کرده بودیم) ضرب میکنیم
.