2012-11-05 64 views
4

我在這裏問一個問題,因爲我不知道如何在谷歌搜索它,我不知道這個詞怎麼稱呼這個。圖片框大小座標關係

我的意思是一個基本上位於元素左上角的「零點」,例如pictureBox。所以,當我爲pictureBox設置新的寬度和高度屬性時,它可以正常工作,但它相對於左上角。

我的意思是你有pictureBox,比方說100 x 100,你希望減少到50 x 100,所以你會在你的圖片框下面得到「空白空間」,而不是上面。 PictureBox從這個左上角的零點開始計算它的屬性。

而我需要的是將這一點改變到另一個角落。
所以,當我改變我的身高時,它會數起來,而不是下降。請幫幫我。

我真的希望你能理解我。

哇,謝謝你們的建議!我測試了錨屬性和Top + = 50;現在,並沒有解決我的問題。讓我試着用另一種方式來描述它。你有一個圖像(100px),草的頂部50px,底部的天空50px。所以你有高度爲100的圖片框。如果你設置pictureBox.height = 50;你只會看到天空。但我只需要離開草地。我在這裏看到的主要問題是因爲這個零點位於左上角。

下面是一個例子:

Simple image splitted onto the two sides: earth and sky

Button1的Click事件:

private void button1_Click(object sender, EventArgs e) 
    { 
     pictureBox1.Height = 150; 
    } 

你按下按鈕後,你會得到的結果是:

result of the button press

但我需要anot她的結果是:

enter image description here

據我所知是因爲height屬性計數從左上角。所以,如果我將其更改爲左下角或右下角,它將以我需要的方式工作。請幫助我改變了這一點......

MSDN參考:http://msdn.microsoft.com/en-us/library/system.windows.forms.picturebox.sizemode(v=vs.71).aspx

此屬性的有效值是從PictureBoxSizeMode枚舉拍攝。默認情況下,在PictureBoxSizeMode.Normal模式下,圖像被放置在PictureBox的的左上角,並且對於PictureBox來說太大的圖像的任何部分都被剪切。使用PictureBoxSizeMode.StretchImage值會使圖像伸展以適應PictureBox。

+0

您是否熟悉'Location'屬性? http://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.controls.picturebox.location%28v=vs.80%29.aspx – Frito

+0

作爲參考,您可以編輯自己的問題到修復錯誤(點擊「編輯」) - 我已經爲你做了這個,雖然 –

+0

你正在尋找的詞是「錨」。 – Hardrada

回答

0

除非您使用自動處理控制佈局的容器,否則必須自行移動它。我假設你用一條線,如調整大小的控制代碼:

myPictureBox.Height = 50; 

你將不得不也下降相同的量移動控件的位置:

myPictureBox.Top += 50; 

泛化,像這應該做的調整高度的伎倆:

void ResizeHeightFromBottom(this Control c, int newHeight) 
{ 
    var oldBottom = c.Bottom; 
    c.Height = newHeight; 
    c.Top = oldBottom - newHeight; 
} 

我將離開調整寬度和兩個si同時作爲讀者的練習,以及指定一個任意的參考點。