Как сделать фоновое изображение прозрачным в Windows Mobile? - PullRequest
1 голос
/ 25 сентября 2010

Я занимаюсь разработкой приложения для смарт-устройств на 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);
        }

Фоновое изображение имеет синий цвет.Когда приложение запускает элементы управления, такие как метка, текстовое поле и другие элементы управления, отображаются белым цветом.Как решить эту проблему?Можете ли вы предоставить мне какой-либо код или ссылку, по которой я могу решить вышеуказанную проблему?

1 Ответ

2 голосов
/ 25 сентября 2010

Я не могу разобрать, хотите ли вы сделать ваши элементы управления прозрачными или изображение, но если вы хотите сделать изображение прозрачным при рисовании, вот как.

Вам нужно установить определенный пиксель какпрозрачный цвет, так как 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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...