Frage

Ich versuche, ein einfaches Eigenschaftsgitter zu schreiben, damit der Benutzer die Farben eines Diagramms ändern können.Standardmäßig hat ein Diagramm eine Eigenschaft "Palette", die der Aufzählungsart "ChartColorpalette" ist.Wenn das Objekt, das mein Eigenschaftsnetz zugrunde liegt, eine Eigenschaft "Palette" desselben Typs hat, erhalte ich die Dropdown-Liste möglicher Werte.Was ich aber nicht bekomme, ist die kleinen Stripey-Bilder links von den Wertnamen.

Jetzt kann ich einen Uitypeeditor-Ableitungsklasse schreiben und den "PaintValue" haben, zeichnen Sie kleine Ressourcen-Bitmaps, die ich vom Bildschirm mit "Farbe" oder SomeNuch aus dem Bildschirm gesteckt habe, aber das erscheint ziemlich langweilig.

weiß jemand, ob es bereits einen Typ-Editor für die Aufzählung "ChartColorpalette" gibt, die ich verwenden kann, um die kleinen Bitmaps zu erhalten?

War es hilfreich?

Lösung

Wie es passiert, ist das Schreiben des UityPeeditors nicht so knifflig, und auch nicht so viel Code. Erstens habe ich einen Typ-Editor erstellt, der so aussah, dass er so aussah:

generasacodicetagpre.

Ich habe dies auf die übliche Weise an meine Kontrolleigenschaft angehängt:

generasacodicetagpre.

Dann habe ich für jedes der kleinen Palettenbilder eine kleine PNG-Ressource hinzugefügt. Ich hatte eine abgeleitete Kontrolle "Mychart", die von "Diagramm" geerbt wurde, und ich fügte die Bilder auf das als Ressourcen hinzu (stellt sicher, dass die Eigenschaft "Persistenz" auf "eingebettet in .resx" eingebettet wird, um die PNG-Dateien zu speichern, um die PNG-Dateien zu speichern. . Die Namen der PNG-Dateien übereinstimmen mit den Namen in der Diagrammkolorpalette-Aufzählung überein.

Das einzige Problem war, wo die kleinen 20 x 14-Bilder von abgerufen wurden. Ich habe sie ursprünglich gerade mit paint.exe gesenkt, aber mochte das nicht, also habe ich einen Code geschrieben, um sie für mich zu generieren. Das war ziemlich einfach, wenn ich die Farbwerte gefunden hatte, die von der Diagrammsteuerung verwendet wurden. Eine Subtilität ist, dass in einer Palette mehr als 12 Farben in einer Palette vorhanden sind, die kleine Bitmap jede andere Farbe. Dieser Code sah so aus:

generasacodicetagpre.

hoffe, das ist für jemanden nützlich ...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top