InkOverlay.MouseDown-Ereignis
Tritt ein, wenn sich der Mauszeiger über dem InkOverlay-Objekt befindet und eine Maustaste gedrückt wird.
Namespace: Microsoft.Ink
Assembly: Microsoft.Ink (in Microsoft.Ink.dll)
Syntax
'Declaration
Public Event MouseDown As InkCollectorMouseDownEventHandler
'Usage
Dim instance As InkOverlay
Dim handler As InkCollectorMouseDownEventHandler
AddHandler instance.MouseDown, handler
public event InkCollectorMouseDownEventHandler MouseDown
public:
event InkCollectorMouseDownEventHandler^ MouseDown {
void add (InkCollectorMouseDownEventHandler^ value);
void remove (InkCollectorMouseDownEventHandler^ value);
}
/** @event */
public void add_MouseDown (InkCollectorMouseDownEventHandler value)
/** @event */
public void remove_MouseDown (InkCollectorMouseDownEventHandler value)
JScript unterstützt keine Ereignisse.
Hinweise
Der Ereignishandler empfängt ein Argument vom Typ CancelMouseEventArgs, das Daten zu diesem Ereignis enthält.
Beim Erstellen eines InkCollectorMouseDownEventHandler-Delegaten bestimmen Sie die Methode für die Ereignisbehandlung. Um dem Ereignishandler das Ereignis zuzuordnen, fügen Sie dem Ereignis eine Instanz des Delegaten hinzu. Der Ereignishandler wird bei jedem Eintreten des Ereignisses aufgerufen, sofern der Delegat nicht entfernt wird. Aus Leistungsgründen ist das Standardinteresse an einem Ereignis deaktiviert, es wird jedoch automatisch aktiviert, wenn Sie einen Ereignishandler hinzufügen.
Um die Echtzeitleistung von Freihandeingaben zu erhöhen, blenden Sie den Mauszeiger während der Freihandeingabe aus. Zu diesem Zweck blenden Sie den Mauszeiger im MouseDown-Ereignishandler aus und zeigen den Mauszeiger im MouseUp-Ereignishandler an.
Hinweis
Die X-Eigenschaft und die Y-Eigenschaft des CancelMouseEventArgs-Objekts sind in Pixel und nicht in HIMETRIC-Einheiten angegeben, die dem Freihandbereich zugeordnet sind. Die Ursache hierfür ist, dass dieses Ereignis das entsprechende Mausereignis einer nicht freihandfähigen Anwendung ersetzt und dieser Typ von Anwendung mit Pixeln dargestellt wird.
Hinweis
Einige Steuerelemente stützen sich auf eine bestimmte Beziehung zwischen den Ereignissen MouseDown, MouseMove und MouseUp. Das Abbrechen einiger dieser Ereignisse kann zu unerwarteten Ergebnissen führen.
Beispiele
In diesem Beispiel wird bei Auslösen des MouseDown-Ereignisses überprüft, ob EditingMode auf Select festgelegt ist. Wenn dies der Fall ist, wird die HitTestSelection-Methode aufgerufen, um zu bestimmen, welcher Teil der Auswahl (sofern zutreffend) gefunden wurde. Wenn der Treffer in einer der vier Kompasshauptrichtungen auftritt (wie von der SelectionHitResult-Enumeration angegeben), wird die Farbe der ausgewählten Strichobjekte geändert.
Private Sub mInkObject_MouseDown(ByVal sender As Object, ByVal e As CancelMouseEventArgs)
If InkOverlayEditingMode.Select = mInkObject.EditingMode Then
Select Case mInkObject.HitTestSelection(e.X, e.Y)
Case SelectionHitResult.North
ChangeSelectionColor(Color.Green)
Case SelectionHitResult.East
ChangeSelectionColor(Color.Red)
Case SelectionHitResult.South
ChangeSelectionColor(Color.Purple)
Case SelectionHitResult.West
ChangeSelectionColor(Color.Blue)
End Select
End If
End Sub
Private Sub ChangeSelectionColor(ByVal color As Color)
Dim DA As DrawingAttributes = mInkObject.DefaultDrawingAttributes.Clone()
DA.Color = color
mInkObject.Selection.ModifyDrawingAttributes(DA)
Using G As Graphics = CreateGraphics()
' Get the bounding box of the selection. The default is
' to include the width of the strokes in the calculation.
' The returned rectangle is measured in ink units.
Dim rInkUnits As Rectangle = mInkObject.Selection.GetBoundingBox()
' In selection mode, the selected strokes are drawn inflated
' GetBoundingBox() does not take this into account
' Rectangle rInkUnits is inflated to compensate
rInkUnits.Inflate(53, 53)
Dim topLeft As Point = rInkUnits.Location
Dim bottomRight As Point = rInkUnits.Location + rInkUnits.Size
' get a Renderer object to make the conversion
Dim R As Renderer = New Renderer()
' convert the points to pixels
R.InkSpaceToPixel(G, topLeft)
R.InkSpaceToPixel(G, bottomRight)
' create a rectangle that is in pixels
Dim rPixelUnits As Rectangle = _
New Rectangle(topLeft, New Size(bottomRight.X - topLeft.X, bottomRight.Y - topLeft.Y))
' Redraw the strokes
mInkObject.Draw(rPixelUnits)
End Using
End Sub
private void mInkObject_MouseDown(object sender, CancelMouseEventArgs e)
{
if (InkOverlayEditingMode.Select == mInkObject.EditingMode)
{
switch (mInkObject.HitTestSelection(e.X, e.Y))
{
case SelectionHitResult.North:
ChangeSelectionColor(Color.Green);
break;
case SelectionHitResult.East:
ChangeSelectionColor(Color.Red);
break;
case SelectionHitResult.South:
ChangeSelectionColor(Color.Purple);
break;
case SelectionHitResult.West:
ChangeSelectionColor(Color.Blue);
break;
}
}
}
private void ChangeSelectionColor(Color color)
{
DrawingAttributes DA = mInkObject.DefaultDrawingAttributes.Clone();
DA.Color = color;
mInkObject.Selection.ModifyDrawingAttributes(DA);
using (Graphics G = CreateGraphics())
{
// Get the bounding box of the selection. The default is
// to include the width of the strokes in the calculation.
// The returned rectangle is measured in ink units.
Rectangle rInkUnits = mInkObject.Selection.GetBoundingBox();
// In selection mode, the selected strokes are drawn inflated
// GetBoundingBox() does not take this into account
// Rectangle rInkUnits is inflated to compensate
rInkUnits.Inflate(53, 53);
Point topLeft = rInkUnits.Location;
Point bottomRight = rInkUnits.Location + rInkUnits.Size;
// get a Renderer object to make the conversion
Renderer R = new Renderer();
// convert the points to pixels
R.InkSpaceToPixel(G, ref topLeft);
R.InkSpaceToPixel(G, ref bottomRight);
// create a rectangle that is in pixels
Rectangle rPixelUnits =
new Rectangle(topLeft, new Size(bottomRight.X - topLeft.X, bottomRight.Y - topLeft.Y));
// Redraw the strokes
mInkObject.Draw(rPixelUnits);
}
}
Plattformen
Windows Vista
.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.
Versionsinformationen
.NET Framework
Unterstützt in: 3.0