WriteableBitmap.AddDirtyRect(Int32Rect) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Gibt den Bereich der geänderten Bitmap an.
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)
Parameter
- Attribute
Ausnahmen
Die Bitmap wurde nicht durch einen Aufruf der Lock() Methoden gesperrt TryLock(Duration) .
dirtyRect liegt außerhalb der Grenzen der WriteableBitmap.
Beispiele
Das folgende Codebeispiel zeigt, wie Sie den Bereich des Hintergrundpuffers angeben, der mithilfe der AddDirtyRect Methode geändert wurde.
// 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();
}
}
Hinweise
Rufen Sie die AddDirtyRect Methode auf, um anzugeben, dass der Code Änderungen am Hintergrundpuffer vorgenommen hat.
Wenn Sie diese Methode mehrmals aufrufen, werden die geänderten Bereiche in einer ausreichenden, aber nicht unbedingt minimalen Darstellung gesammelt. Aus Effizienzgründen werden garantiert nur die Bereiche, die als schmutzig gekennzeichnet sind, in den Frontpuffer kopiert. Jeder Teil der Bitmap kann jedoch vorwärts kopiert werden, daher müssen Sie sicherstellen, dass der gesamte Hintergrundpuffer immer gültig ist.
Rufen Sie die AddDirtyRect Methode nur zwischen Aufrufen der Lock Methoden und Unlock Methoden auf, wie in den WriteableBitmap Klassennotizen beschrieben.