feat(ui): unified tab bar with icons on desktop and mobile
Replace the mobile-only custom bottom Grid nav bar with a single styled
TabStrip that works the same on both platforms: icon + label headers,
gray background, UniformGrid for equal-width columns.
Also adds the 📷 scan button in the Send address field (visible on mobile,
triggers ScanQrCommand wired in the previous commit).
This commit is contained in:
@@ -185,7 +185,7 @@
|
|||||||
</ScrollViewer>
|
</ScrollViewer>
|
||||||
|
|
||||||
<!-- ============ PANNELLO WALLET ============ -->
|
<!-- ============ PANNELLO WALLET ============ -->
|
||||||
<Grid Grid.Row="1" RowDefinitions="Auto,*,Auto" IsVisible="{Binding IsWalletOpen}" Margin="16">
|
<Grid Grid.Row="1" RowDefinitions="Auto,*" IsVisible="{Binding IsWalletOpen}" Margin="16">
|
||||||
|
|
||||||
<!-- Testata: saldo + rete. Connetti/sincronizza è automatico; chiudi
|
<!-- Testata: saldo + rete. Connetti/sincronizza è automatico; chiudi
|
||||||
wallet è in File. Lo stato connessione è nella barra in basso. -->
|
wallet è in File. Lo stato connessione è nella barra in basso. -->
|
||||||
@@ -201,10 +201,9 @@
|
|||||||
TabStripPlacement="Top">
|
TabStripPlacement="Top">
|
||||||
|
|
||||||
<TabControl.Styles>
|
<TabControl.Styles>
|
||||||
<!-- Su mobile nascondiamo il TabStrip integrato (barra custom sotto) -->
|
|
||||||
<Style Selector="TabStrip">
|
<Style Selector="TabStrip">
|
||||||
<Setter Property="IsVisible" Value="{Binding !IsMobile}"/>
|
|
||||||
<Setter Property="HorizontalAlignment" Value="Stretch"/>
|
<Setter Property="HorizontalAlignment" Value="Stretch"/>
|
||||||
|
<Setter Property="Background" Value="{DynamicResource SystemControlBackgroundChromeMediumBrush}"/>
|
||||||
<Setter Property="ItemsPanel">
|
<Setter Property="ItemsPanel">
|
||||||
<ItemsPanelTemplate>
|
<ItemsPanelTemplate>
|
||||||
<UniformGrid Rows="1"/>
|
<UniformGrid Rows="1"/>
|
||||||
@@ -215,7 +214,7 @@
|
|||||||
<Setter Property="HorizontalAlignment" Value="Stretch"/>
|
<Setter Property="HorizontalAlignment" Value="Stretch"/>
|
||||||
<Setter Property="HorizontalContentAlignment" Value="Center"/>
|
<Setter Property="HorizontalContentAlignment" Value="Center"/>
|
||||||
<Setter Property="VerticalContentAlignment" Value="Center"/>
|
<Setter Property="VerticalContentAlignment" Value="Center"/>
|
||||||
<Setter Property="Padding" Value="6,8"/>
|
<Setter Property="Padding" Value="4,8"/>
|
||||||
</Style>
|
</Style>
|
||||||
</TabControl.Styles>
|
</TabControl.Styles>
|
||||||
|
|
||||||
@@ -224,7 +223,7 @@
|
|||||||
<TabItem.Header>
|
<TabItem.Header>
|
||||||
<StackPanel Spacing="2" HorizontalAlignment="Center">
|
<StackPanel Spacing="2" HorizontalAlignment="Center">
|
||||||
<TextBlock Text="≡" FontSize="19" HorizontalAlignment="Center"
|
<TextBlock Text="≡" FontSize="19" HorizontalAlignment="Center"
|
||||||
IsVisible="{Binding IsMobile}"/>
|
/>
|
||||||
<TextBlock Text="{Binding Loc[tab.history]}" FontSize="12"
|
<TextBlock Text="{Binding Loc[tab.history]}" FontSize="12"
|
||||||
HorizontalAlignment="Center"/>
|
HorizontalAlignment="Center"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
@@ -273,7 +272,7 @@
|
|||||||
<TabItem.Header>
|
<TabItem.Header>
|
||||||
<StackPanel Spacing="2" HorizontalAlignment="Center">
|
<StackPanel Spacing="2" HorizontalAlignment="Center">
|
||||||
<TextBlock Text="↑" FontSize="19" HorizontalAlignment="Center"
|
<TextBlock Text="↑" FontSize="19" HorizontalAlignment="Center"
|
||||||
IsVisible="{Binding IsMobile}"/>
|
/>
|
||||||
<TextBlock Text="{Binding Loc[tab.send]}" FontSize="12"
|
<TextBlock Text="{Binding Loc[tab.send]}" FontSize="12"
|
||||||
HorizontalAlignment="Center"/>
|
HorizontalAlignment="Center"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
@@ -292,8 +291,16 @@
|
|||||||
</ComboBox.ItemTemplate>
|
</ComboBox.ItemTemplate>
|
||||||
</ComboBox>
|
</ComboBox>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
<TextBox PlaceholderText="{Binding Loc[send.to]}" Text="{Binding SendTo}"
|
<Grid ColumnDefinitions="*,Auto">
|
||||||
|
<TextBox Grid.Column="0"
|
||||||
|
PlaceholderText="{Binding Loc[send.to]}" Text="{Binding SendTo}"
|
||||||
FontFamily="monospace"/>
|
FontFamily="monospace"/>
|
||||||
|
<Button Grid.Column="1" Margin="6,0,0,0" Padding="10,0"
|
||||||
|
Content="📷" FontSize="20"
|
||||||
|
IsVisible="{Binding IsMobile}"
|
||||||
|
Command="{Binding ScanQrCommand}"
|
||||||
|
ToolTip.Tip="{Binding Loc[send.scan]}"/>
|
||||||
|
</Grid>
|
||||||
<!-- Desktop: riga amount + fee in 4 colonne -->
|
<!-- Desktop: riga amount + fee in 4 colonne -->
|
||||||
<Grid ColumnDefinitions="*,Auto,Auto,Auto" IsVisible="{Binding IsDesktop}">
|
<Grid ColumnDefinitions="*,Auto,Auto,Auto" IsVisible="{Binding IsDesktop}">
|
||||||
<TextBox Grid.Column="0" PlaceholderText="{Binding Loc[send.amount]}"
|
<TextBox Grid.Column="0" PlaceholderText="{Binding Loc[send.amount]}"
|
||||||
@@ -338,7 +345,7 @@
|
|||||||
<TabItem.Header>
|
<TabItem.Header>
|
||||||
<StackPanel Spacing="2" HorizontalAlignment="Center">
|
<StackPanel Spacing="2" HorizontalAlignment="Center">
|
||||||
<TextBlock Text="↓" FontSize="19" HorizontalAlignment="Center"
|
<TextBlock Text="↓" FontSize="19" HorizontalAlignment="Center"
|
||||||
IsVisible="{Binding IsMobile}"/>
|
/>
|
||||||
<TextBlock Text="{Binding Loc[tab.receive]}" FontSize="12"
|
<TextBlock Text="{Binding Loc[tab.receive]}" FontSize="12"
|
||||||
HorizontalAlignment="Center"/>
|
HorizontalAlignment="Center"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
@@ -380,7 +387,7 @@
|
|||||||
<TabItem.Header>
|
<TabItem.Header>
|
||||||
<StackPanel Spacing="2" HorizontalAlignment="Center">
|
<StackPanel Spacing="2" HorizontalAlignment="Center">
|
||||||
<TextBlock Text="⊙" FontSize="19" HorizontalAlignment="Center"
|
<TextBlock Text="⊙" FontSize="19" HorizontalAlignment="Center"
|
||||||
IsVisible="{Binding IsMobile}"/>
|
/>
|
||||||
<TextBlock Text="{Binding Loc[tab.addresses]}" FontSize="12"
|
<TextBlock Text="{Binding Loc[tab.addresses]}" FontSize="12"
|
||||||
HorizontalAlignment="Center"/>
|
HorizontalAlignment="Center"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
@@ -438,7 +445,7 @@
|
|||||||
<TabItem.Header>
|
<TabItem.Header>
|
||||||
<StackPanel Spacing="2" HorizontalAlignment="Center">
|
<StackPanel Spacing="2" HorizontalAlignment="Center">
|
||||||
<TextBlock Text="⊕" FontSize="19" HorizontalAlignment="Center"
|
<TextBlock Text="⊕" FontSize="19" HorizontalAlignment="Center"
|
||||||
IsVisible="{Binding IsMobile}"/>
|
/>
|
||||||
<TextBlock Text="{Binding Loc[tab.contacts]}" FontSize="12"
|
<TextBlock Text="{Binding Loc[tab.contacts]}" FontSize="12"
|
||||||
HorizontalAlignment="Center"/>
|
HorizontalAlignment="Center"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
@@ -510,59 +517,6 @@
|
|||||||
|
|
||||||
</TabControl>
|
</TabControl>
|
||||||
|
|
||||||
<!-- Barra di navigazione custom mobile: 5 colonne uguali, sempre centrata -->
|
|
||||||
<Grid Grid.Row="2"
|
|
||||||
ColumnDefinitions="*,*,*,*,*"
|
|
||||||
IsVisible="{Binding IsMobile}"
|
|
||||||
Background="{DynamicResource SystemControlBackgroundChromeMediumBrush}"
|
|
||||||
Margin="-16,4,-16,0">
|
|
||||||
<Button Grid.Column="0"
|
|
||||||
HorizontalAlignment="Stretch" HorizontalContentAlignment="Center"
|
|
||||||
Background="Transparent" Padding="4,8"
|
|
||||||
Command="{Binding SelectTabCommand}" CommandParameter="0">
|
|
||||||
<StackPanel Spacing="2" HorizontalAlignment="Center">
|
|
||||||
<TextBlock Text="≡" FontSize="19" HorizontalAlignment="Center"/>
|
|
||||||
<TextBlock Text="{Binding Loc[tab.history]}" FontSize="11" HorizontalAlignment="Center"/>
|
|
||||||
</StackPanel>
|
|
||||||
</Button>
|
|
||||||
<Button Grid.Column="1"
|
|
||||||
HorizontalAlignment="Stretch" HorizontalContentAlignment="Center"
|
|
||||||
Background="Transparent" Padding="4,8"
|
|
||||||
Command="{Binding SelectTabCommand}" CommandParameter="1">
|
|
||||||
<StackPanel Spacing="2" HorizontalAlignment="Center">
|
|
||||||
<TextBlock Text="↑" FontSize="19" HorizontalAlignment="Center"/>
|
|
||||||
<TextBlock Text="{Binding Loc[tab.send]}" FontSize="11" HorizontalAlignment="Center"/>
|
|
||||||
</StackPanel>
|
|
||||||
</Button>
|
|
||||||
<Button Grid.Column="2"
|
|
||||||
HorizontalAlignment="Stretch" HorizontalContentAlignment="Center"
|
|
||||||
Background="Transparent" Padding="4,8"
|
|
||||||
Command="{Binding SelectTabCommand}" CommandParameter="2">
|
|
||||||
<StackPanel Spacing="2" HorizontalAlignment="Center">
|
|
||||||
<TextBlock Text="↓" FontSize="19" HorizontalAlignment="Center"/>
|
|
||||||
<TextBlock Text="{Binding Loc[tab.receive]}" FontSize="11" HorizontalAlignment="Center"/>
|
|
||||||
</StackPanel>
|
|
||||||
</Button>
|
|
||||||
<Button Grid.Column="3"
|
|
||||||
HorizontalAlignment="Stretch" HorizontalContentAlignment="Center"
|
|
||||||
Background="Transparent" Padding="4,8"
|
|
||||||
Command="{Binding SelectTabCommand}" CommandParameter="3">
|
|
||||||
<StackPanel Spacing="2" HorizontalAlignment="Center">
|
|
||||||
<TextBlock Text="⊙" FontSize="19" HorizontalAlignment="Center"/>
|
|
||||||
<TextBlock Text="{Binding Loc[tab.addresses]}" FontSize="11" HorizontalAlignment="Center"/>
|
|
||||||
</StackPanel>
|
|
||||||
</Button>
|
|
||||||
<Button Grid.Column="4"
|
|
||||||
HorizontalAlignment="Stretch" HorizontalContentAlignment="Center"
|
|
||||||
Background="Transparent" Padding="4,8"
|
|
||||||
Command="{Binding SelectTabCommand}" CommandParameter="4">
|
|
||||||
<StackPanel Spacing="2" HorizontalAlignment="Center">
|
|
||||||
<TextBlock Text="⊕" FontSize="19" HorizontalAlignment="Center"/>
|
|
||||||
<TextBlock Text="{Binding Loc[tab.contacts]}" FontSize="11" HorizontalAlignment="Center"/>
|
|
||||||
</StackPanel>
|
|
||||||
</Button>
|
|
||||||
</Grid>
|
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
<!-- Barra di stato: messaggio a sinistra, stato connessione a destra.
|
<!-- Barra di stato: messaggio a sinistra, stato connessione a destra.
|
||||||
|
|||||||
Reference in New Issue
Block a user