WriteableBitmap.AddDirtyRect(Int32Rect) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Specifica l'area della bitmap che ha subito modifiche.
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)
Parametri
- dirtyRect
- Int32Rect
Un oggetto di tipo Int32Rect che rappresenta l’area che ha subito modifiche. Le dimensioni sono espresse in pixel.
- Attributi
Eccezioni
La bitmap non è stata bloccata tramite una chiamata al metodo Lock() o TryLock(Duration).
dirtyRect
non rientra nei limiti dell’oggetto WriteableBitmap.
Esempio
Nell'esempio di codice seguente viene illustrato come specificare l'area del buffer nascosto modificato tramite il AddDirtyRect metodo .
// 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();
}
}
Commenti
Chiamare il AddDirtyRect metodo per indicare che il codice ha apportato al buffer nascosto.
Quando si chiama questo metodo più volte, le aree modificate vengono accumulate in una rappresentazione sufficiente, ma non necessariamente minima. Per un'efficienza, è garantito che solo le aree contrassegnate come dirty vengano copiate nel buffer anteriore. Tuttavia, qualsiasi parte della bitmap può essere copiata in avanti, quindi è necessario assicurarsi che l'intero buffer nascosto sia sempre valido.
Chiamare il AddDirtyRect metodo solo tra le chiamate ai Lock metodi e Unlock , come descritto nelle note della WriteableBitmap classe.