時,這是我的問題:Windows窗體C#:在運行時調整標籤的圖像縮放標籤
我的標籤添加到窗體程序,包括一些屬性通過單擊並用鼠標右鍵拖動來調整它們的大小上運行點擊事件。
我的情況是,我通過OpenDialog以編程方式添加了一個包含來自給定文件的圖像的標籤,並且我希望調整此圖像以在我拉伸標籤時填充標籤大小。不幸的是,我無法通過訪問標籤中的image.Size屬性來設置運行時的大小,因爲它是隻讀的......任何想法?
這是受影響的一段代碼:
Point _oldPosition;
public static Label _ctrlActiveControl;
if (e.Button == MouseButtons.Right)
{
_ctrlActiveControl.Cursor = Cursors.SizeNWSE;
//Code to resize the control based on the mouse position
Point newPosition = new Point(e.X, e.Y);
_ctrlActiveControl.Width += (newPosition.X - _oldPosition.X);
_ctrlActiveControl.Height += (newPosition.Y - _oldPosition.Y);
//Some security to make sure I don't shrink the control too much
if (_ctrlActiveControl.Width < 10) _ctrlActiveControl.Width = 10;
if (_ctrlActiveControl.Height < 10) _ctrlActiveControl.Height = 10;
//Here I check if the label contains an image and, if so, I should resize
//The image to "Autofill" the label
if (_ctrlActiveControl.Image != null)
{
Image image = _ctrlActiveControl.Image;
image.Size = new Size(_ctrlActiveControl.Width, _ctrlActiveControl.Height);
}
_oldPosition = newPosition;
}
我不知道是否有任何的方式來做到這一點,或者我應該改用其他控制類型(我知道我可以使用別人,但我d想知道在添加更多變量之前是否有任何可用的解決方法)。
你正在嘗試改變圖像大小,因此你可以在這裏找到一些有用的例子http://stackoverflow.com/questions/1922040/resize-an-image-c-sharp但我想你應該使用一個PictureBox的這個任務不是標籤 – Steve 2015-03-31 11:47:23
PictureBox有一個SizeMode屬性,可以設置爲Stretch或Zoom,它可以自動執行您想要的操作。 – 2015-03-31 11:52:45
這就是要點...如果它是一個PicBox,它會容易得多。問題是,後來在代碼中,我創建了很多標籤列表,並且我希望保持屬性的標準化,這樣我就可以處理一個對象類型而不是太多,主要是根據它們的空值。 .. – Mario 2015-03-31 11:53:21