2

我的图片框有问题。我想把它放在我在程序中得到的地图上。当我将 img 放入 Picturebox 然后 BringToFront();

我想添加一张有问题的图片,但我刚从 StackOverflow 开始,还没有足够的声誉...... :(

无论如何,我的 img 已显示,但周围有白色区域。我使用的 img 周围没有这些白色的东西。如何使我的图片框透明,以便删除白色字段。

        LogoBox.Location = new Point(size.Width - 340, size.Height - 100);
        LogoBox.Image = Properties.Resources.Troepoet;
        LogoBox.Size = new System.Drawing.Size(250, 40);
        LogoBox.SizeMode = PictureBoxSizeMode.StretchImage;
        LogoBox.BackColor = Color.Transparent;

我也尝试只绘制位图来做到这一点,但是我看不到任何将它放在地图上的可能性。地图是“主导”控件。

有什么帮助/建议吗?

谢谢。

4

1 回答 1

1

您无需在地图上放置图片框即可绘制徽标。

简单的方法是覆盖 Map OnPainOverlays () 并在地图上绘制您想要的任何内容(徽标、文本、任何形状),或者如果您不想继承 GmapControl 并通过拖放来使用GMapControl则使用其他方式通过一个表单来处理Paint () 事件:

Private Sub GMapControl1_Paint(sender As Object, e As PaintEventArgs) Handles GMapControl1.Paint
    Dim logo As Image = image.FromFile("C:\transparentLogo.png")
    e.Graphics.DrawImage(logo, GMapControl1.Width - logo.Width - 5, 5, logo.Width, logo.Height)
End Sub

确保使图像透明并将其保存为 PNG 格式。

于 2015-11-02T09:11:45.850 回答