Ich versuche, Snap-to-Grid-Funktionalität zu erstellen, um zur Laufzeit verwendet werden, aber ich habe Probleme mit dem Fangen Teil. Ich habe erfolgreich ein gepunktetes Gitter auf einem Panel gezeichnet, aber wenn ich dem Panel ein Label-Steuerelement hinzufüge, wie schnappe ich die obere, linke Ecke des Labels an den nächsten Punkt?C# Erstellen Snap-To-Grid-Funktionalität
Dank
Vielen Dank! – Nathan
Denken Sie daran, dass der obige Code an der Gitternetzlinie zwar näher an Null liegt. Um nach links oder rechts zu springen, könnte man z. B. testen, ob pos.x% gridWidth mehr oder weniger als gridWidth/2 ist. Denken Sie daran, dass Sie für Koordinaten unter Null einen anderen Fall erhalten. Das sollte Ihnen alle Werkzeuge geben, die Sie brauchen. – Pedery
Wenn Sie gridWidth = 3. für einen PunktX = 5 haben, wird er auf 3 abgebildet, wenn er auf 6 abgebildet werden sollte. Siehe meine Antwort für eine ausführlichere Antwort. –