Поделиться через


InkCollectorCursorDownEventHandler - делегат

Обновлен: Ноябрь 2007

Represents the method that handles the CursorDown event of an InkCollector object.

Пространство имен:  Microsoft.Ink
Сборка:  Microsoft.Ink (в Microsoft.Ink.dll)

Синтаксис

'Декларация
Public Delegate Sub InkCollectorCursorDownEventHandler ( _
    sender As Object, _
    e As InkCollectorCursorDownEventArgs _
)
'Применение
Dim instance As New InkCollectorCursorDownEventHandler(AddressOf HandlerMethod)
public delegate void InkCollectorCursorDownEventHandler(
    Object sender,
    InkCollectorCursorDownEventArgs e
)
public delegate void InkCollectorCursorDownEventHandler(
    Object^ sender, 
    InkCollectorCursorDownEventArgs^ e
)
/** @delegate */
public delegate void InkCollectorCursorDownEventHandler(
    Object sender,
    InkCollectorCursorDownEventArgs e
)
JScript не поддерживает делегаты.

Параметры

Заметки

When you create an InkCollectorCursorDownEventHandler delegate, you identify the method that handles the event. To associate the event with your event handler, add an instance of the delegate to the event. The event handler is called whenever the event occurs, unless you remove the delegate. For performance reasons, the default event interest is off but is turned on automatically in managed code if you add an event handler.

This event may have an adverse effect on ink performance if too much code is executed in the event handlers.

To improve real-time ink performance, hide the mouse cursor while inking. To do so, hide the mouse cursor in the MouseDown event handler, and show the mouse cursor in the MouseUp event handler.

Примеры

This example demonstrates how you can subscribe to the CursorDown event, and the Stroke event to calculate the length of time it takes the user to create a stroke.

At the beginning of a stroke, the CursorDown event fires. The current time is placed into the ExtendedProperties collection of the Stroke object.

Private Sub mInkObject_CursorDown(ByVal sender As Object, ByVal e As InkCollectorCursorDownEventArgs)
    ' add extended property indicating the time the stroke started
    ' STROKE_START_GUID is class level string via GUID generator
    e.Stroke.ExtendedProperties.Add(New Guid(STROKE_START_GUID), DateTime.Now)
End Sub
private void mInkObject_CursorDown(object sender, InkCollectorCursorDownEventArgs e)
{
    // add extended property indicating the time the stroke started
    // STROKE_START_GUID is class level string via GUID generator
    e.Stroke.ExtendedProperties.Add(new Guid(STROKE_START_GUID), DateTime.Now);
}

When the stroke is complete, the Stroke event fires. The start time is retrieved from the ExtendedProperties collection of the Stroke object, and used to calculate the elapsed time.

Private Sub mInkObject_Stroke1(ByVal sender As Object, ByVal e As InkCollectorStrokeEventArgs)
    ' check to see if extended property for start time exists
    ' Attempting to access an extended property that hasn't been created throws an exception
    ' STROKE_START_GUID is class level string via GUID generator
    If (e.Stroke.ExtendedProperties.DoesPropertyExist(New Guid(STROKE_START_GUID))) Then

        Dim startTime As DateTime = DirectCast(e.Stroke.ExtendedProperties(New Guid(STROKE_START_GUID)).Data, DateTime)
        Dim endTime As DateTime = DateTime.Now
        Dim span As TimeSpan = New TimeSpan(endTime.Ticks - startTime.Ticks)

        ' add extended property indicating the time the stroke ended
        ' STROKE_END_GUID is class level string via GUID generator
        e.Stroke.ExtendedProperties.Add(New Guid(STROKE_END_GUID), endTime)

        ' display the number of seconds in creating this stroke
        Me.statusLabelStrokeTime.Text = span.TotalSeconds.ToString()
    End If
End Sub
private void mInkObject_Stroke1(object sender, InkCollectorStrokeEventArgs e)
{
    // check to see if extended property for start time exists
    // Attempting to access an extended property that hasn't been created throws an exception
    // STROKE_START_GUID is class level string via GUID generator
    if (e.Stroke.ExtendedProperties.DoesPropertyExist(new Guid(STROKE_START_GUID)))
    {
        DateTime startTime = (DateTime)e.Stroke.ExtendedProperties[new Guid(STROKE_START_GUID)].Data;
        DateTime endTime = DateTime.Now;
        TimeSpan span = new TimeSpan(endTime.Ticks - startTime.Ticks);

        // add extended property indicating the time the stroke ended
        // STROKE_END_GUID is class level string via GUID generator
        e.Stroke.ExtendedProperties.Add(new Guid(STROKE_END_GUID), endTime);

        // display the number of seconds in creating this stroke
        this.statusLabelStrokeTime.Text = span.TotalSeconds.ToString();
    }
}

Платформы

Windows Vista

Среды .NET Framework и .NET Compact Framework поддерживают не все версии каждой платформы. Поддерживаемые версии перечислены в разделе Требования к системе для .NET Framework.

Сведения о версии

.NET Framework

Поддерживается в версии: 3.0

См. также

Ссылки

Microsoft.Ink - пространство имен

InkCollector.CursorDown

InkCollector

InkCollectorCursorDownEventArgs