InkOverlay.Draw (Método)
Actualización: noviembre 2007
Establece un rectángulo en el que se puede volver a dibujar la entrada manuscrita dentro del objeto InkOverlay.
Espacio de nombres: Microsoft.Ink
Ensamblado: Microsoft.Ink (en Microsoft.Ink.dll)
Sintaxis
'Declaración
Public Sub Draw ( _
rDrawRect As Rectangle _
)
'Uso
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
)
Parámetros
- rDrawRect
Tipo: System.Drawing.Rectangle
Rectángulo en el que se puede volver a dibujar la entrada manuscrita, en coordenadas en píxeles.
Comentarios
Cuando el parámetro rDrawRect es nullreferencia null (Nothing en Visual Basic) (Nothing en Microsoft Visual Basic .NET), se vuelve a dibujar toda la ventana.
Este método resulta adecuado para volver a dibujar los trazos que se han cambiado mediante programación. También puede llamar al método Control.Invalidate, pero esto anula todos los trazos del objeto InkOverlay que se han vuelto a dibujar. También puede llamar al método Renderer.Draw para este propósito, pero el objeto Renderer no puede dibujar ningún trazo cuando se selecciona porque no tiene conocimiento de qué trazos están en la colección Selection.
Nota
La propiedad AutoRedraw se debe establecer en true para que esto ocurra.
Ejemplos
Este ejemplo de C# es un método que cambia el color de todos los trazos de una colección Strokes que pertenece al objeto Ink asociado a un objeto InkOverlay, theInkOverlay. El cambio de la propiedad DrawingAttributes de un objeto Stroke no se ve automática ni inmediatamente. Puede llamar al método Invalidate o Refresh en el control asociado a theInkOverlay, pero esto hace que se vuelvan a dibujar todos los objetos Stroke en theInkOverlay. Para lograr un mejor rendimiento, utilice el método Draw en el cuadro de límite de la colección Strokes. Tenga en cuenta que esto conlleva la conversión del cuadro de límite de coordenadas espaciales de entrada manuscrita a coordenadas en píxeles.
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);
}
Este ejemplo de Visual Basic .NET es un método que cambia el color de todos los trazos de una colección Strokes que pertenece al objeto Ink asociado a un objeto InkOverlay, theInkOverlay. El cambio de la propiedad DrawingAttributes de un objeto Stroke no se ve automática ni inmediatamente. Puede llamar al método Invalidate o Refresh en el control asociado a theInkOverlay, pero esto hace que se vuelvan a dibujar todos los objetos Stroke de theInkOverlay. Para lograr un mejor rendimiento, utilice el método Draw en el cuadro de límite de la colección Strokes. Tenga en cuenta que esto conlleva la conversión del cuadro de límite de coordenadas espaciales de entrada manuscrita a coordenadas en píxeles.
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
Plataformas
Windows Vista
.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.
Información de versión
.NET Framework
Compatible con: 3.0