Comment dessiner un rectangle dans WPF à un certain x,y de l'écran de l'emplacement?

En C#, WPF, j'ai créé un rectangle:

        Rectangle myRgbRectangle = new Rectangle();
        myRgbRectangle.Width = 1;
        myRgbRectangle.Height = 1;
        SolidColorBrush mySolidColorBrush = new SolidColorBrush();

Oui, vraiment, je veux juste qu'il soit de 1 pixel par 1 pixel. Et je veux changer de couleur en fonction de la hauteur variable comme ceci:

        mySolidColorBrush.Color = Color.FromArgb(255, 0, 0, (byte)height);
        myRgbRectangle.Fill = mySolidColorBrush;

Maintenant, comment puis je tire sur un x,y de l'emplacement sur l'écran? J'ai une grille (myGrid) sur mon MainWindow.xaml.

Merci!


Voici le code:

        myRgbRectangle.Width = 1;
        myRgbRectangle.Height = 1;
        SolidColorBrush mySolidColorBrush = new SolidColorBrush();

        int height;
        for (int i = 0; i < ElevationManager.Instance.heightData.GetLength(0); i++)
            for (int j = 0; j < ElevationManager.Instance.heightData.GetLength(1); j++)
            {
                height = ElevationManager.Instance.heightData[i, j] / 100;
                //Describes the brush's color using RGB values. 
                //Each value has a range of 0-255.
                mySolidColorBrush.Color = Color.FromArgb(255, 0, 0, (byte)height);
                myRgbRectangle.Fill = mySolidColorBrush;

                myCanvas.Children.Add(myRgbRectangle);
                Canvas.SetTop(myRgbRectangle, j);
                Canvas.SetLeft(myRgbRectangle, i);

Et c'est jeter cette erreur: Visuel Spécifié est déjà un enfant d'un autre Visuel ou la racine d'un CompositionTarget.

Le nombre de 1 pixel de rectangles allez-vous créer?
Une tonne de ces 3600 x 3600. Vraiment, je veux juste attirer de pixels de couleurs.
Eh bien, ce serait d'environ 13 millions de rectangles. Impossible! Et vous avez déjà la réponse (commentaire) sur votre question précédente: WriteableBitmap est le uniquement sensible.
Je ne comprends pas pourquoi cela est impossible. Et j'ai dit que WriteableBitmap a une fuite de mémoire. Aussi, je ne peux pas utiliser code "potentiellement dangereux".
C'est tout simplement parce que WPF est tout au sujet de graphiques vectoriels. Il essaie de se débarrasser de pixels et attire tout par le biais de zones remplies avec des limites définies par floating-point de coordonnées. Voir carte Graphique et Multimédia.

OriginalL'auteur zetar | 2012-10-06