WPF Custom Panel / Control Creation - "Der Donut"

8

Ich hoffe, ein benutzerdefiniertes Panel oder Steuerelement zu erstellen, das einen ganz bestimmten Elementtyp erstellt.

Grundsätzlich besteht die Absicht darin, ein Steuerelement zu haben, dem Sie eine Liste von Objekten geben können, und jedes dieser Objekte wird in eine Schaltfläche eingefügt. Der Haken ist, dass die Knöpfe wie ein Donut in einem Kreis angeordnet sein sollten. Ähnlich wie das Bild unten.

Aber jetzt stellen Sie sich vor, wenn Sie können, dass jeder dieser farbigen Abschnitte ein Knopf war. Sie würden auch alle Funktionen von Buttons haben, wie Mouseover und Events.

Die Hauptfrage lautet also: Welche Art von Techniken sollte ich untersuchen, um diese Art von Kontrolle zu erstellen? Gibt es eine Möglichkeit, eine Art "Krümmung" auf einer Schaltfläche zu transformieren?

Es sieht wirklich so aus, als würde ich hier zwei getrennte Dinge suchen, oder?

Ich meine, ich könnte jedes Element in der Liste in ein ItemsControl legen, das eine Schaltfläche als ItemTemplate hat. Alles, was ich brauche, sind zwei Dinge:

Das erste ist ein radiales Layout-Panel (ich habe einige davon gesehen).

Die zweite Möglichkeit besteht darin, dass jede Schaltfläche eine Art von Drehung und Krümmung aufweist.

Irgendwelche Ideen?

    
Anthony Compton 24.11.2010, 21:24
quelle

2 Antworten

4

Ich denke, Sie sehen sich drei verschiedene Schritte an:

  1. A Panel , die Kinder in einem Kreis austeilt. Wichtig ist, dass das Panel schreibgeschützte angefügte Abhängigkeitseigenschaften für seine untergeordneten Elemente aktualisieren muss, um ihnen mitzuteilen, wo sie angelegt wurden (Startposition in Grad und Endposition in Grad)
  2. Eine Button Vorlage, die in einer Bogenform entsprechend einiger Start- und Endpositionen rendert.
  3. Kombinieren Sie die beiden und binden Sie die Start- und Endpositionen für die Schaltflächen an die vom Panel angezeigten angefügten Werte.
Kent Boogaart 25.11.2010, 08:24
quelle
0

Ein anderer Ansatz (wenngleich ähnlich), um das gleiche Problem zu lösen, ist das Verwenden eines Panels, um jeden "Knopf" übereinander zu stapeln. Jeder Knopf ist basierend auf Berechnungen von zwei imaginären Kreisen, dem inneren und äußeren, geformt. Sie werden dann um eine x, y-Koordinate zu ihren korrekten Positionen versetzt, so dass ihre ursprünglichen Positionen zum Mittelpunkt des Donuts werden. Der schwierigste Teil ist offensichtlich alle diese Trigonometrie-Berechnungen zu erarbeiten, aber einmal getan ist es einfach zu drehen, fächern, erweitern usw. die Form, wie Sie möchten.

    
Rob 08.03.2011 04:19
quelle

Tags und Links