QUÉ OBTIENES
Un espacio de trabajo con docking dentro de tu aplicación Avalonia
Un único control colocado en una ventana. Añades los paneles en código, das a cada uno tu propio control, y el usuario los organiza.
Paneles de herramientas y documentos
Cada TsgcDockPanel tiene un Name, un Caption, un icono, un Kind (dpkTool o dpkDocument) y el Control que muestra. Los paneles de herramientas empiezan en el lado de su Placement, con un ancho de DockSize, y los paneles con el mismo GroupName se agrupan en pestañas.
Tus propios controles
El contenido de un panel es un Control de Avalonia normal. Pasa a ser hijo lógico y visual del sitio de acoplamiento, de modo que el DataContext fluye desde tu ventana, y se organiza y se muestra mientras su panel es el activo. Un panel oculto conserva su control como hijo oculto.
Guías de colocación con vista previa
Mientras se arrastra un título o una pestaña, una brújula sobre el grupo situado bajo el puntero divide ese grupo por un lado o añade el panel como pestaña, las guías de borde lo acoplan en un borde de todo el sitio, y un rectángulo de vista previa en el color de acento muestra el espacio que ocupará. Esc cancela el arrastre.
Divisores
Los grupos se sitúan en divisiones anidadas, una junto a otra o apiladas, con divisores entre ellas. Un arrastre cambia el tamaño de los vecinos en directo, y cada grupo conserva como mínimo MinPanelSize. SplitterSize fija el ancho de los divisores.
Paneles de ocultación automática
El botón de anclar envía un panel de herramientas a la franja de su lado. Al pasar el ratón sobre su pestaña durante AutoHideDelay milisegundos, o al hacer clic en ella, el panel se desliza como un panel flotante sobre el contenido, y vuelve a deslizarse cuando el usuario trabaja en otro sitio. En código, Model.SetAutoHide hace lo mismo.
Ventanas flotantes
Suelta un panel lejos de las guías, haz doble clic en su título o elige Float en su menú, y pasa a una ventana de Avalonia sin bordes que pertenece a tu ventana, fuera de la barra de tareas. Una ventana flotante contiene su propio árbol, de modo que se pueden acoplar más paneles en ella. Cada ventana flotante usa la escala de su propio monitor.
Grupos de documentos
El área de documentos tiene franjas de pestañas con pestañas ancladas y modificadas, botones de cierre, un botón de pestaña nueva (DocumentShowNewButton, OnNewDocument) y un botón con la lista de pestañas. Arrastrar una pestaña de documento hacia un lado la divide en un nuevo grupo de documentos, y un doble clic en una pestaña maximiza su grupo.
Teclas de docking y menús de panel
Ctrl+F6 recorre los documentos, Alt+F7 los paneles de herramientas, Mayús+Esc oculta el panel de herramientas activo y Alt+Menos abre el menú del panel con Float, Dock, Auto Hide, Hide y Close. Ctrl+Tab, Ctrl+W y Ctrl+F4 también se gestionan como teclas de docking. Con TsgcAvaloniaCommandPalette el gestor de acoplamiento también lista un comando Window por panel.
Accesibilidad, RTL y HiDPI
Los lectores de pantalla ven el sitio mediante UI Automation como un panel llamado "Dock site", con paneles para los grupos, elementos de pestaña para las franjas y separadores con un valor de rango para los divisores. Con FlowDirection de derecha a izquierda todo el sitio se refleja. El aspecto se dibuja a la escala de renderizado de la ventana.
Diseño como JSON
SaveLayout, SaveLayoutToFile y SaveLayoutToStream escriben la disposición, los métodos LoadLayout la leen de nuevo y ajustan las ventanas flotantes al área de trabajo de las pantallas. El texto JSON es idéntico al del modelo Delphi. OnRestorePanel crea el control de un panel que un diseño guardado nombra y que tu sesión todavía no ha abierto.
Temas, Fluent incluido
Theme cambia el gestor de acoplamiento entre temas claro, oscuro, de alto contraste y personalizados, y AccentColor fija el acento del título activo. Si pones sgcUIApplication.ThemePreset en el preset Fluent, el gestor de acoplamiento se pinta con los colores de WinUI 3, como cualquier otro control de sgcUI.
Textos localizados
Los textos del marco de docking (Close, Auto Hide, Maximize, Float, Dock, Hide, "No open documents" y los nombres que oyen los lectores de pantalla) pasan por sgcUILang, y los paquetes de traducción de sgcUI cubren español, alemán, francés, italiano, neerlandés, polaco, portugués, turco, japonés, coreano y chino.