Grafikprogrammierung in .NET Compact Framework

Aktualisiert: November 2007

Mit .NET Compact Framework können Sie robuste und optisch ansprechende Anwendungen erstellen. Sie können auch Plattformaufrufe verwenden, um mit systemeigenem Code besondere Effekte zu erzielen. In .NET Compact Framework Version 2.0 und höheren Versionen können Sie Direct3D-Anwendungen programmieren. Weitere Informationen zu DirectX und Direct3D in .NET Compact Framework finden Sie unter Windows Mobile-DirectX und -Direct3D.

Berücksichtigen Sie folgende Punkte, wenn Sie Grafikobjekte in .NET Compact Framework programmieren:

  • GDI+ wird in .NET Compact Framework nicht unterstützt. Einige Methoden der Graphics-Klasse, die komplexe Zeichen-, Füll- und Transformationsoperationen ausführen, werden nicht unterstützt. Pfade, Bögen, 2-D und 3D werden nicht unterstützt.

    Jedoch werden in .NET Compact Framework die wichtigsten Zeichnungsgrundelemente und deren zugehörige Füllmethoden unterstützt: Ellipse, Linie, Bild, Polygon, Rechteck, Kette und Region.

  • Sie können Code für hochauflösende Anwendungen schreiben. Weitere Informationen zu hoher Auflösung finden Sie unter Gewusst wie: Behandeln von Änderungen der Ausrichtung und Auflösung.

  • Nur Colorkeytransparenz wird unterstützt. Alphablending, die pixelweise Mischung von Quell- und Hintergrundfarbdaten, wird nicht unterstützt. Dementsprechend müssen der colorLow-Parameter und der colorHigh-Parameter der SetColorKey-Methode die gleiche Farbe bezeichnen.

  • In .NET Compact Framework und im vollständigen .NET Framework werden Vergleiche mit bekannten Farben unterschiedlich ausgewertet. Wenn in .NET Compact Framework eine bekannte Farbe wie beispielsweise Aquamarine mit einer Farbe verglichen wird, die über dieselben RGB-Werte verfügt wie Aquamarine, werden diese Farben als gleichwertig behandelt. Im vollständigen .NET Framework werden diese Farben als unterschiedlich behandelt, da bekannte Farben neben den RGB-Werten weitere kennzeichnende Informationen enthalten.

  • In .NET Compact Framework wird der Konstruktor der Font-Klasse nicht unterstützt, der ein bestehendes Font-Objekt verwendet.

  • Sie können die CreateGraphics-Methode nur für ein Form-Objekt oder Control-Objekt verwenden.

  • Wenn ein Bild nicht geladen wird, stellen Sie sicher, dass sich imgdecmp.dll auf dem Gerät im Windows-Verzeichnis befindet.

  • Die Clone-Methode und die FromHandle-Methode von Icon können auf Geräten mit Windows Mobile, Version 5.0, ordnungsgemäß ausgeführt werden. In .NET Compact Framework werden hochauflösende Symbole, jedoch keine High-Color-Symbole, unterstützt.

  • Farbverlaufspinsel werden in .NET Compact Framework nicht unterstützt. Sie können jedoch durch Zusammenarbeit mit systemeigenen Funktionen eine Farbverlaufsanzeige erreichen. Ein Beispiel finden Sie unter Gewusst wie: Anzeigen einer graduellen Füllung.

Verbessern der Zeichengeschwindigkeit

Die folgenden Programmierpraktiken können die Zeichenleistung verbessern, wenn Graphics-Objekte verwendet werden:

  • Erstellen Sie nur ein Graphics-Objekt, oder verwenden Sie das Objekt von PaintEventArgs in der OnPaint-Methode.

  • Zeichnen Sie in eine Offscreenbitmap. Lassen Sie dann die gesamte Bitmap in einem Schritt auf der Anzeige zeichnen. Ein Codebeispiel finden Sie unter Gewusst wie: Zeichnen von Bildern außerhalb des Bildschirms.

  • Zeichnen Sie nur die Teile des Bilds neu, die sich geändert haben.

  • Verwenden Sie beim Zeichnen die gleichen Ziel- und Quellgrößen. Vermeiden Sie es, wenn irgend möglich, Grafiken zu dehnen.

  • Minimieren Sie die Anzahl von Zeichenoperationen, indem Sie verfolgen und vermerken, welche Elemente neu gezeichnet werden müssen. Wenn beispielsweise ein Cursor über ein Bild gezogen wird, muss nicht das gesamte Bild neu gezeichnet werden. Zeichnen Sie stattdessen nur den Abschnitt des Bilds neu, der von der vorherigen Cursorposition überschrieben wurde.

Siehe auch

Weitere Ressourcen

Mobile Direct3D-Programmierung in .NET Compact Framework

Interoperabilität in .NET Compact Framework

Grafik und Zeichnen in .NET Compact Framework