Forum: PC-Programmierung Raster zeichnen


von Lola (Gast)


Lesenswert?

Hallöchen,

beim Versuch ein 1-Pixel-Raster auf einem Grid zu zeichnen, erhalte ich 
bislang keine gezeichneten Punkte.

Hier mein bisheriger Code (Ich verwenden Visual Studio C# 2010):

1
private void DrawPixels()
2
        {
3
            double xPos;
4
            double yPos;
5
6
            DrawingVisual dv = new DrawingVisual();
7
            using (DrawingContext dc = dv.RenderOpen())
8
            {
9
                
10
                for (int y = 0; y < MainGrid.ActualHeight; y++)
11
                {
12
                    for (int x = 0; x < MainGrid.ActualWidth; x++)
13
                    {
14
                        xPos = Convert.ToDouble(x);
15
                        yPos = Convert.ToDouble(y);
16
17
                        if (x % 2 == 0)
18
                            dc.DrawRectangle(Brushes.White, null, new Rect(xPos, yPos, 1, 1));
19
                        else
20
                            dc.DrawRectangle(Brushes.Black, null, new Rect(xPos, yPos, 1, 1));                      
21
                    }
22
                }
23
24
                dc.Close();                
25
            }
26
27
            RenderTargetBitmap rtb = new RenderTargetBitmap(400, 400, 96, 96, PixelFormats.Pbgra32);
28
            rtb.Render(dv);
29
            Image img = new Image();
30
            img.Source = rtb;
31
            this.MainGrid.Children.Add(img);
32
            
33
        }



Hat jemand eine Idee woran es scheitern könnte?

Gruß, Lola

von Lola (Gast)


Lesenswert?

Mein Grid ist 400x400 groß

von Micha (nichtgast)


Lesenswert?

Na ja,

du holst dir einen Device Context von einer Klasse, die mit nichts 
verbunden ist. Das ist wie mit einem Stift in der Luft zu zeichnen.


Auf die Gefahr hin, dass das total oldschool und veraltet ist:

Überlade doch mal die OnPaint Methode deines Controls und zeichne in den 
dc, den du als Parameter mitbekommst.


Grüße,

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.