سؤال

أنا المحمول الجديد للتنمية و أنا أعمل على إثبات المفهوم التطبيق على ويندوز موبايل 6.0 Os و را 2.0

حاولت أن التصميم الجديد backgorund بطلب العمل مع أدوبي فوتوشوب ، لقد وجدت البرنامج التعليمي على codeproject.com عن حل ويندوز موبايل ملء الشاشة مشكلة التطبيق خلفية صورة المسألة مع Pinvoke api وفقا للدكتور Luiji هو اي فون واجهة المستخدم في ويندوز موبايل المادة

عندما حاولت إضافة شكل خلفية بعض التدرج الصورة.النص البديل http://img268.imageshack.us/img268/8482/ppc2.jpg

جودة الصورة يبدو الفقراء.ولكن حاولت إضافة صورة خلفية إلى شكل الخلفية ، يبدو جيد.

النص البديل http://img199.imageshack.us/img199/9812/ppc3.jpg

أنا لا أفهم أين المشكلة, حاولت أن أغير backgorund صورة bmp, png, jpg.... الخفإنه لا يزال الفقراء.ما الذي أفعله خطأ مع فوتوشوب ؟
(ملاحظة :من ناحية أخرى, أنا لم أجرب هذا التصميم على الجيب حتى الآن.أليس كذلك؟)

ومع ذلك ، بلدي آخر المشكلة الحقيقية هي OnPaintBackground الأسلوب على أشكال النقالة.كما كتبت أعلاه استخدمت Pinvoke api الرسم ملء الاستمارات.هنا هو نموذج التعليمة البرمجية :

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);

        }

    }
}

أحاول إضافة بعض عناصر التحكم على النموذج ثم ضوابط شفافة تظهر عند تشغيل التطبيق لأول مرة.إذا حاولت تحريك المؤشر فوق عناصر التحكم هذه ، هذه هي تتحول إلى عادة.

كيف يمكنني حل هذه المشكلة ؟

شكرا لك.

النص البديل http://img508.imageshack.us/img508/6717/ppc1.jpg

هل كانت مفيدة؟

المحلول

أولا وقبل كل شيء ، رمز يحتاج تنظيف:

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);
             }
        }
    }
}

كريس Tacke الكلاسيكية بلوق يتحدث عن الصور النقطية في را.عليك أن تكون حذرا:

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

بعد كل هذا, أنا لست متأكدا حقا ما سؤالك.هل يمكنك أن تكون أكثر تحديدا ؟ مثل على سبيل المثال, أنا لا أرى أي P/استدعاء لكنك تستخدم بعض.أين هم ؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top