InkCollector.AutoRedraw Property
InkCollector.AutoRedraw Property |
Gets or sets a value that specifies whether the InkCollector object repaints the ink when the window is invalidated.
Definition
Visual Basic .NET Public Property AutoRedraw As Boolean C# public bool AutoRedraw { get; set; } Managed C++ public: __property bool* get_AutoRedraw();
public: __property void set_AutoRedraw(bool*);
Property Value
System.Boolean. Value that specifies whether the InkCollector object repaints the ink when the window is invalidated.
This property is read/write.
true
Default. The InkCollector object repaints the ink when the window is invalidated. false
The InkCollector object does not repaint the ink when the window is invalidated.
Exceptions
Remarks
The value for AutoRedraw specifies whether or not the Ink object currently associated with InkCollector object is automatically redrawn when the window associated with the InkCollector object receives a Paint event. For example, if set to true, when you minimize the window and then restore it, the ink is automatically redrawn. If set to false, when you minimize the window and then restore it, the ink disappears from view.
When AutoRedraw is false, the ink appears while inking unless the DynamicRendering property is false.
When your application is performing custom rendering or when your application is sensitive to painting issues, you can handle the repainting yourself and set the AutoRedraw property to false for the InkPicture control. In that case add a delegate to the underlying control's OnPaint event handler to draw the ink yourself or handle the underlying control's Invalidate event to modify the InvalidateEventArgs object.
Examples
[C#]
This C# example displays strokes in an InkCollector by setting the AutoRedraw property to false and then manually drawing the ink. An InkCollector, theInkCollector, is attached to a form, Form1. The Paint event handler checks the size of each stroke. If the stroke is smaller than 300 ink space units, the stroke appears gray.
private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e) { // Check if AutoRedraw is off if (!theInkCollector.AutoRedraw) { // Draw each stroke manually foreach (Stroke stroke in theInkCollector.Ink.Strokes) { // See if this stroke is small Rectangle strokeBounds = stroke.GetBoundingBox(); if (strokeBounds.Width < 300 && strokeBounds.Height < 300) { // Change the drawing color to gray DrawingAttributes selectedAttributes = stroke.DrawingAttributes.Clone(); selectedAttributes.Color = Color.Gray; // Draw with these special drawing attributes theInkCollector.Renderer.Draw(e.Graphics, stroke, selectedAttributes); } else { // Draw stroke with its own drawing attributes theInkCollector.Renderer.Draw(e.Graphics, stroke); } } } }
[VB.NET]
This Microsoft® Visual Basic® .NET example displays strokes in an InkCollector by setting the AutoRedraw property to false and then manually drawing the ink. An InkCollector, theInkCollector, is attached to a form, Form1. The Paint event handler checks the size of each stroke. If the stroke is smaller than 300 ink space units, the stroke appears gray.
Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint 'Check if AutoRedraw is off If theInkCollector.AutoRedraw = False Then 'Draw each stroke manually Dim theStroke As Stroke For Each theStroke In theInkCollector.Ink.Strokes 'See if this stroke is small Dim strokeBounds As Rectangle = theStroke.GetBoundingBox() If strokeBounds.Width < 300 And strokeBounds.Height < 300 Then 'Change the drawing color to gray Dim selectedAttributes As DrawingAttributes = theStroke.DrawingAttributes.Clone() selectedAttributes.Color = Color.Gray 'Draw with these special drawing attributes theInkCollector.Renderer.Draw(e.Graphics, theStroke, selectedAttributes) Else 'Draw stroke with its own drawing attributes theInkCollector.Renderer.Draw(e.Graphics, theStroke) End If Next End If End Sub
See Also