Ich möchte Sie alle um Rat fragen, wenn ich darf, zu einigen Designfragen. Ich mache eine Simulation eines britischen IECC-Eisenbahnstellwerks, nur so zum Spaß :D
Hier ist ein Beispiel aus dem wirklichen Leben: http://photos.signallingnotices.org.uk/photo.php?pc=77&p=IMG_7319.JPG Es handelt sich um 80er-Jahre-Technologie mit einfachen Grafiken.
Es handelt sich im Wesentlichen um ein Raster mit Zellen fester Größe, das eine benutzerdefinierte Bitmap-Schriftart verwendet.
Meine Version wird WPF verwenden, um viel mehr Flexibilität zu ermöglichen, aber immer noch das gleiche grundlegende Aussehen haben, außer dass das Original über eine Reihe von Monitoren paginiert ist, wird meine eine große scrollbare sein \zoomable Gitter. Ich möchte auch, dass das Raster sozusagen unendlich ist (zumindest im Editor, der Sim-Teil braucht es nicht) und Zeilen hinzugefügt werden. \columns wie erforderlich.
Bei meinen ersten Versuchen habe ich ein Raster und Rechtecke verwendet, um es mir anfangs leicht zu machen. Die Rechtecke werden wahrscheinlich auf eine niedrigere Ebene geändert werden, je nachdem, wie gut es funktioniert.
Ich stoße auf einige Probleme, die mich glauben lassen, dass ich etwas Besseres als Grid verwenden könnte.
Im "Editor"-Modus sollte ich in der Lage sein, ein neues Element hinzuzufügen, indem ich ein Kontextmenü verwende oder eine leere Zelle im Raster auswähle. Alle Lösungen, um herauszufinden, welche Zelle ausgewählt wurde, scheinen das Hinzufügen von transparenten Rechtecken zu jeder Zelle oder Hacks mit Treffertests und Schleifenbildung durch jede Zelle zur Prüfung auf Überschneidungen zu beinhalten.
Da ich es mit mehreren 1000 Zellen zu tun haben könnte, ist keine dieser Lösungen geeignet. scheint nicht wirklich geeignet zu sein, und ich frage mich, ob ein Standardgitter der beste Weg ist, um vorzugehen.
Ich würde auch gerne Gruppen von Elementen per Drag & Drop verschieben können...
Das Raster hat kein Konzept für eine "Zelle". Ich kann nur die Zeile \column wenn es in dieser Zeile einen Inhalt gibt \column.
Jede Zelle wird nur ein Bildmaterial enthalten.
Gibt es eine bessere Möglichkeit als ein Standardgitter? Wäre es besser, ein benutzerdefiniertes Panel zu erstellen, ein bestehendes zu erweitern, oder gibt es eine bestehende kostenlose 3rd-Party-Steuerung, die helfen könnte? Mein Gehirn scheint nicht in der Lage zu sein, sich etwas anderes als ein Grid vorzustellen :D