WriteableBitmap.AddDirtyRect(Int32Rect) Метод

Определение

Указывает измененную область растрового изображения.

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)

Параметры

dirtyRect
Int32Rect

Объект Int32Rect, представляющий измененную область. Измерения в пикселях.

Атрибуты

Исключения

Растровое изображение не было заблокировано вызовом метода Lock() или TryLock(Duration).

Параметр dirtyRect выходит за пределы растрового изображения WriteableBitmap.

Примеры

В следующем примере кода показано, как указать область заднего буфера, которая была изменена AddDirtyRect с помощью метода .

    // 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();
        }
    }

Комментарии

Вызовите метод , AddDirtyRect чтобы указать изменения, внесенные кодом в задний буфер.

При многократном вызове этого метода измененные области накапливаются в достаточном, но не обязательно минимальном представлении. Для повышения эффективности в передний буфер гарантированно копируются только области, помеченные как "грязные". Однако любая часть растрового изображения может быть скопирована вперед, поэтому необходимо убедиться, что весь задний буфер всегда действителен.

AddDirtyRect Вызов метода только между вызовами Lock методов и Unlock , как описано в примечаниях к классуWriteableBitmap.

Применяется к