InkOverlay.Draw-Methode
Legt ein Rechteck fest, in dem die Freihandeingaben innerhalb des InkOverlay-Objekts neu gezeichnet werden.
Namespace: Microsoft.Ink
Assembly: Microsoft.Ink (in Microsoft.Ink.dll)
Syntax
'Declaration
Public Sub Draw ( _
rDrawRect As Rectangle _
)
'Usage
Dim instance As InkOverlay
Dim rDrawRect As Rectangle
instance.Draw(rDrawRect)
public void Draw(
Rectangle rDrawRect
)
public:
void Draw(
Rectangle rDrawRect
)
public void Draw(
Rectangle rDrawRect
)
public function Draw(
rDrawRect : Rectangle
)
Parameter
- rDrawRect
Typ: System.Drawing.Rectangle
Das Rechteck, in dem die Freihandeingaben gezeichnet werden, in Pixelkoordinaten.
Hinweise
Wenn der rDrawRect-Parameter nullNULL-Verweis (Nothing in Visual Basic) (Nothing in Microsoft Visual Basic .NET) ist, wird das gesamte Fenster neu gezeichnet.
Eine sinnvolle Verwendung dieser Methode besteht darin, Striche, die programmgesteuert geändert wurden, neu zu zeichnen. Sie können auch die Control.Invalidate-Methode aufrufen. Diese erzwingt jedoch das Neuzeichnen aller Striche des InkOverlay-Objekts. Zu diesem Zweck können Sie auch die Renderer.Draw-Methode verwenden, jedoch kann das Renderer-Objekt keine Striche als ausgewählt darstellen, weil es nicht weiß, welche Striche in der Selection-Auflistung enthalten sind.
Hinweis
Die AutoRedraw-Eigenschaft muss auf den Wert true festgelegt sein, damit das Zeichnen ausgeführt wird.
Beispiele
Dieses C#-Beispiel ist eine Methode, die die Farbe aller Striche in einer Strokes-Auflistung ändert, die dem Ink-Objekt gehört, das dem InkOverlay-Objekt theInkOverlay zugeordnet ist. Die Änderung der DrawingAttributes-Eigenschaft eines Stroke-Objekts ist nicht automatisch und sofort sichtbar. Sie können die Invalidate- oder die Refresh-Methode des dem theInkOverlay-Objekt zugeordneten Steuerelements aufrufen. Dies erzwingt jedoch das Neuzeichnen aller Striche des Stroke-Objekts theInkOverlay. Um eine bessere Leistung zu erreichen, verwenden Sie die Draw-Methode für das umgebende Rechteck der Strokes-Auflistung. Beachten Sie, dass dies die Konvertierung der Freihandbereichkoordinaten des umgebenden Rechtecks in Pixelkoordinaten mit sich bringt.
private void ChangeColor(Strokes theStrokes, Color newColor)
{
// Change the color of theStrokes
foreach (Stroke stroke in theStrokes)
{
stroke.DrawingAttributes.Color = newColor;
}
// Convert bounding box to pixel coordinates
Graphics g = CreateGraphics();
Rectangle strokesBounds = theStrokes.GetBoundingBox();
Point topLeft = strokesBounds.Location;
Point bottomRight = strokesBounds.Location + strokesBounds.Size;
theInkOverlay.Renderer.InkSpaceToPixel(g, ref topLeft);
theInkOverlay.Renderer.InkSpaceToPixel(g, ref bottomRight);
g.Dispose()
strokesBounds = new Rectangle(topLeft,
new Size(bottomRight.X - topLeft.X, bottomRight.Y - topLeft.Y));
// Redraw the strokes
theInkOverlay.Draw(strokesBounds);
}
Dieses Visual Basic .NET-Beispiel ist eine Methode, die die Farbe aller Striche in einer Strokes-Auflistung ändert, die dem Ink-Objekt gehört, das dem InkOverlay-Objekt theInkOverlay zugeordnet ist. Die Änderung der DrawingAttributes-Eigenschaft eines Stroke-Objekts ist nicht automatisch und sofort sichtbar. Sie können die Invalidate- oder die Refresh-Methode des dem theInkOverlay-Objekt zugeordneten Steuerelements aufrufen. Dies erzwingt jedoch das Neuzeichnen aller Striche des Stroke-Objekts theInkOverlay. Um eine bessere Leistung zu erreichen, verwenden Sie die Draw-Methode für das umgebende Rechteck der Strokes-Auflistung. Beachten Sie, dass dies die Konvertierung der Freihandbereichkoordinaten des umgebenden Rechtecks in Pixelkoordinaten mit sich bringt.
Private Sub ChangeColor(ByVal theStrokes As Strokes, ByVal newColor As Color)
' Change the color of theStrokes
Dim theStroke As Stroke
For Each theStroke In theStrokes
theStroke.DrawingAttributes.Color = newColor
Next
'Convert bounding box to pixel coordinates
Dim g As Graphics = CreateGraphics()
Dim strokesBounds As Rectangle = theStrokes.GetBoundingBox()
Dim topLeft As Point = strokesBounds.Location
Dim bottomRight As Point = New Point(strokesBounds.Right, strokesBounds.Bottom)
theInkOverlay.Renderer.InkSpaceToPixel(g, topLeft)
theInkOverlay.Renderer.InkSpaceToPixel(g, bottomRight)
g.Dispose()
strokesBounds = New Rectangle(topLeft, _
New Size(bottomRight.X - topLeft.X, bottomRight.Y - topLeft.Y))
'Redraw the strokes
theInkOverlay.Draw(strokesBounds)
End Sub
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