Renderer.Draw-Methode (Bitmap, Stroke, DrawingAttributes)
Zeichnet den Stroke mit den angegebenen DrawingAttributes in die angegebene Bitmap.
Namespace: Microsoft.Ink
Assembly: Microsoft.Ink (in Microsoft.Ink.dll)
Syntax
'Declaration
Public Sub Draw ( _
destinationBitmap As Bitmap, _
stroke As Stroke, _
da As DrawingAttributes _
)
'Usage
Dim instance As Renderer
Dim destinationBitmap As Bitmap
Dim stroke As Stroke
Dim da As DrawingAttributes
instance.Draw(destinationBitmap, stroke, _
da)
public void Draw(
Bitmap destinationBitmap,
Stroke stroke,
DrawingAttributes da
)
public:
void Draw(
Bitmap^ destinationBitmap,
Stroke^ stroke,
DrawingAttributes^ da
)
public void Draw(
Bitmap destinationBitmap,
Stroke stroke,
DrawingAttributes da
)
public function Draw(
destinationBitmap : Bitmap,
stroke : Stroke,
da : DrawingAttributes
)
Parameter
- destinationBitmap
Typ: System.Drawing.Bitmap
Angegebene Bitmap, in der gezeichnet werden soll.
- stroke
Typ: Microsoft.Ink.Stroke
Das zu zeichnende Stroke.
- da
Typ: Microsoft.Ink.DrawingAttributes
Die zu verwendenden DrawingAttributes.
Beispiele
In diesem Beispiel wird die gesamte Strokes-Auflistung aus einem Ink-Objekt, das einem InkOverlay-Objekt zugeordnet ist, in einem Bitmapbild gezeichnet, das aus einer Datei geladen wurde.
Beim Zeichnen der Stroke-Objekte im Bitmapbild wird außerdem ein geändertes DrawingAttributes-Objekt verwendet. Änderungen werden angewendet, die die Farbe des Strichs invertieren und dessen Breite verdoppeln. Das geänderte DrawingAttributes-Objekt wird anschließend über den da-Parameter an die Draw-Methode übergeben. Dies wirkt sich nicht auf die DrawingAttributes der ursprünglichen Striche aus.
Beim Aufrufen der Draw-Methode werden Bild und Striche nicht angezeigt. Stattdessen werden die Strichrenderdaten zur Vorbereitung der Anzeige mit den Bitmapbilddaten zusammengeführt. Das (nun mit Strichrenderdaten geänderte) Bitmapbild wird verfügbar gemacht, indem die DrawImage-Methode des Graphics-Objekts aufgerufen wird, das einem Panel-Objekt zugeordnet ist.
' get the Bitmap object loaded from a file
' scale the image to match the panel size
Dim bgImage As Bitmap = New Bitmap(New Bitmap(imageFileName), Me.panelForDraw.Size)
' Access to the Ink.Strokes property returns a copy of the Strokes object.
' This copy must be implicitly (via using statement) or explicitly
' disposed of in order to avoid a memory leak.
Using allStrokes As Strokes = mInkOverlay.Ink.Strokes
' get a Renderer object. We could have used
' mInkOverlay.Renderer, this is another way
Dim R As Renderer = New Renderer()
' traverse the stroke collection
For Each oneStroke As Stroke In allStrokes
Dim da As DrawingAttributes = oneStroke.DrawingAttributes.Clone()
' invert the stroke color
Dim cR As Byte = Not da.Color.R
Dim cG As Byte = Not da.Color.G
Dim cB As Byte = Not da.Color.B
da.Color = Color.FromArgb(da.Color.A, cR, cG, cB)
' double the stroke width
da.Width *= 2
' draw the stroke
R.Draw(bgImage, oneStroke, da)
Next
End Using
' now display the bitmap (with the strokes) on the panel
Using g As Graphics = Me.panelForDraw.CreateGraphics()
g.DrawImage(bgImage, 0, 0)
End Using
bgImage.Dispose()
// get the Bitmap object loaded from a file
// scale the image to match the panel size
Bitmap bgImage = new Bitmap(new Bitmap(imageFileName), this.panelForDraw.Size);
// Access to the Ink.Strokes property returns a copy of the Strokes object.
// This copy must be implicitly (via using statement) or explicitly
// disposed of in order to avoid a memory leak.
using (Strokes allStrokes = mInkOverlay.Ink.Strokes)
{
// get a Renderer object. We could have used
// mInkOverlay.Renderer, this is another way
Renderer R = new Renderer();
// traverse the stroke collection
foreach (Stroke oneStroke in allStrokes)
{
DrawingAttributes da = oneStroke.DrawingAttributes.Clone();
// invert the stroke color
byte cR = (byte)~(da.Color.R);
byte cG = (byte)~(da.Color.G);
byte cB = (byte)~(da.Color.B);
da.Color = Color.FromArgb(da.Color.A, cR, cG, cB);
// double the stroke width
da.Width *= 2;
// draw the stroke
R.Draw(bgImage, oneStroke, da);
}
}
// now display the bitmap (with the strokes) on the panel
using (Graphics g = this.panelForDraw.CreateGraphics())
{
g.DrawImage(bgImage, 0, 0);
}
bgImage.Dispose();
Plattformen
Windows Vista
.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.
Versionsinformationen
.NET Framework
Unterstützt in: 3.0