2012-12-14 46 views
0

我在窗體中有一個pictureBox。在那個pictureBox的中間,我放置了一張所選照片的​​名字。 現在,我想爲選定名稱的背景着色。如何設置單詞的背景顏色?

我該怎麼做?

+1

一些代碼可以幫助人們。你是如何放置這個名字的?有標籤?你有沒有嘗試設置標籤的背景?如果您使用的是不同的技術,代碼將會非常有用! – Belogix

+0

有完整源代碼的最終解決方案? – Kiquenet

回答

5

我不確定你的意思,但一個PictureBox的內容是一個圖像。如果您只想顯示文字,請使用標籤。如果您希望它具有特定的背景顏色,請將其BackColor屬性設置爲所需的顏色。

例子:

private void Form1_Load(object sender, EventArgs e) 
{ 
    var label = new Label {BackColor = Color.White}; 
    Controls.Add(label); 
} 

編輯:

我允許薩姆帕斯的例子我再次使用部分上面,以使其適應用戶的評論。

void pictureBox1_Paint(object sender, PaintEventArgs e) 
{ 
    using (var font = new Font("Arial", 14)) 
    { 
     const string pictureName = "Picture.jpg"; 
     var textPosition = new Point(10, 10); 
     //Drawing logic begins here. 
     var size = e.Graphics.MeasureString(pictureName, font); 
     var rect = new RectangleF(textPosition.X, textPosition.Y, size.Width, size.Height); 
     //Filling a rectangle before drawing the string. 
     e.Graphics.FillRectangle(Brushes.Red, rect); 
     e.Graphics.DrawString(pictureName, font, Brushes.Green, textPosition); 
    } 
} 
+0

嘿, 我的意思是我有一張照片的名字。這張照片顯示在圖片箱中。我想更改名稱的背景(而不是照片的背景)...我已經使用「e.Graphics.DrawString」將單詞放置在pictureBox的中心。我能做什麼? –

+0

Sampath,Eve,非常感謝!非常感激! –

1

您可以嘗試下面的示例。

一個圖片框只需添加到您的表單,並添加事件處理程序Paint事件:

要在PictureBox中使用Paint事件。您可以從e.Graphics中獲得圖形參考,然後使用示例中的DrawString()()。

private void pictureBox1_Paint(object sender, PaintEventArgs e) 
{ 
    using (Font myFont = new Font("Arial", 14)) 
    { 
     e.Graphics.DrawString("Hello .NET Guide!", myFont, Brushes.Green, new Point(2, 2)); 
    } 
} 

希望這會幫助你。

+0

這將繪製具有某種顏色的文本(即**前景**顏色)。 OP詢問如何更改**背景**顏色。我能想到的唯一方法是首先繪製所需背景顏色的矩形,然後按照您所做的操作繪製文本。 –

0

您的問題可能與更改控件的背景顏色屬性一樣簡單,您可以在屬性窗口中更改該屬性。