簡體   English   中英

查找並執行寬高比

[英]Finding and enforcing an aspect ratio

我在窗體上有一個控件,並且我希望能夠控制寬度,並更改控件的高度以保持其原始縱橫比。 因此,我想到了以下問題:

問題:

  • 您如何確定控件的確切長寬比?
  • 在調整大小事件中我該怎么做才能將高度設置為新寬度的正確長寬比?

長寬比就是一個軸與另一個軸的比:寬度/高度。

要保持寬高比,給定目標(newWidth,newHeight),只需確保(newWidth / newHeight)==(寬度/高度)

為此,您必須(例如)確定寬度或高度是最重要的軸。 如果您固定寬度,則可以從寬度計算高度以保留長寬比:

newWidth = newWidth;
newHeight = newWidth * (Height / Width)

要執行此操作,您只需要坐在Resize事件上,以便在嘗試調整控件大小時可以控制大小:

private void Form1_Resize(object sender, System.EventArgs e)
{
    sender.Size = new Size(control.Size.Width, control.Size.Width * desiredAspectRatio);
}

長寬比是寬度/高度。 例如,640 x 480尺寸的屏幕是4:3的寬高比,即1.33333。

在表單加載時,您可以通過將寬度除以高度並保留為變量來保留控件的縱橫比,然后在表單調整大小時重置每個控件的高度,以匹配保存的縱橫比

myControl.Height = Math.Round(myControl.Width x mySavedRatio);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM