Raster zeichnen

Gast #3533927
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
#3533942
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,

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren