From 1914d9462bbcc2dbea3100ab2eb7d997f0caabc5 Mon Sep 17 00:00:00 2001 From: Davide Grilli Date: Mon, 15 Jun 2026 08:24:39 +0200 Subject: [PATCH] feat(ui): replace mobile tab strip with custom full-width nav bar Avalonia's TabStrip ignores HorizontalAlignment overrides when placed at Bottom, causing the items to cluster left. Replace it with a dedicated Grid (ColumnDefinitions="*,*,*,*,*") that guarantees 5 equal columns across the full width. The built-in TabStrip is hidden on mobile; buttons in the custom bar call SelectTabCommand to drive SelectedTabIndex on the TabControl. --- src/App/ViewModels/MainWindowViewModel.cs | 6 +++ src/App/Views/MainView.axaml | 63 +++++++++++++++++++++-- 2 files changed, 66 insertions(+), 3 deletions(-) diff --git a/src/App/ViewModels/MainWindowViewModel.cs b/src/App/ViewModels/MainWindowViewModel.cs index 16cbc00..6855240 100644 --- a/src/App/ViewModels/MainWindowViewModel.cs +++ b/src/App/ViewModels/MainWindowViewModel.cs @@ -117,6 +117,12 @@ public partial class MainWindowViewModel : ViewModelBase [ObservableProperty] private string statusMessage = ""; + [ObservableProperty] + private int selectedTabIndex; + + [RelayCommand] + private void SelectTab(string index) => SelectedTabIndex = int.Parse(index); + // ---- collections per la dashboard ---- public ObservableCollection History { get; } = []; diff --git a/src/App/Views/MainView.axaml b/src/App/Views/MainView.axaml index 680381a..b53f1f9 100644 --- a/src/App/Views/MainView.axaml +++ b/src/App/Views/MainView.axaml @@ -185,7 +185,7 @@ - + @@ -197,11 +197,14 @@ + SelectedIndex="{Binding SelectedTabIndex}" + TabStripPlacement="Top"> - +