Guten Abend zusammen, ich stehe grad vor der Aufgabe eine parametrischen Equalizer in C# / WPF / Windows Forms zu programmieren. In etwa so etwas: https://cdn.tutsplus.com/audio/uploads/legacy/223_eq/9Cut3k.jpg Muss nicht so bunt werden, aber von der Idee her so wie auf dem Bild. Ich würde das jetzt mit einem Grid aufbauen und jeder Punkt bekommt eine eindeutige ID, sobald der "knopf" auf diesem Feld liegt wird im Hintergrund der Code für die dazugehörige ID ausgeführt. Dann bleibt aber noch das Thema mit der Linienzeichnung... Jemand so etwas schon mal gemacht oder eine Idee dazu? Danke, Gruß Bernhard
:
Bearbeitet durch User
Vielleicht ist der Denkanstoß "User drawn controls". Zeichnen kann man mit Graphics https://msdn.microsoft.com/en-us/library/b818z6z6%28v=vs.110%29.aspx inkl. Klick etc. Events.
:
Bearbeitet durch User
Hmm hmm also auch nach stundenlanger Recherche fällt es mir noch immer schwer ein Konzept für eine solche Oberfläche zu erstellen. Zeichnen ist sicher ein guter Hinweis, aber dann benötige ich ja mehrere Layer, oder? Also unterhalb dem Zeichenlayer muss dann das eigentliche Grid liegen. Der User verschiebt dann auf dem darüber liegenden Layer einen gezeichneten Punkt und ruft somit die Funktionen des darunterliegenden Layers auf? So stelle ich mir das zumindest vor. Leider finde ich zu diesem Ansatz nichts nützliches in Tutorials bzw. Anleitungen. Ist denn mein Denkansatz generell richtig?
Es gibt da ja allerhand Events die man benutzen kann. MouseDown MouseUp MouseHover / etc. Im UserControl kann man genau definieren was dann passieren soll, z.B. die Zeichenaktionen und Beeinflußung von Privaten Variablen im UserControl. Zum Konzept Layer: - Es ist möglich auf selbst erstellten "Bitmaps" zu Zeichnen und diese am Ende Zusammenzufügen für den Paint-Event Es ist halt ein Umfangreicheres UserForm welches du dir vorstellst.
Hi, also WPF wäre für Dein Projekt schon ganz gut geeignet. Nur funktioniert dies ganz anders, als Forms oder das Windows API. Ein Ansatz wäre z.B. einen WPF-Canvas zu nehmen, auf dem sich Deine zu zeichnenden Objekte befinden (Linien des Diagramms, die "Kullern" als Images, ein Spline für den Linienzug etc.) In WPF gilt es dann nicht die Objekte selbst neu zu zeichnen (das macht WPF schon selbst), sondern Du musst nur noch dafür sorgen, dass die einmalig angelegten Zeichenobjekte (das sind Childs des Canvas) ihre Eigenschaften verändern (Farbe, Position, Größe etc.). Dafür haben Deine Zeichenobjekte aber auch schon die komplette Eventverarbeitung für MouseOver/MouseClick etc. Du musst dann also z.B. die "Kullern" nur noch mit der Maus mit verschieben und die Koordinaten des Splines anpassen. Das ist eigentlich ganz komfortabel so. Natürlich bezahlt man für diesen Komfort mit mäßiger Performance auf älteren Rechnern. Hier kann man nur ein wenig rumtesten, ob das Ganze nicht zu langsam wird. Achja, die Lernkurve von WPF ist auch nicht ohne. Gruß, Oliver
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.