none
Mauskoordinaten RRS feed

  • Frage

  • Hallo Community,

    ich stet grad auf dem Schlauch und benötige Eure Hilfe

    Ich erzeuge über Graphics ein Objekt auf dem ich zeichne. Soweit so gut.

    Über "TranslateTransform" und "ScaleTransform"

    verschiebe ich den KoordinatenUrsprung und skaliere. Das funktioniert soweit alles.

    Nur möchte ich jetzt, wenn ich auf einzelne Punkte in der Graphic mit der Maus klicke, dort ein Tool-Tip PopUp anzeigen.

    das mache ich mit Regions... funktioniert auch soweit (ToolTip kommt)

    NUR: die Koordinaten der Maus (x,y) stimmen nicht . Die ToolTip kommen irgendwo, aber nicht da wo sie sollen

    Ich bekomme es einfach nicht hin, das die Mauskoordinaten mit den Koordinaten der Zeichnung passen

    Hab irgendwas gelesen, das man die Koordinaten der Maus mit den Koordinaten des Graphic Objects über eine Transformation verrechnen muss.... ich blicks einfach nicht. Wer kann mich aufschlauen?

    ich hoffe ich habe mein Problem "verständlich" formuliert.

    Herzlichen Dank für Euren Input

    Grüße Joe

    Donnerstag, 21. August 2014 11:33

Antworten

  • Hallo,
    die wichtigste Frage ist, wie du die Mauskoordinaten ermittelst. Ich vermute mal, das du einfach die X- und Y-Werte von einem  Control bekommst. Auf diese Koordinaten musst du noch die Transformation drauf setzen. Dabei spielt die Reihenfolge eine wichtige Rolle.

    Wenn du also zuerst mit TranslateTransform verschiebst, dann musst du auch die Mauskoordinaten entsprechend verschieben:

    var pnt = e.GetPoint(myGrid);//Den Punkt vom Mausklick ermitteln
    pnt = new Point(pnt.X + translateX, pnt.Y + translateY);

    Wenn du dagegen zuvor noch skalierst, musst du diesen Faktor auch mit einsetzen:

    pnt = new Point(pnt.X + translateX * scaleX, pnt.Y + translateY * scaleY);

    Wenn du weitere Hilfe benötigst, solltest du alle relevanten Codestellen zeigen. Dazu zählen das Anwenden der Transformationen sowie das hinzufügen der ToolTips.

    > Soll die Größe der ToolTips anhand des Skalierungsfaktors geändert werden oder sollen diese immer gleich groß bleiben?


    Tom Lambert - C# MVP
    Bitte bewertet- und markiert Beiträge als Antwort. Danke.
    Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter
    Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets

    Donnerstag, 21. August 2014 14:36