2009-11-05 13 views
6


Ich habe ähnliche Fragen hier gesehen, aber habe keine Antwort gefunden.
Ich nehme einen Computergrafik-Kurs in der Schule und wir werden verschiedene Algorithmen gelehrt, die verwendet werden, um Formen anzuzeigen.
Meine Aufgabe ist es, eine beliebige Entwicklungsplattform zu wählen und diese Algorithmen zu implementieren.
Da ich Erfahrung in der Entwicklung von WPF habe, möchte ich es für diese Aufgabe verwenden.
Aber ich kann nicht finden, wie man die Koordinaten eines Pixels gibt und seine Farbe ändert.
Ich weiß, dass schulbezogene Fragen hier auf stackoverflow nicht so beliebt sind, aber ich denke nicht, dass diese Frage meine Hausaufgaben in irgendeiner Weise betrügt.
Danke!Wie kann ich ein einzelnes Pixel durch Koordinaten in WPF einschalten (Farbe ändern)

Antwort

5

Sie haben drei Optionen bekommen:

  1. ein 1-Pixel-Größe Rechteck zu einem Canvas hinzufügen (die Leinwand ist, wie Sie tun koordiniert Position in WPF),
  2. in einem einige benutzerdefinierte Malerei tun WriteableBitmap (Beispiele auf dieser Seite sind)
  3. Sie einige benutzerdefinierte Malerei im CompositionTarget.Rendering Ereignisse und „Öffnen“ ein Renderer wie so:

    using (DrawingContext context = visual.RenderOpen()) 
    { 
        context.DrawRectangle(Brushes.Red, null, new Rect(5,5,1,1)); 
    } 
    
+0

Das Code-Snippet ist nicht klar, um welchen Typ "visuell" es sich handelt. Das brachte mich dazu, mehr Informationen darüber zu googeln, weil die Basis-Klasse "Visual" keine "RenderOpen" -Methode hat. Es sieht so aus, als müsste es vom Typ 'DrawingVisual' sein. –

1

Werfen Sie einen Blick auf die WriteableBitmap Klasse. WPF lässt Sie nicht direkt mit Pixeln umgehen, aber mit der WriteableBitmap können Sie Pixel auf einer Bitmap setzen und dann rendern.

0

Sie können ein Shape-Objekt wie Linie oder Rechteck in XAML oder in Code verwenden.

Zum Beispiel mit Linie in XAML können Sie

<Line X1="10" 
     Y1="10" 
     X2="11" 
     Y2="11" 
     Stroke="Black" 
     StrokeThickness="1" /> 

X1 verwenden wird die beginnen x-Koordinate. X2 ist die Koordinate am Ende x. Y1 ist die Anfangskoordinate. Y2 ist die Koordinate am Ende y.

Verwandte Themen