Hallo liebe mycsharp Benutzer/innen.
Ich habe soetwas ähnliches wie eine Minimap (wie man sie aus diversen Spielen kennt) angefangen zu entwickeln (für ein privates projekt).
Nun ist die version schon recht Anschaulich jedoch dezent verbuggt. Da mir nicht alle Bugs bekannt sind, möchte ich euch um eure Mithilfe bitten und auch gerne Anregungen entgegennehmen.
Das ganze ist so konzipiert das es ein Usercontrol ist der lediglich direkt aus der Toolbar in ein beliebiges Control (welches als container für andere controls fungieren darf) gezogen werden kann und sofort alle relevanten Funktionalitäten bereitstellt.
Gemeint ist damit:
Schiebt man diesen in ein z.B. panel dann kann man noch diverse Eigenschaften festlegen:
ClientareaOnMinimap ->hier wird festgelegt wie der momentan sichtbare bereich markiert werden soll
a: Brightness -> der sichtbare bereich wird mit weiß (alpha 150) gezeichnet
b: Rectangel -> ein schwarzes rechteck zeichnet den sichtbaren bereich
c: None -> der sichtbare bereich wird nicht gezeichnet (wenn der panel keinen virtuellen bereich hat)
CollapsedSize -> prinzipiell unterstützd die minimap 2 modi. Zugeklappt und aufgeklappt. wenn man jetzt draufklickt weil man navigieren möchte dann vergrößert sie sich (einfach mal im angehängtem demo ausprobieren)
CornerPosition -> legt das eck fest in dem sich es anheftet (unbound bedeutet es heftet sich nirgends an)
ElementsMode -> die art und weise wie die controls vom Parent angezeigt werden sollen
a: Image -> von allen controls werden eine art "thumbnailimages" genommen
b: BackColor -> es wird nur ein rechteck gezeichnet mit der hintergrundfarbe des jeweiligen controls
c: ColorFromName -> es wird der name des controls genommen und versucht es in eine farbe zu wandeln um damit ein rechteck zu zeichnen
d: noElements -> es werden keine controls gezeichnet
ExtendetSize -> wenn extensible auf true dann wird beim draufklicken die minimap vergrößert um besser navigieren zu können und diese option legt fest auf wieviel das control vergrößert wird
Extensible -> siehe punkt 5
Mapmode -> dient zur berechnung des virtuellen bereiches
a: FullDynamic -> wenn ein virtueller bereich existiert dann wird berechnet wo das letzte control sich befindet und so die größe des minimapbereiches festgelegt (das ist noch ziemlich verbuggt)
b: GrowOnly -> wenn ein virtueller bereich existiert dann wird der minimale virtuelle bereich als ausgangsbasis genommen der jedoch vergrößert werden kann
Margin -> dient zur abstandshaltung von der minimap zu dem rand des jeweiligen parents. (um das problem mit den scrollbalken in den griff zu bekommen)
Size -> sollte zur designzeit immer collapsedSize entsprechen aber zur laufzeit zeigt es immer die derzeitige größe an (also wenn expandiert dann zeigts die größe vom expandiertem an)
bekannte bugs:
dankbar bin ich für:
Abschließende bemerkung:
dieses control liegt bei der demo in form einer dll bereit. wer es verwenden möchte der soll dies bitte tun (und mir eine pm schreiben damit ich weiß ob es überhaupt jemand nutzt).
probiert die exe bitte aus die im anhang ist
edit: hier noch ein bild der beispielanwendung die im anhang ist: