Dil

WriteableBitmap.AddDirtyRect(Int32Rect) Yöntem

Tanım

Bit eşleminin değişen alanını belirtir.

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)

Parametreler

dirtyRect
Int32Rect

Int32Rect Değişen alanı temsil eden. Boyutlar piksel cinsindendir.

Öznitelikler

Özel durumlar

Bit eşlem, veya Lock() yöntemlerine TryLock(Duration) yapılan bir çağrı tarafından kilitlenmedi.

dirtyRect , sınırlarının WriteableBitmapdışında kalır.

Örnekler

Aşağıdaki kod örneği, yöntemi kullanılarak AddDirtyRect değiştirilen arka arabellek alanının nasıl belirtileceğini gösterir.

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

Açıklamalar

Kodunuzun arka arabellekte AddDirtyRect yaptığı değişiklikleri belirtmek için yöntemini çağırın.

Bu yöntemi birden çok kez çağırdığınızda, değiştirilen alanlar yeterli bir şekilde birikir, ancak minimum gösterimde olması gerekmez. Verimlilik için, yalnızca kirli olarak işaretlenmiş alanların ön arabelleğe ileriye doğru kopyalanması garanti edilir. Ancak bit eşleminin herhangi bir bölümü ileriye doğru kopyalanabilir, bu nedenle arka arabelleğinden tamamının her zaman geçerli olduğundan emin olmanız gerekir.

AddDirtyRect yöntemini yalnızca sınıf açıklamalarında açıklandığı gibi ve Lock yöntemlerine yapılan çağrılar Unlock arasında çağırınWriteableBitmap.

Şunlara uygulanır