Forum: PC-Programmierung Parametrischen EQ in Windows Forms oder WPF?


von Borsty B. (mantabernd)


Lesenswert?

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
von Dennis H. (c-logic) Benutzerseite


Lesenswert?

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
von Borsty B. (mantabernd)


Lesenswert?

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?

von Dennis H. (c-logic) Benutzerseite


Lesenswert?

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.

von Oliver R. (superberti)


Lesenswert?

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
Noch kein Account? Hier anmelden.