Ich möchte eine WPF Komponente erstellen, die das Abspielen eines Liedes steuert. Diese soll einen Knopf zum anfassen haben. In den Hintergrund soll eine visuelle Darstellung des Lieds gezeichnet werden.
Beispiel ohne vis. Darstellung:
Ich habe bereits die Komponente, die die vis. Darstellung des Liedes übernimmt. Dort habe ich die OnRender Methode überschrieben um die Daten anzuzeigen.
So ganz hab ich dein Problem noch nicht verstanden. Wenn du die Darstellung bereits hast dann leg den Button über die Darstellung drüber. Die Position des Buttons errechnet sich dann so:
//Gesamtlänge des Liedes [Länge des Lieds] = 225 Sekunden (3:45 Minuten)
//Breite des Controls das die Visuelle Darstellung übernimmt [ControllBreite] = 150 pixel
//aktuelle Position im Lied, in diesem Beispiel 112 Sekunden, //dh. die hälfte des Liedes wurde bereits abgespielt [aktuelle Position im Lied] = 112 Sekunden (du bist genau in der mitte des Liedes)
// ---- Berechnungen:----
//Pro verstrichene Sekunden musst du den Button um X pixel //auf dem Control von links nach rechts verschieben [Buttonposition pro Sekunden] = [ControllBreite]/ [Länge des Lieds] = 0,666 pixel
//Neue Position des Buttons [Position des Buttons] = [Buttonposition pro Sekunden] * [aktuelle Position im Lied]
so nun musst du dich noch auf die MouseDown, MouseMove und MouseUp Events regirstrieren um zu ermöglichen das man den Button verschieben kann. Natürlich nur innerhalb der X-Achse. Nach jeder Verschiebung spullst/springst du auf die entsprechende Position im Lied.