目標,PictureBox上面擺 Label, 當滑鼠移動到 Label的區域的時候,Label的背景會變色,而且變色後可以看到後面的 picture
Picture | Text |
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjV0Km3f186l1sp4Pu-petQ1TKgfo1qK77s_6RgFlvEiGzXjmBupcejJi0mu17y1t1G7IjY6HiFI-xLvQXIW7ni3cFL4BQV63ZIr4iEHcMqAUb1qmcPMGzioSeEIKMzQeh_f3yPV0UNG7OL/s320/opacity_001.png) | 首先,拉一個 PictureBox跟三個 Label, PictureBox的圖片伸縮模式設定為 Zoom, 底色設定為 FF8C00 ex:" ● ",因為圖片設定為 Zoom的關係,PictureBox的上下會留下空白,而且因為有設定 backcolor的關係,空白會呈現 FF8C00的顏色 |
| |
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9PqPBqUxd3mePvtUwenYBWHfkezXQTL_7lDE37DuPJV3Tx3rIwpfGPqaSznD1VEF1WLimswwYfZdWhOoIlrapvI91kwVEkVC6M-5hU6s_0gqm8Cd9lcTkFilMudsAzY7MpBkvYueYGvIn/s1600/opacity_002.png) | 加入3個Label,Label的底色會遮住Picture的圖片 |
| |
| 目標,滑鼠移動到 label1 區域內時,背景顏色換為透明色
為 label1 掛上 Enter事件, 程式碼如下
private void OPacityActive_MouseEnter
(object sender, EventArgs e)
{
Label l_lbl = sender as Label;
l_lbl.BackColor =
Color.FromArgb
(80, 255, 10, 105);
}
Mouse_Leave
l_lbl.BackColor =
System.Drawing.Color.Empty;
重點在 Color.FromArgb(Alpha,R,G,B)
這行程式碼上面, Alpha是透明度,RGB是顏色色碼。
不過效果怎麼怪怪的, label1 底色是變了,不過沒有半透明的效果出來
改變 Form1的底色看看 |
| |
| 厄,改變Form1顏色的結果,3個Label的顏色都變了,這說明了甚麼,難道 Label
一開始背景色就是透明色!!!!而且直接透明到 Form1去了,馬上檢查 InitializeComponent() |
| |
| 果然沒錯,3個Label都加在 Form1裡面 |
| |
| 改變 在事件裡面傳入 Label的 parent
增加了這行
l_lbl.Parent = pictureBox1;
指定parent為 pictureBox1 |
| |
| |
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiObX-RBwX6-3XDxe1YnOGAXoziFN7oos79gE5dbT1PYKdVj9X4ITfBaON2M0CktB0mU8yD35ECC-IYwqbjQzY3EddoJ3m_q5692NOL6Bpi0BAVc_REXPSvJc7KeJmuBOywWdcoej8k32Gj/s1600/opacity_005.png) | 半透明成功,不過還有座標會改變的問題 |
| |
| |
| 在 InitialComponent()裡面更改 Label的 Controls.Add 的相關設定 |
| |
| |
| 完成 |
相關閱讀
C# - 設定透明色
0 件のコメント:
コメントを投稿