Pergunta

Eu sou novo desenvolvimento móvel e eu estou trabalhando em uma prova de aplicação do conceito no Windows Mobile 6.0 Os e CF 2.0

Eu tentei projetar nova backgorund para a minha candidatura com o Adobe Photoshop, eu encontrei um tutorial sobre o codeproject.com sobre como resolver o problema janelas fullscreen móvel e aplicativo de imagem problema de fundo com Pinvoke api de acordo com o Dr.Luiji iPhone UI no artigo Windows mobile

Quando eu tentei alguma imagem gradiente para adicionar forma fundo. texto alt http://img268.imageshack.us/img268/8482/ppc2.jpg

A qualidade da imagem parece pobre. Mas eu tentei adicionar uma outra imagem de fundo para o meu fundo do formulário, parece bom.

alt texto http://img199.imageshack.us/img199/9812/ppc3 .jpg

Eu não entendo onde está o problema, eu tentei mudar minha imagem Backgorund para bmp, png, jpg etc. ainda pobre. O que estou fazendo erro com photoshop?
(Nota:.?, Por outro lado, eu não tentei este projeto em pocketpc real ainda não é)

No entanto, Meu outro problema real é o método OnPaintBackground sobre as formas móveis. Como escrevi acima eu usei Pinvoke api para desenhar fullscreen formas. Aqui está o código de exemplo:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Reflection;
using Microsoft.WindowsMobile.Status;

namespace My_Mobile
{
    public partial class MainForm : Form
    {

        Globals _globals = new Globals();
        Graphics _gxBuffer;
        Bitmap _offsetBitmap;  

        Bitmap backgroundVertical = null;
        public MainForm()
        {
            InitializeComponent();
            backgroundVertical = new Bitmap(_globals.ApplicationPath + @"\Resources\wallpaper.bmp");
            _offsetBitmap = new Bitmap(this.Width, this.Height);

        }

        private void MainForm_Load(object sender, EventArgs e)
        {

        }


        protected override void OnPaintBackground(PaintEventArgs e)
        {
            //base.OnPaintBackground(e);
        }


        protected override void OnPaint(PaintEventArgs e)
        {
                _gxBuffer = Graphics.FromImage(_offsetBitmap);

                _gxBuffer.Clear(this.BackColor);

                _gxBuffer.DrawImage(backgroundVertical, 0, 0);
                this.Invalidate();

                e.Graphics.DrawImage(_offsetBitmap, 0, 0);

        }

    }
}

Eu estou tentando adicionar alguns controles no formulário, em seguida, os controles são mostrados transparente quando a aplicação executar pela primeira vez. Se você tentar mover cursor sobre os esses controles, estes são voltar para normalmente.

O que eu posso fazer para resolver este problema?

Obrigado.

alt texto http://img508.imageshack.us/img508/6717/ppc1 .jpg

Foi útil?

Solução

Em primeiro lugar, o seu código precisa de algum up limpa:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Reflection;
using Microsoft.WindowsMobile.Status;

namespace My_Mobile
{
    public partial class MainForm : Form
    {

        Globals _globals = new Globals();

        Bitmap backgroundVertical = null;
        public MainForm()
        {
            InitializeComponent();
            backgroundVertical = new Bitmap(_globals.ApplicationPath + @"\Resources\wallpaper.bmp");
        }

        private void MainForm_Load(object sender, EventArgs e)
        {
        }


        protected override void OnPaintBackground(PaintEventArgs e)
        {
            //base.OnPaintBackground(e);
        }


        protected override void OnPaint(PaintEventArgs e)
        {
             using (Bitmap buffer = new Bitmap(this.Width, this.Height))
             using (Graphics gfx = Graphics.FromImage(buffer))
             {
                gfx.Clear(this.BackColor);
                gfx.DrawImage(backgroundVertical, 0, 0);
                //this.Invalidate();  Don't call Invalidate here, it shouldn't be needed
                e.Graphics.DrawImage(buffer, 0, 0);
             }
        }
    }
}

blog fala clássicos de Chris TACKE cerca de bitmaps na CF. Você precisa ter cuidado:

http: //blog.opennetcf .com / ctacke / permalink, guid, 987041fc-2e13-4bab-930a-f79021225b74.aspx

Depois de tudo isso, eu não sou realmente certo o que sua pergunta é. Você poderia ser mais específico? Como por exemplo, eu não vejo qualquer P / Invoca, mas você disse que usou algum. Onde eles estão?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top