WAT JE KRIJGT
Een dockingwerkruimte in je Avalonia-app
Eén besturingselement in een venster. Je voegt panelen toe in code, geeft elk paneel je eigen besturingselement, en de gebruiker rangschikt ze.
Gereedschapspanelen en documenten
Elk TsgcDockPanel heeft een Name, een Caption, een pictogram, een Kind (dpkTool of dpkDocument) en het Control dat het toont. Gereedschapspanelen starten aan de zijde van hun Placement, DockSize breed, en panelen met dezelfde GroupName worden samen in tabbladen gezet.
Je eigen besturingselementen
De inhoud van een paneel is een gewoon Avalonia-Control. Het wordt een logisch en visueel kind van de docksite, zodat de DataContext vanuit je venster doorstroomt, en het wordt gerangschikt en getoond zolang zijn paneel het actieve is. Een verborgen paneel houdt zijn besturingselement als verborgen kind.
Dropgidsen met voorvertoning
Terwijl een titel of tabblad wordt gesleept, splitst een kompas op de groep onder de aanwijzer die groep aan een zijde of zet het paneel erin als tabblad, de randgidsen zetten het vast aan een rand van de hele site, en een voorvertoningsrechthoek in de accentkleur toont de ruimte die het inneemt. Esc annuleert het slepen.
Splitters
Groepen zitten in geneste splitsingen, naast elkaar of gestapeld, met splitters ertussen. Slepen wijzigt de grootte van de buren live, en elke groep houdt minstens MinPanelSize. SplitterSize bepaalt de breedte van de splitters.
Uitschuifpanelen met automatisch verbergen
De pinknop stuurt een gereedschapspaneel naar de strook van zijn zijde. Als je AutoHideDelay milliseconden boven het tabblad blijft hangen, of erop klikt, schuift het paneel als uitschuifpaneel over de inhoud, en het schuift terug wanneer de gebruiker elders werkt. In code doet Model.SetAutoHide hetzelfde.
Zwevende vensters
Laat een paneel los buiten de gidsen, dubbelklik op de titel of kies Float in het menu, en het gaat naar een randloos Avalonia-venster dat eigendom is van je venster, buiten de taakbalk. Een zwevend venster heeft een eigen boom, zodat er meer panelen in vastgezet kunnen worden. Elk zwevend venster gebruikt de schaal van zijn eigen monitor.
Documentgroepen
Het documentgebied heeft tabbladstroken met vastgepinde en gewijzigde tabbladen, sluitknoppen, een knop voor een nieuw tabblad (DocumentShowNewButton, OnNewDocument) en een knop met de tabbladlijst. Een documenttabblad naar een zijde slepen splitst het in een nieuwe documentgroep, en een dubbelklik op een tabblad maximaliseert de groep.
Ctrl+F6 doorloopt de documenten, Alt+F7 de gereedschapspanelen, Shift+Esc verbergt het actieve gereedschapspaneel en Alt+Min opent het paneelmenu met Float, Dock, Auto Hide, Hide en Close. Ctrl+Tab, Ctrl+W en Ctrl+F4 worden ook als docktoetsen afgehandeld. Met TsgcAvaloniaCommandPalette toont de dockmanager ook één Window-opdracht per paneel.
Toegankelijkheid, RTL en HiDPI
Schermlezers zien de site via UI Automation als een paneel met de naam "Dock site", met panelen voor de groepen, tabbladitems voor de stroken en scheidingslijnen met een bereikwaarde voor de splitters. Met FlowDirection van rechts naar links wordt de hele site gespiegeld. De opmaak wordt getekend op de renderschaal van het venster.
Indeling als JSON
SaveLayout, SaveLayoutToFile en SaveLayoutToStream schrijven de indeling, de LoadLayout-methoden lezen die weer in en houden zwevende vensters binnen het werkgebied van de schermen. De JSON-tekst is identiek aan die van het Delphi-model. OnRestorePanel maakt het besturingselement van een paneel dat een opgeslagen indeling noemt en dat je sessie nog niet heeft geopend.
Thema's, Fluent inbegrepen
Theme schakelt de dockmanager tussen lichte, donkere, hoogcontrast- en aangepaste thema's, en AccentColor stelt het accent van de actieve titel in. Zet sgcUIApplication.ThemePreset op de Fluent-preset en de dockmanager tekent met de WinUI 3-kleuren, net als elk ander sgcUI-besturingselement.
Gelokaliseerde teksten
De opschriften van de dockopmaak (Close, Auto Hide, Maximize, Float, Dock, Hide, "No open documents" en de namen die schermlezers uitspreken) lopen via sgcUILang, en de vertaalpakketten van sgcUI dekken Spaans, Duits, Frans, Italiaans, Nederlands, Pools, Portugees, Turks, Japans, Koreaans en Chinees.