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.
Değiştirilen bit eşlem 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 TryLock(Duration) yöntemlerine Lock() 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 AddDirtyRect arka arabellekte yaptığı değişiklikleri göstermek 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österim olması gerekmez. Verimlilik için yalnızca kirli olarak işaretlenen alanların ön tampona ileriye doğru kopyalanması garanti edilir. Bununla birlikte, bit eşleminin herhangi bir kısmı ileriye doğru kopyalanabilir, bu nedenle tüm geri arabelleğinin her zaman geçerli olduğundan emin olmanız gerekir.
AddDirtyRect sınıf açıklamalarında açıklandığı gibi yöntemini yalnızca ve Unlock yöntemlerine yapılan çağrılar Lock arasında çağırınWriteableBitmap.