Gesture.HotPoint Property
Gesture.HotPoint Property |
Gets the hot point of the gesture, in ink space coordinates.
Definition
Visual Basic .NET Public ReadOnly Property HotPoint As Point C# public Point HotPoint { get; } Managed C++ public: __property Point* get_HotPoint();
Property Value
System.Drawing.Point. The hot point of the gesture, in ink space coordinates.
This property is read-only. This property has no default value.
Remarks
The hot point is the one distinguishing point of a gesture. It is usually the point of the angle in a gesture or the point at which the gesture is intended to occur in relation to the content around it. If thee is no discernable hot point for a known gesture, the starting point of the gesture is the hot point.
For example, the hot point of the Check gesture is the point of the angle, and the hot point of the Curlicue gesture is the start of the stroke that is the gesture.
For more information about how a hot point is used, see Making Windows Work with a Pen.
Examples
[C#]
This C# example reports gesture information in a status bar, theGestureStatusBar, and draws a small circle around the hot point location, theHotPoint.
using System; using System.Drawing; using System.Windows.Forms; using Microsoft.Ink; public class CSGestureForm : System.Windows.Forms.Form { private System.Windows.Forms.StatusBar theGestureStatusBar; private InkCollector theInkCollector; private Point theHotPoint; public CSGestureForm() { // Initialize the form with a status bar at the bottom. theGestureStatusBar = new System.Windows.Forms.StatusBar(); SuspendLayout(); theGestureStatusBar.Location = new System.Drawing.Point(0, 244); theGestureStatusBar.Size = new System.Drawing.Size(300, 22); theGestureStatusBar.Text = ""; ClientSize = new System.Drawing.Size(300, 266); Controls.AddRange(new System.Windows.Forms.Control[] {this. theGestureStatusBar }); Text = "Gesture Test Application"; Paint += new System.Windows.Forms.PaintEventHandler(this.CSGestureForm_Paint); this.BackColor = Color.LightGray; ResumeLayout(false); // Give the hot spot an initial value. theHotPoint = new Point(-1, -1); // Initialize the InkCollector object. theInkCollector = new InkCollector(Handle); theInkCollector.CollectionMode = CollectionMode.GestureOnly; theInkCollector.SetGestureStatus(ApplicationGesture.Check, true); theInkCollector.Gesture += new InkCollectorGestureEventHandler(Gesture_Event); theInkCollector.Enabled = true; } static void Main() { Application.Run(new CSGestureForm()); } private void Gesture_Event(object sender, InkCollectorGestureEventArgs e) { // Only get information on the first gesture returned. Gesture theGesture = e.Gestures[0]; // Save the hot point information for painting. theHotPoint = theGesture.HotPoint; // Write the gesture type and confidence on the status bar. theGestureStatusBar.Text = theGesture.Id +" "+ theGesture.Confidence; Refresh(); } private void CSGestureForm_Paint(object sender, System.Windows.Forms.PaintEventArgs e) { Graphics g = e.Graphics; // Transform hotspot from HIMETRIC to window coordinates. theInkControl.Renderer.InkSpaceToPixel(g, ref theHotPoint); // Draw a little circle around the hotspot. g.DrawEllipse(Pens.Orange, theHotPoint.X-4, theHotPoint.Y-4, 9, 9); g.Dispose(); } // Event handler for the form's closed event private void CSGestureForm_Closed(object sender, System.EventArgs e) { theInkCollector.Dispose(); theInkCollector = null; } }
[VB.NET]
This Microsoft® Visual Basic® .NET example reports gesture information in a status bar, theStatusBar, and draws a small circle around the hot point location, theHotPoint.
Imports System.Drawing Imports Microsoft.Ink Public Class Form1 Inherits System.Windows.Forms.Form #Region " Windows Form Designer generated code " 'This contains the default form code, plus a status bar, theStatusBar. #End Region Dim theInkCollector As InkCollector Dim theHotPoint As System.Drawing.Point Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load theHotPoint = New Point(-1, -1) theInkCollector = New InkCollector(Handle) theInkCollector.CollectionMode = CollectionMode.GestureOnly theInkCollector.SetGestureStatus(ApplicationGesture.Check, True) AddHandler theInkCollector.Gesture, AddressOf Gesture_Event theInkCollector.Enabled = True End Sub Private Sub Gesture_Event( _ ByVal sender As Object, _ ByVal e As InkCollectorGestureEventArgs) 'Only get information on the first gesture returned. Dim theGesture As Gesture = e.Gestures(0) 'Save the hot point information for painting. theHotPoint = theGesture.HotPoint 'Write the gesture type and confidence on the status bar. theStatusBar.Text = theGesture.Id.ToString() & _ " " & theGesture.Confidence.ToString() Refresh() End Sub Private Sub Form1_Paint( _ ByVal sender As Object, _ ByVal e As System.Windows.Forms.PaintEventArgs) _ Handles MyBase.Paint Dim g As Graphics = e.Graphics 'Convert from ink to window coordinates and draw a circle. theInkCollector.Renderer.InkSpaceToPixel(g, theHotPoint) g.DrawEllipse(Pens.Red, theHotPoint.X - 4, theHotPoint.Y - 4, 9, 9) End Sub 'Event handler for the form's closed event Private Sub Form1_Closed(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Closed theInkCollector.Dispose() Set theInkCollector = Nothing End Sub End Class
See Also