그림 상자의 이미지가 메모리의 비트 맵에서 동적으로 업데이트되며 비트 맵에서 선택한 부분을 투명한 색상으로 지워서 Picturebox의 이미지를 볼 수있게합니다 그것. 여기 비트 맵 부분을 투명하게 지 웁니다.
내 코드Dim gBmp As Graphics = Graphics.FromImage(GraphLayer(LayerArray))
Dim TileSrcCrop As New Rectangle(nVal(xTile), nVal(yTile), TileSize, TileSize)
Dim TileDrawSize As New Rectangle(nVal(H), nVal(V), TileSize, TileSize)
gBmp.DrawImage(GraphImage(LayerArray), TileDrawSize, TileSrcCrop, GraphicsUnit.Pixel)
PicMap(LayerArray).Image = GraphLayer(LayerArray)
감사
I는 Windows 아이콘이 될 수 있습니다 말을하려고 해요 무엇
이 스 니펫에서 "선택한 부분"이 의미하는 바는 거의 없습니다. 새로운 비트 맵을 만들고, 그 안에 비트 맵을 그려 넣은 다음, Brushes.Transparent를 사용하여 Graphics.FillRectangle로 구멍을 만들어야합니다. –
"PicMap"배열의 PictureBox가 말 그대로 서로 겹쳐서 표시되며 각 PictureBox의 일부가 투명하여 아래의 ** 다른 ** PictureBox를 볼 수있게하려면? 그렇다면 ** 이미지를 투명하게 만들어서 ** 수행 할 수 없습니다. .Net의 투명성은 컨테이너 컨트롤에만 관련됩니다. 따라서 이미지의 일부를 투명하게 만들면 상위 컨테이너의 "아래"에 해당 색상 만 표시됩니다. ** ** 아래 다른 컨트롤의 색상이 아닙니다 **. 겹치는 컨트롤은 .Net 에서처럼 작동하지 않습니다. –
투명도가있는 ** 겹치는 ** PictureBox를 얻으려면 Region() 속성을 수정하여 문자 그대로 컨트롤에서 "구멍"을 펀치해야합니다. Region()에없는 파트는 클리핑되어 밑의 컨트롤을 볼 수 있습니다. GraphicsPath()를 사용하고 Region() 생성자에 전달하여 올바른 부분을 빌드 할 수 있습니다. –