windows mobile下如何让背景图片透明?

发布于 2024-09-25 01:27:40 字数 453 浏览 2 评论 0原文

我正在用 C# 开发智能设备应用程序。我是 Windows Mobile 新手。我已使用以下代码将背景图像添加到应用程序中的表单中。我想使该图像透明,以便我的窗口窗体上的其他控件能够正确显示。

protected override void OnPaint(PaintEventArgs e)
        {
            base.OnPaint(e);
            Bitmap CreateCustomerImage = new Bitmap(@"/Storage Card/background.png");
            e.Graphics.DrawImage(CreateCustomerImage, 0, 0);
        }

背景图像为蓝色。当应用程序运行标签、文本框等控件时其他控件以白色显示。如何解决这个问题呢?您能给我提供任何可以解决上述问题的代码或链接吗?

I am developing the smart device application in C#. I am new to the windows mobile. I have added the background image to the form in my application by using the following code. I want to make this image transparent so that other controls on my windows form will be displayed properly.

protected override void OnPaint(PaintEventArgs e)
        {
            base.OnPaint(e);
            Bitmap CreateCustomerImage = new Bitmap(@"/Storage Card/background.png");
            e.Graphics.DrawImage(CreateCustomerImage, 0, 0);
        }

The background image has blue color. When the application runs the controls such as label, text box & other controls displayed in white color. How to solve this problem? Can you provide me any code or link through which I can solve the above issue?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

栖迟 2024-10-02 01:27:40

我无法确定您是否想让控件透明或图像,但如果您想在绘制图像时使图像透明,请按以下方法操作。

您需要将特定像素设置为透明颜色,因为 Windows Mobile 不“原生”支持它。您需要创建一个在绘制图像时使用的 ImageAttributes 实例。下面的示例使用左上角的像素作为“透明颜色”。

private readonly ImageAttributes imgattr;
.ctor() {
    imgattr = new ImageAttributes();
    Color trns = new Bitmap(image).GetPixel(0, 0);
    imgattr.SetColorKey(trns, trns);
}

protected override void OnPaint(PaintEventArgs e) {
    e.Graphics.DrawImage(image,
                         new Rectangle(0, 0, Width, Height),
                         0, 0, image.Width, image.Height,
                         GraphicsUnit.Pixel,
                         imgattr);
}

I can't make out if you want to make your controls transparent or an image, but if you want to make an image transparent when drawing it here's how.

You need to set a particular pixel as the transparent color as Windows Mobile doesn't support it "natively". You need to create an ImageAttributes instance that you use when drawing the image. The example below uses the pixel in the upper left corner as the "transparent color".

private readonly ImageAttributes imgattr;
.ctor() {
    imgattr = new ImageAttributes();
    Color trns = new Bitmap(image).GetPixel(0, 0);
    imgattr.SetColorKey(trns, trns);
}

protected override void OnPaint(PaintEventArgs e) {
    e.Graphics.DrawImage(image,
                         new Rectangle(0, 0, Width, Height),
                         0, 0, image.Width, image.Height,
                         GraphicsUnit.Pixel,
                         imgattr);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文