WriteableBitmap.AddDirtyRect(Int32Rect) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee geeft u het gebied van de bitmap die is gewijzigd.
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)
Parameters
- dirtyRect
- Int32Rect
Een Int32Rect weergave van het gebied dat is gewijzigd. Dimensies bevinden zich in pixels.
- Kenmerken
Uitzonderingen
De bitmap is niet vergrendeld door een aanroep naar de Lock() of TryLock(Duration) methoden.
dirtyRect valt buiten de grenzen van de WriteableBitmap.
Voorbeelden
In het volgende codevoorbeeld ziet u hoe u het gebied van de backbuffer opgeeft dat is gewijzigd met behulp van de AddDirtyRect methode.
// 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();
}
}
Opmerkingen
Roep de AddDirtyRect methode aan om aan te geven welke wijzigingen uw code heeft aangebracht in de backbuffer.
Wanneer u deze methode meerdere keren aanroept, worden de gewijzigde gebieden samengevoegd in een voldoende, maar niet noodzakelijkerwijs minimale weergave. Voor efficiƫntie worden alleen de gebieden die als vuil zijn gemarkeerd, gegarandeerd naar de voorbuffer gekopieerd. Elk deel van de bitmap kan echter naar voren worden gekopieerd, dus u moet ervoor zorgen dat de volledige backbuffer altijd geldig is.
Roep de AddDirtyRect methode alleen aan tussen aanroepen naar de Lock en Unlock methoden, zoals beschreven in de opmerkingen van de WriteableBitmap klasse.