InkCollector.Cursors Property
InkCollector.Cursors Property |
Gets the Cursors collection that is available for use in the inking region.
Definition
Visual Basic .NET Public ReadOnly Property Cursors As Cursors C# public Cursors Cursors { get; } Managed C++ public: __property Cursors* get_Cursors();
Property Value
Microsoft.Ink.Cursors. The Cursors collection that is available for use in the inking region.
This property is read-only. This property has no default value.
Exceptions
Remarks
Each cursor corresponds to the tip of a pen or other ink input device.
The cursors in this collection are local to an InkCollector object.
Any new cursors that the InkCollector object encounters are added to the returned Cursors collection, although the cursors are not necessarily returned in the order in which the InkCollector object encounters them.
When you enable a mouse as an input device on the InkCollector object (when the useMouseForInput parameter of the SetAllTabletsMode method is true), the mouse is added to the Cursors collection after the InkCollector encounters any other cursor, such as a pen. This is because the pen also acts like a mouse.
Note: The CursorInRange event is received for the mouse cursor after any other cursor, such as when a pen draws a stroke (which fires the Stroke event).
The Cursors collection is cleared (count set to
0
, containing no objects) when:
- The tablet mode is changed (for example, from SetSingleTabletIntegratedMode to SetAllTabletsMode).
- The SetSingleTabletIntegratedMode method is called.
Examples
[C#]
This C# example returns a report on the attributes of all of the cursors seen by the InkCollector object passed in as a parameter.
using Microsoft.Ink; //. . . public string CursorReport(InkCollector theInkCollector) { string theReport = "The InkCollector has encountered the following cursors so far:" + Environment.NewLine; // Get the Cursors collection from the InkCollector Microsoft.Ink.Cursors theCursors = theInkCollector.Cursors; // Prevent changes to the collection while we iterate over it. lock( theCursors.SyncRoot ) { theReport += "Count of cursors: " + theCursors.Count + Environment.NewLine + Environment.NewLine ; foreach (Microsoft.Ink.Cursor cursor in theCursors) { theReport += "Cursor Name: " + cursor.Name + Environment.NewLine; theReport += "Cursor ToString: " + cursor.ToString() + Environment.NewLine; theReport += "Tablet Name: " + cursor.Tablet.Name + Environment.NewLine; theReport += "Cursor Id: " + cursor.Id.ToString() + Environment.NewLine; theReport += "Cursor is inverted: " + cursor.Inverted.ToString() + Environment.NewLine; theReport += "Cursor Buttons:" + Environment.NewLine; foreach (CursorButton button in cursor.Buttons) { CursorButtonState theState = button.State; theReport += " Button Name: " + button.Name + Environment.NewLine; theReport += " State: " + button.State.ToString() + Environment.NewLine; theReport += " Id: " + button.Id.ToString() + Environment.NewLine + Environment.NewLine; } } } return theReport; }
[VB.NET]
This Microsoft® Visual Basic® .NET example returns a report on the attributes of all of the cursors seen by the InkCollector object passed in as a parameter.
Imports Microsoft.Ink '. . . Public Function CursorReport(ByVal theInkCollector As InkCollector) _ As String Dim theReport As String = "The InkCollector has encountered " & _ "the following cursors so far:" & vbCrLf ' Get the Cursors collection from the InkCollector Dim theCursors As Cursors = theInkCollector.Cursors ' Prevent changes to the collection while we iterate over it. SyncLock theCursors.SyncRoot theReport &= "Count of cursors: " & theCursors.Count & vbCrLf Dim theCursor As Cursor For Each theCursor In theCursors theReport &= "Cursor Name: " & theCursor.Name & vbCrLf theReport &= "Cursor ToString: " & theCursor.ToString() & _ vbCrLf theReport &= "Tablet Name: " & theCursor.Tablet.Name & vbCrLf theReport &= "Cursor Id: " & theCursor.Id.ToString() & vbCrLf theReport &= "Cursor is inverted: " & _ theCursor.Inverted.ToString() & vbCrLf theReport &= "Cursor Buttons:" & vbCrLf Dim theButton As CursorButton For Each theButton In theCursor.Buttons Dim theState As CursorButtonState = theButton.State theReport &= " Button Name: " & theButton.Name & vbCrLf theReport &= " State: " & _ theButton.State.ToString() & vbCrLf theReport &= " Id: " & theButton.Id.ToString() & _ vbCrLf & vbCrLf Next Next End SyncLock Return theReport End Function
See Also