Trasforma la barra di navigazione in una floatbar e uniforma i bottoni Avanti/Indietro
La barra Avanti/Indietro era un footer bianco a tutta larghezza con una linea di separazione da 1px. Ora è una card bianca staccata su tutti e 4 i lati dalla finestra (UiStile.FloatBar, angoli arrotondati, bordo sottile), riusata anche in PrtMancantiForm per Chiudi/Apri cartella raw. Avanti e Indietro avevano dimensioni diverse (testi di lunghezza diversa, più il grassetto di Primario che richiede più altezza del testo normale) ed erano visivamente disomogenei (bordo sottile quasi invisibile su sfondo bianco per Indietro contro il blu pieno di Avanti). Aggiunti UiStile.SecondarioPieno (variante piena, senza bordo, stessa costruzione di Primario ma grigio chiaro) e UiStile.LarghezzaUguale (stessa larghezza e altezza tra due bottoni, chiamata PRIMA di arrotondare gli angoli: arrotondare e poi ridimensionare lasciava un bordo residuo della Region vecchia). Doc aggiornati nello stesso commit: docs/architettura.md. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
be4989fc8d
commit
ff4e7a71e0
4 files changed
+101
-38
No files matched your search
+14
-25
@@ -95,38 +95,27 @@ public partial class Form1 : Form
|
||||
_lblFase.Font = new Font(Font, FontStyle.Bold);
|
||||
headerPanel.Controls.Add(_lblFase);
|
||||
|
||||
// Barra di navigazione come footer separato dal contenuto: linea sottile in cima e
|
||||
// sfondo bianco, invece dei bottoni appoggiati direttamente sul contenuto/sulla barra
|
||||
// di stato senza alcuna divisione visiva.
|
||||
// Padding destro = 16, lo stesso usato dai pannelli di ogni fase (Padding(16)): prima
|
||||
// era 12, quindi "Avanti" sporgeva 4px oltre il margine destro del contenuto sopra.
|
||||
var navContainer = new Panel { Dock = DockStyle.Bottom, Height = 64, BackColor = Color.White };
|
||||
var navSeparatore = new Panel
|
||||
{
|
||||
Dock = DockStyle.Top,
|
||||
Height = 1,
|
||||
BackColor = Color.FromArgb(220, 220, 220),
|
||||
};
|
||||
var navPanel = new FlowLayoutPanel
|
||||
{
|
||||
Dock = DockStyle.Fill,
|
||||
FlowDirection = FlowDirection.RightToLeft,
|
||||
Padding = new Padding(16, 14, 16, 14),
|
||||
};
|
||||
// Floatbar di navigazione: card staccata dai bordi della finestra invece di un footer
|
||||
// a tutta larghezza appoggiato direttamente sul contenuto/sulla barra di stato.
|
||||
var (navContainer, navPanel) = UiStile.FloatBar();
|
||||
_btnAvanti.Text = "Avanti ›";
|
||||
UiStile.Primario(_btnAvanti);
|
||||
UiStile.Arrotonda(_btnAvanti);
|
||||
_btnAvanti.Click += (_, _) => VaiAllaFase(_faseAttuale + 1);
|
||||
navPanel.Controls.Add(_btnAvanti);
|
||||
|
||||
_btnIndietro.Text = "‹ Indietro";
|
||||
_btnIndietro.Margin = new Padding(8, 0, 0, 0);
|
||||
UiStile.Secondario(_btnIndietro);
|
||||
UiStile.Arrotonda(_btnIndietro);
|
||||
UiStile.SecondarioPieno(_btnIndietro);
|
||||
|
||||
// Dimensioni uguali decise PRIMA di arrotondare: se si arrotonda un bottone e solo dopo
|
||||
// lo si ridimensiona, la Region calcolata sulla dimensione vecchia lascia un bordo
|
||||
// "fantasma" finché non arriva un repaint completo della finestra.
|
||||
UiStile.LarghezzaUguale(_btnAvanti, _btnIndietro);
|
||||
UiStile.Arrotonda(_btnAvanti, 10);
|
||||
UiStile.Arrotonda(_btnIndietro, 10);
|
||||
|
||||
_btnAvanti.Click += (_, _) => VaiAllaFase(_faseAttuale + 1);
|
||||
navPanel.Controls.Add(_btnAvanti);
|
||||
_btnIndietro.Click += (_, _) => VaiAllaFase(_faseAttuale - 1);
|
||||
navPanel.Controls.Add(_btnIndietro);
|
||||
navContainer.Controls.Add(navPanel);
|
||||
navContainer.Controls.Add(navSeparatore);
|
||||
|
||||
var statusPanel = new Panel { Dock = DockStyle.Bottom, Height = 28, BackColor = SystemColors.ControlLight };
|
||||
_lblStatus.Dock = DockStyle.Fill;
|
||||
|
||||
Reference in new issue
Block a user