WriteableBitmap.AddDirtyRect(Int32Rect) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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
- Ö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.