O QUE VOCÊ RECEBE
Um controle colocado em uma janela. Você adiciona os painéis em código, dá a cada um o seu próprio controle, e o usuário os organiza.
Painéis de ferramentas e documentos
Cada TsgcDockPanel tem um Name, um Caption, um ícone, um Kind (dpkTool ou dpkDocument) e o Control que exibe. Os painéis de ferramentas começam no lado do seu Placement, com largura DockSize, e os painéis com o mesmo GroupName formam abas juntos.
Os seus próprios controles
O conteúdo de um painel é um Control comum do Avalonia. Ele se torna filho lógico e visual da área de docking, de modo que o DataContext flui da sua janela, e é organizado e exibido enquanto o seu painel é o ativo. Um painel oculto mantém o seu controle como filho oculto.
Enquanto uma legenda ou uma aba é arrastada, uma bússola no grupo sob o ponteiro divide esse grupo em um lado ou coloca o painel em abas dentro dele, as guias de borda o acoplam em uma borda de toda a área, e um retângulo de pré-visualização na cor de destaque mostra o espaço que ele ocupará. Esc cancela o arraste.
Divisores
Os grupos ficam em divisões aninhadas, lado a lado ou empilhados, com divisores entre eles. Um arraste redimensiona os vizinhos em tempo real, e todo grupo mantém pelo menos MinPanelSize. SplitterSize define a largura dos divisores.
O botão de fixar envia um painel de ferramentas para a faixa do seu lado. Passar o ponteiro sobre a aba por AutoHideDelay milissegundos, ou clicar nela, desliza o painel como um painel suspenso sobre o conteúdo, e ele volta a deslizar quando o usuário trabalha em outro lugar. Em código, Model.SetAutoHide faz o mesmo.
Janelas flutuantes
Solte um painel longe das guias, dê um duplo clique na legenda ou escolha Float no menu, e ele passa para uma janela Avalonia sem borda pertencente à sua janela, fora da barra de tarefas. Uma janela flutuante tem uma árvore própria, de modo que mais painéis se acoplam nela. Cada janela flutuante usa a escala do seu próprio monitor.
Grupos de documentos
A área de documentos tem faixas de abas com abas fixadas e modificadas, botões de fechar, um botão de nova aba (DocumentShowNewButton, OnNewDocument) e um botão de lista de abas. Arrastar uma aba de documento para o braço de um lado a divide em um novo grupo de documentos, e um duplo clique em uma aba maximiza o seu grupo.
Ctrl+F6 alterna entre os documentos, Alt+F7 entre os painéis de ferramentas, Shift+Esc oculta o painel de ferramentas ativo e Alt+Minus abre o menu do painel com Float, Dock, Auto Hide, Hide e Close. Ctrl+Tab, Ctrl+W e Ctrl+F4 também são tratados como teclas de docking. Com o TsgcAvaloniaCommandPalette, o gerenciador de docking também lista um comando Window por painel.
Acessibilidade, RTL e HiDPI
Os leitores de tela veem a área pelo UI Automation como um painel chamado "Dock site", com painéis para os grupos, itens de aba para as faixas e separadores com valor de intervalo para os divisores. Com FlowDirection da direita para a esquerda, toda a área é espelhada. A interface é desenhada na escala de renderização da janela.
Layout como JSON
SaveLayout, SaveLayoutToFile e SaveLayoutToStream gravam o arranjo, os métodos LoadLayout o leem de volta e limitam as janelas flutuantes à área de trabalho das telas. O texto JSON é idêntico ao do modelo Delphi. OnRestorePanel cria o controle de um painel que um layout salvo cita e que a sua sessão ainda não abriu.
Temas, incluindo Fluent
Theme alterna o gerenciador de docking entre os temas claro, escuro, de alto contraste e personalizados, e AccentColor define o destaque da legenda ativa. Defina sgcUIApplication.ThemePreset com o preset Fluent e o gerenciador de docking passa a usar as cores do WinUI 3, como todos os outros controles do sgcUI.
Textos localizados
As legendas da interface de docking (Fechar, Ocultar automaticamente, Maximizar, Flutuar, Acoplar, Ocultar, "Nenhum documento aberto" e os nomes que os leitores de tela anunciam) passam pelo sgcUILang, e os pacotes de tradução do sgcUI cobrem espanhol, alemão, francês, italiano, holandês, polonês, português, turco, japonês, coreano e chinês.