WriteableBitmap.AddDirtyRect(Int32Rect) Methode

Definitie

Hiermee geeft u het gebied van de bitmap die is gewijzigd.

public:
 void AddDirtyRect(System::Windows::Int32Rect dirtyRect);
[System.Security.SecurityCritical]
public void AddDirtyRect(System.Windows.Int32Rect dirtyRect);
public void AddDirtyRect(System.Windows.Int32Rect dirtyRect);
[<System.Security.SecurityCritical>]
member this.AddDirtyRect : System.Windows.Int32Rect -> unit
member this.AddDirtyRect : System.Windows.Int32Rect -> unit
Public Sub AddDirtyRect (dirtyRect As Int32Rect)

Parameters

dirtyRect
Int32Rect

Een Int32Rect weergave van het gebied dat is gewijzigd. Dimensies bevinden zich in pixels.

Kenmerken

Uitzonderingen

De bitmap is niet vergrendeld door een aanroep naar de Lock() of TryLock(Duration) methoden.

dirtyRect valt buiten de grenzen van de WriteableBitmap.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u het gebied van de backbuffer opgeeft dat is gewijzigd met behulp van de AddDirtyRect methode.

    // The DrawPixel method updates the WriteableBitmap by using
    // unsafe code to write a pixel into the back buffer.
    static void DrawPixel(MouseEventArgs e)
    {
        int column = (int)e.GetPosition(i).X;
        int row = (int)e.GetPosition(i).Y;

        try{
            // Reserve the back buffer for updates.
            writeableBitmap.Lock();

            unsafe
            {
                // Get a pointer to the back buffer.
                IntPtr pBackBuffer = writeableBitmap.BackBuffer;

                // Find the address of the pixel to draw.
                pBackBuffer += row * writeableBitmap.BackBufferStride;
                pBackBuffer += column * 4;

                // Compute the pixel's color.
                int color_data = 255 << 16; // R
                color_data |= 128 << 8;   // G
                color_data |= 255 << 0;   // B

                // Assign the color data to the pixel.
                *((int*) pBackBuffer) = color_data;
            }

            // Specify the area of the bitmap that changed.
            writeableBitmap.AddDirtyRect(new Int32Rect(column, row, 1, 1));
        }
        finally{
            // Release the back buffer and make it available for display.
            writeableBitmap.Unlock();
        }
    }

Opmerkingen

Roep de AddDirtyRect methode aan om aan te geven welke wijzigingen uw code heeft aangebracht in de backbuffer.

Wanneer u deze methode meerdere keren aanroept, worden de gewijzigde gebieden samengevoegd in een voldoende, maar niet noodzakelijkerwijs minimale weergave. Voor efficiƫntie worden alleen de gebieden die als vuil zijn gemarkeerd, gegarandeerd naar de voorbuffer gekopieerd. Elk deel van de bitmap kan echter naar voren worden gekopieerd, dus u moet ervoor zorgen dat de volledige backbuffer altijd geldig is.

Roep de AddDirtyRect methode alleen aan tussen aanroepen naar de Lock en Unlock methoden, zoals beschreven in de opmerkingen van de WriteableBitmap klasse.

Van toepassing op