Files
Mimante/Mimante/MainWindow.xaml
T
Alberto Balbo 995732f379 Aggiornamento alla versione 2.6.0
- Introdotta la modalità Multi-Asta per monitorare più aste contemporaneamente.
- Aggiunta griglia Multi-Asta con timer, prezzo e dettagli per asta.
- Implementata gestione per-asta con impostazioni individuali e log dedicati.
- Aggiunti pulsanti separati per pausa/riprendi con feedback visivo.
- Introdotta griglia utenti per-asta con aggiornamento real-time e ordinamento.
- Resi simmetrici i margini e migliorata la leggibilità dell'interfaccia.
- Implementata navigazione automatica ai Preferiti all'avvio in modalità Multi-Asta.
- Ottimizzato il layout con GridSplitter ridimensionabile tra griglia e log.
- Rimosso il pulsante di pausa globale e semplificata la gestione UI.
- Evidenziate le aste in pausa e le puntate dell'utente con colori distintivi.
2025-10-14 21:30:01 +02:00

610 lines
40 KiB
XML

<Window x:Class="AutoBidder.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:AutoBidder"
xmlns:wv2="clr-namespace:Microsoft.Web.WebView2.Wpf;assembly=Microsoft.Web.WebView2.Wpf"
mc:Ignorable="d"
Title="AutoBidder - Bidoo Auto Bid"
Height="700" Width="1100"
MinHeight="600" MinWidth="900"
Background="#101219" Foreground="#E6EDF3">
<Window.Resources>
<Style x:Key="PrimaryButtonStyle" TargetType="Button">
<Setter Property="Foreground" Value="White" />
<Setter Property="FontWeight" Value="SemiBold" />
<Setter Property="Padding" Value="10,6" />
<Setter Property="Margin" Value="0,6,0,0" />
<Setter Property="BorderThickness" Value="0" />
<Setter Property="Height" Value="40" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border Background="{TemplateBinding Background}" CornerRadius="8" SnapsToDevicePixels="True">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" RecognizesAccessKey="True" />
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="StartButtonStyle" TargetType="Button" BasedOn="{StaticResource PrimaryButtonStyle}">
<Setter Property="Background" Value="#16A34A" /> <!-- green -->
</Style>
<Style x:Key="StopButtonStyle" TargetType="Button" BasedOn="{StaticResource PrimaryButtonStyle}">
<Setter Property="Background" Value="#DC2626" /> <!-- red -->
<Setter Property="Opacity" Value="0.6" />
</Style>
<Style x:Key="PauseButtonStyle" TargetType="Button" BasedOn="{StaticResource PrimaryButtonStyle}">
<Setter Property="Background" Value="#F59E0B" /> <!-- yellow -->
<Setter Property="Height" Value="40" />
</Style>
<Style x:Key="RefreshButtonStyle" TargetType="Button" BasedOn="{StaticResource PrimaryButtonStyle}">
<Setter Property="Background" Value="#0EA5E9" /> <!-- blue -->
<Setter Property="Height" Value="30" />
<Setter Property="Padding" Value="8,4" />
</Style>
<Style TargetType="TextBlock">
<Setter Property="Foreground" Value="#E6EDF3" />
</Style>
<Style x:Key="LogBoxStyle" TargetType="TextBox">
<Setter Property="Background" Value="#0F1720" />
<Setter Property="Foreground" Value="#E6EDF3" />
<Setter Property="BorderBrush" Value="#263143" />
<Setter Property="BorderThickness" Value="1" />
<Setter Property="Padding" Value="8" />
<Setter Property="FontFamily" Value="Consolas" />
<Setter Property="FontSize" Value="12" />
</Style>
<Style x:Key="NumericBoxStyle" TargetType="TextBox">
<Setter Property="Background" Value="#0B1220" />
<Setter Property="Foreground" Value="#E6EDF3" />
<Setter Property="BorderBrush" Value="#263143" />
<Setter Property="BorderThickness" Value="1" />
<Setter Property="Padding" Value="6" />
<Setter Property="Width" Value="80" />
<Setter Property="HorizontalContentAlignment" Value="Center" />
<Setter Property="FontWeight" Value="SemiBold" />
</Style>
<Style x:Key="AddressBarStyle" TargetType="TextBox">
<Setter Property="Background" Value="#0B1220" />
<Setter Property="Foreground" Value="#E6EDF3" />
<Setter Property="BorderBrush" Value="#263143" />
<Setter Property="BorderThickness" Value="1" />
<Setter Property="Padding" Value="8,6" />
<Setter Property="FontSize" Value="13" />
</Style>
</Window.Resources>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*" MinWidth="260" />
<ColumnDefinition Width="6" />
<ColumnDefinition Width="2*" />
</Grid.ColumnDefinitions>
<!-- Left panel: fixed height, resizable width -->
<Border Grid.Column="0" Margin="12" Background="#0B1015" CornerRadius="6">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" /> <!-- Mode selector -->
<RowDefinition Height="Auto" /> <!-- Start -->
<RowDefinition Height="Auto" /> <!-- Pause -->
<RowDefinition Height="Auto" /> <!-- Stop -->
<RowDefinition Height="Auto" /> <!-- Stats globali -->
<RowDefinition Height="*" /> <!-- Griglia Aste Multi (resizable) oppure Settings/Bidders/Log Singola -->
</Grid.RowDefinitions>
<!-- Modalità Asta Singola / Multi-Asta -->
<Grid Grid.Row="0" Margin="12,12,12,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Button x:Name="SingleAuctionButton" Grid.Column="0" Click="SingleAuctionButton_Click"
Background="#16A34A" Foreground="White" Padding="10,6" BorderThickness="0"
Height="40" FontWeight="SemiBold" Margin="0,0,4,0">
<Button.Template>
<ControlTemplate TargetType="Button">
<Border Background="{TemplateBinding Background}" CornerRadius="8" SnapsToDevicePixels="True">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" RecognizesAccessKey="True" />
</Border>
</ControlTemplate>
</Button.Template>
Asta Singola
</Button>
<Button x:Name="MultiAuctionButton" Grid.Column="1" Click="MultiAuctionButton_Click"
Background="#374151" Foreground="White" Padding="10,6" BorderThickness="0"
Height="40" FontWeight="SemiBold" Margin="4,0,0,0" Opacity="0.6">
<Button.Template>
<ControlTemplate TargetType="Button">
<Border Background="{TemplateBinding Background}" CornerRadius="8" SnapsToDevicePixels="True">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" RecognizesAccessKey="True" />
</Border>
</ControlTemplate>
</Button.Template>
Multi-Asta
</Button>
</Grid>
<Button x:Name="StartButton" Grid.Row="1" Style="{StaticResource StartButtonStyle}" Click="StartButton_Click" Margin="12,6,12,0">Avvia</Button>
<Button x:Name="PauseBidButton" Grid.Row="2" Style="{StaticResource PauseButtonStyle}" Click="PauseBidButton_Click" Margin="12,6,12,0">Pausa</Button>
<Button x:Name="StopButton" Grid.Row="3" Style="{StaticResource StopButtonStyle}" Click="StopButton_Click" IsEnabled="False" Margin="12,6,12,0">Stop</Button>
<!-- Stats Globali (solo Asta Singola) -->
<Grid x:Name="SingleAuctionStatsPanel" Grid.Row="4" Margin="12,8,12,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="0" Orientation="Vertical">
<StackPanel Orientation="Horizontal">
<TextBlock Text="Auto-click:" Margin="0,0,8,0" />
<TextBlock x:Name="ClickCountText" Text="0" FontWeight="Bold" Margin="0,0,16,0" />
<TextBlock Text="Resets:" Margin="0,0,8,0" />
<TextBlock x:Name="ResetCountText" Text="0" FontWeight="Bold" />
</StackPanel>
<StackPanel x:Name="SingleAuctionPricePanel" Orientation="Horizontal" Margin="0,6,0,0">
<TextBlock Text="Prezzo corrente:" Margin="0,0,8,0" VerticalAlignment="Center" />
<TextBlock x:Name="CurrentPriceText" Text="-" FontWeight="Bold" FontSize="14" Foreground="#10B981" VerticalAlignment="Center" />
</StackPanel>
</StackPanel>
<!-- Multi-Click a destra -->
<StackPanel Grid.Column="1" Orientation="Horizontal" VerticalAlignment="Center">
<CheckBox x:Name="MultiClickCheckBox" IsChecked="False" VerticalAlignment="Center" ToolTip="Click multipli per maggiore affidabilità" />
<TextBlock Text="Multi-Click" FontSize="11" Margin="6,0,0,0" VerticalAlignment="Center" />
</StackPanel>
</Grid>
<!-- CONTENUTO DINAMICO: Asta Singola oppure Multi-Asta -->
<!-- Pannello Asta Singola (Settings, Bidders, Log) -->
<Grid x:Name="SingleAuctionPanel" Grid.Row="5" Margin="0,8,0,0">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" /> <!-- Settings Row 1 -->
<RowDefinition Height="Auto" /> <!-- Settings Row 2 -->
<RowDefinition Height="Auto" /> <!-- Bidders label -->
<RowDefinition Height="Auto" /> <!-- Bidders grid -->
<RowDefinition Height="Auto" /> <!-- Log label -->
<RowDefinition Height="*" /> <!-- Log box expands -->
</Grid.RowDefinitions>
<!-- Settings Row 1 -->
<Grid Grid.Row="0" Margin="12,0,12,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="8" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="8" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<StackPanel Grid.Row="0" Grid.Column="0" Orientation="Vertical">
<TextBlock Text="Max Clicks" FontSize="11" />
<TextBox x:Name="MaxClicksBox" Style="{StaticResource NumericBoxStyle}" Text="0" Width="Auto" ToolTip="0 = nessun limite" TextChanged="MaxClicksBox_TextChanged" />
</StackPanel>
<StackPanel Grid.Row="0" Grid.Column="2" Orientation="Vertical">
<TextBlock Text="Max Resets" FontSize="11" />
<TextBox x:Name="MaxResetsBox" Style="{StaticResource NumericBoxStyle}" Text="0" Width="Auto" ToolTip="0 = nessun limite" TextChanged="MaxResetsBox_TextChanged" />
</StackPanel>
<StackPanel Grid.Row="2" Grid.Column="0" Orientation="Vertical">
<TextBlock Text="Min Price €" FontSize="11" />
<TextBox x:Name="MinPriceBox" Style="{StaticResource NumericBoxStyle}" Text="0" Width="Auto" ToolTip="0 = nessun limite" TextChanged="MinPriceBox_TextChanged" />
</StackPanel>
<StackPanel Grid.Row="2" Grid.Column="2" Orientation="Vertical">
<TextBlock Text="Max Price €" FontSize="11" />
<TextBox x:Name="MaxPriceBox" Style="{StaticResource NumericBoxStyle}" Text="0" Width="Auto" ToolTip="0 = nessun limite" TextChanged="MaxPriceBox_TextChanged" />
</StackPanel>
</Grid>
<!-- Settings Row 2 -->
<Grid Grid.Row="1" Margin="12,6,12,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="8" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="0" Orientation="Vertical">
<TextBlock Text="Timer Click" FontSize="11" />
<TextBox x:Name="ClickTimerBox" Style="{StaticResource NumericBoxStyle}" Text="0" Width="Auto" ToolTip="Secondo del timer per il click (0-8)" TextChanged="ClickTimerBox_TextChanged" />
</StackPanel>
<StackPanel Grid.Column="2" Orientation="Vertical">
<TextBlock Text="Ritardo (ms)" FontSize="11" />
<TextBox x:Name="ClickDelayBox" Style="{StaticResource NumericBoxStyle}" Text="0" Width="Auto" ToolTip="Ritardo aggiuntivo in millisecondi" TextChanged="ClickDelayBox_TextChanged" />
</StackPanel>
</Grid>
<!-- Bidders section -->
<Grid Grid.Row="2" Margin="12,8,12,4">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="Elenco utenti (per numero puntate)" VerticalAlignment="Center" FontSize="12" />
<Button x:Name="ClearBiddersButton" Grid.Column="1" Content="Pulisci" Click="ClearBiddersButton_Click"
Background="#0EA5E9" Foreground="White" Padding="24,6" BorderThickness="0"
FontSize="12" MinWidth="80" Height="30" VerticalAlignment="Center" FontWeight="SemiBold">
<Button.Template>
<ControlTemplate TargetType="Button">
<Border Background="{TemplateBinding Background}" CornerRadius="5" SnapsToDevicePixels="True">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
</Border>
</ControlTemplate>
</Button.Template>
</Button>
</Grid>
<DataGrid x:Name="BiddersGrid" Grid.Row="3" Margin="12,0,12,0" AutoGenerateColumns="False" HeadersVisibility="Column" CanUserAddRows="False" IsReadOnly="True" Height="90" Background="#091018" RowBackground="#0B1220" AlternatingRowBackground="#081016" Foreground="#E6EDF3" GridLinesVisibility="None">
<DataGrid.Resources>
<Style TargetType="DataGridColumnHeader">
<Setter Property="Background" Value="#0F1720" />
<Setter Property="Foreground" Value="#E6EDF3" />
<Setter Property="FontWeight" Value="SemiBold" />
</Style>
<Style TargetType="DataGridCell">
<Setter Property="Foreground" Value="#E6EDF3" />
<Setter Property="Background" Value="Transparent" />
</Style>
</DataGrid.Resources>
<DataGrid.Columns>
<DataGridTextColumn Header="Utente" Binding="{Binding Name}" Width="*" />
<DataGridTextColumn Header="Puntate" Binding="{Binding Count}" Width="120" />
<DataGridTextColumn Header="Ultima puntata" Binding="{Binding LastBid}" Width="160" />
</DataGrid.Columns>
</DataGrid>
<Grid Grid.Row="4" Margin="12,6,12,4">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="Log operazioni" VerticalAlignment="Center" FontSize="12" />
<Button x:Name="ClearLogButton" Grid.Column="1" Content="Pulisci" Click="ClearLogButton_Click"
Background="#0EA5E9" Foreground="White" Padding="24,6" BorderThickness="0"
FontSize="12" MinWidth="80" Height="30" VerticalAlignment="Center" FontWeight="SemiBold">
<Button.Template>
<ControlTemplate TargetType="Button">
<Border Background="{TemplateBinding Background}" CornerRadius="5" SnapsToDevicePixels="True">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
</Border>
</ControlTemplate>
</Button.Template>
</Button>
</Grid>
<TextBox x:Name="LogBox" Grid.Row="5" Margin="12,0,12,12" IsReadOnly="True" VerticalScrollBarVisibility="Auto" TextWrapping="Wrap" AcceptsReturn="True" Style="{StaticResource LogBoxStyle}" />
</Grid>
<!-- Pannello Multi-Asta (Griglia + Dettagli Asta Selezionata) -->
<Grid x:Name="MultiAuctionPanel" Grid.Row="5" Margin="0,8,0,0" Visibility="Visible">
<Grid.RowDefinitions>
<RowDefinition Height="2*" MinHeight="150" /> <!-- Griglia aste (resizable) -->
<RowDefinition Height="12" /> <!-- Splitter (aumentato da 6 a 12) -->
<RowDefinition Height="*" MinHeight="120" /> <!-- Dettagli asta selezionata -->
</Grid.RowDefinitions>
<!-- Griglia Aste -->
<Border Grid.Row="0" Background="#0F1720" CornerRadius="6" Margin="12,0,12,8">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<!-- Header -->
<Border Grid.Row="0" Background="#1E293B" Padding="8,6" CornerRadius="6,6,0,0">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="📊 Aste Monitorate" FontWeight="Bold" FontSize="12" Foreground="#E6EDF3" VerticalAlignment="Center" />
<StackPanel Grid.Column="1" Orientation="Horizontal" HorizontalAlignment="Right">
<TextBlock Text="Totale:" Margin="0,0,6,0" FontSize="11" Foreground="#94A3B8" VerticalAlignment="Center" />
<TextBlock x:Name="TotalAuctionsText" Text="0" FontWeight="Bold" FontSize="11" Foreground="#10B981" VerticalAlignment="Center" />
</StackPanel>
</Grid>
</Border>
<!-- DataGrid Aste -->
<DataGrid x:Name="MultiAuctionsGrid" Grid.Row="1" Margin="8,8,8,8" AutoGenerateColumns="False"
HeadersVisibility="Column" CanUserAddRows="False" IsReadOnly="True"
Background="#091018" RowBackground="#0B1220"
AlternatingRowBackground="#081016" Foreground="#E6EDF3" GridLinesVisibility="Horizontal"
BorderThickness="0" SelectionMode="Single" SelectionChanged="MultiAuctionsGrid_SelectionChanged">
<DataGrid.Resources>
<Style TargetType="DataGridColumnHeader">
<Setter Property="Background" Value="#0F1720" />
<Setter Property="Foreground" Value="#E6EDF3" />
<Setter Property="FontWeight" Value="SemiBold" />
<Setter Property="Padding" Value="8,6" />
<Setter Property="BorderThickness" Value="0,0,0,1" />
<Setter Property="BorderBrush" Value="#263143" />
</Style>
<Style TargetType="DataGridCell">
<Setter Property="Foreground" Value="#E6EDF3" />
<Setter Property="Background" Value="Transparent" />
<Setter Property="BorderThickness" Value="0" />
<Setter Property="Padding" Value="8,4" />
</Style>
<Style TargetType="DataGridRow">
<Setter Property="Height" Value="32" />
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="#1E40AF" />
</Trigger>
<!-- Evidenzia riga quando è la mia puntata -->
<DataTrigger Binding="{Binding IsMyBid}" Value="True">
<Setter Property="Background" Value="#15803D" />
<Setter Property="FontWeight" Value="Bold" />
</DataTrigger>
<!-- ⭐ NUOVO: Colora asta in pausa -->
<DataTrigger Binding="{Binding IsPaused}" Value="True">
<Setter Property="Background" Value="#78350F" />
<Setter Property="Opacity" Value="0.7" />
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.Resources>
<DataGrid.Columns>
<DataGridTextColumn Header="Asta" Binding="{Binding Name}" Width="2*" />
<DataGridTextColumn Header="Timer" Binding="{Binding TimerDisplay}" Width="60" />
<DataGridTextColumn Header="Prezzo" Binding="{Binding PriceDisplay}" Width="70" />
<DataGridTextColumn Header="Clicks" Binding="{Binding MyClicks}" Width="60" />
<DataGridTextColumn Header="Resets" Binding="{Binding ResetCount}" Width="60" />
<DataGridTextColumn Header="Ultimo" Binding="{Binding LastBidder}" Width="*" />
</DataGrid.Columns>
</DataGrid>
</Grid>
</Border>
<!-- GridSplitter verticale (aumentato) -->
<GridSplitter Grid.Row="1" Height="12" HorizontalAlignment="Stretch" Background="#1f2937" ShowsPreview="True" ResizeDirection="Rows" Cursor="SizeNS" Margin="0,2,0,2" />
<!-- Dettagli Asta Selezionata -->
<Border Grid.Row="2" Background="#0F1720" CornerRadius="6" Margin="12,8,12,12">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" /> <!-- Header con pulsanti -->
<RowDefinition Height="Auto" /> <!-- Impostazioni -->
<RowDefinition Height="*" /> <!-- Utenti + Log (espandibile) -->
</Grid.RowDefinitions>
<!-- Header Dettagli con Pulsanti Pausa/Riprendi -->
<Border Grid.Row="0" Background="#1E293B" Padding="8,6" CornerRadius="6,6,0,0">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" x:Name="SelectedAuctionName" Text="Seleziona un'asta per vedere i dettagli" FontWeight="Bold" FontSize="12" Foreground="#E6EDF3" VerticalAlignment="Center" />
<!-- ⭐ NUOVO: Due pulsanti separati -->
<StackPanel Grid.Column="1" Orientation="Horizontal">
<Button x:Name="PauseAuctionButton" Content="Pausa" Click="PauseAuctionButton_Click"
Background="#F59E0B" Foreground="White" Padding="12,4" BorderThickness="0"
FontSize="11" FontWeight="SemiBold" MinWidth="65" Height="28" IsEnabled="False">
<Button.Template>
<ControlTemplate TargetType="Button">
<Border Background="{TemplateBinding Background}" CornerRadius="4" SnapsToDevicePixels="True">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
</Border>
</ControlTemplate>
</Button.Template>
</Button>
<Button x:Name="ResumeAuctionButton" Content="Riprendi" Click="ResumeAuctionButton_Click"
Background="#16A34A" Foreground="White" Padding="12,4" BorderThickness="0"
FontSize="11" FontWeight="SemiBold" MinWidth="65" Height="28" IsEnabled="False" Margin="4,0,0,0">
<Button.Template>
<ControlTemplate TargetType="Button">
<Border Background="{TemplateBinding Background}" CornerRadius="4" SnapsToDevicePixels="True">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
</Border>
</ControlTemplate>
</Button.Template>
</Button>
</StackPanel>
</Grid>
</Border>
<!-- Impostazioni Asta Selezionata -->
<Grid Grid.Row="1" Margin="8,8,8,0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="4" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="4" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="0">
<TextBlock Text="Timer Click" FontSize="10" Foreground="#94A3B8" />
<TextBox x:Name="SelectedTimerClick" Style="{StaticResource NumericBoxStyle}" Text="0" Width="Auto" TextChanged="SelectedTimerClick_TextChanged" />
</StackPanel>
<StackPanel Grid.Column="2">
<TextBlock Text="Min €" FontSize="10" Foreground="#94A3B8" />
<TextBox x:Name="SelectedMinPrice" Style="{StaticResource NumericBoxStyle}" Text="0" Width="Auto" TextChanged="SelectedMinPrice_TextChanged" />
</StackPanel>
<StackPanel Grid.Column="4">
<TextBlock Text="Max €" FontSize="10" Foreground="#94A3B8" />
<TextBox x:Name="SelectedMaxPrice" Style="{StaticResource NumericBoxStyle}" Text="0" Width="Auto" TextChanged="SelectedMaxPrice_TextChanged" />
</StackPanel>
</Grid>
<!-- Bidders e Log Asta Selezionata (Separati Verticalmente con GridSplitter) -->
<Grid Grid.Row="2" Margin="8,8,12,8">
<Grid.RowDefinitions>
<RowDefinition Height="*" MinHeight="80" /> <!-- Utenti (espandibile) -->
<RowDefinition Height="6" /> <!-- Splitter verticale -->
<RowDefinition Height="*" MinHeight="80" /> <!-- Log (espandibile) -->
</Grid.RowDefinitions>
<!-- Sezione Utenti (sopra) -->
<Grid Grid.Row="0">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<!-- Header Utenti -->
<Grid Grid.Row="0" Margin="0,0,0,4">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="Utenti su questa asta" FontSize="11" Foreground="#94A3B8" VerticalAlignment="Center" />
<TextBlock x:Name="SelectedAuctionBiddersCount" Grid.Column="1" Text="0" FontSize="11" FontWeight="Bold" Foreground="#10B981" VerticalAlignment="Center" />
</Grid>
<!-- DataGrid Utenti Asta -->
<DataGrid x:Name="SelectedAuctionBiddersGrid" Grid.Row="1" AutoGenerateColumns="False"
HeadersVisibility="Column" CanUserAddRows="False" IsReadOnly="True"
Background="#091018" RowBackground="#0B1220"
AlternatingRowBackground="#081016" Foreground="#E6EDF3" GridLinesVisibility="None"
BorderThickness="0">
<DataGrid.Resources>
<Style TargetType="DataGridColumnHeader">
<Setter Property="Background" Value="#0F1720" />
<Setter Property="Foreground" Value="#E6EDF3" />
<Setter Property="FontWeight" Value="SemiBold" />
<Setter Property="Padding" Value="6,4" />
<Setter Property="FontSize" Value="10" />
</Style>
<Style TargetType="DataGridCell">
<Setter Property="Foreground" Value="#E6EDF3" />
<Setter Property="Background" Value="Transparent" />
<Setter Property="BorderThickness" Value="0" />
<Setter Property="Padding" Value="6,3" />
<Setter Property="FontSize" Value="10" />
</Style>
<Style TargetType="DataGridRow">
<Setter Property="Height" Value="24" />
</Style>
</DataGrid.Resources>
<DataGrid.Columns>
<DataGridTextColumn Header="Utente" Binding="{Binding Key}" Width="*" />
<DataGridTextColumn Header="Puntate" Binding="{Binding Value}" Width="60" />
</DataGrid.Columns>
</DataGrid>
</Grid>
<!-- GridSplitter Verticale (separatore orizzontale) -->
<GridSplitter Grid.Row="1" Height="6" HorizontalAlignment="Stretch" VerticalAlignment="Center"
Background="#1f2937" ShowsPreview="True" ResizeDirection="Rows" Cursor="SizeNS" />
<!-- Sezione Log (sotto) -->
<Grid Grid.Row="2">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<!-- Header Log -->
<TextBlock Grid.Row="0" Text="Log asta" FontSize="11" Foreground="#94A3B8" Margin="0,0,0,4" />
<!-- TextBox Log -->
<TextBox x:Name="SelectedAuctionLog" Grid.Row="1" IsReadOnly="True"
VerticalScrollBarVisibility="Auto" TextWrapping="Wrap" AcceptsReturn="True"
Style="{StaticResource LogBoxStyle}" FontSize="10" />
</Grid>
</Grid>
</Grid>
</Border>
</Grid>
</Grid>
</Border>
<!-- GridSplitter to allow resizing the left panel (only width) -->
<GridSplitter Grid.Column="1" Width="6" HorizontalAlignment="Center" VerticalAlignment="Stretch" Background="#1f2937" ShowsPreview="True" ResizeDirection="Columns" ResizeBehavior="PreviousAndNext" Cursor="SizeWE" />
<!-- Right: webview with address bar -->
<Grid Grid.Column="2">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<!-- Address bar con pulsanti navigazione -->
<Grid Grid.Row="0" Margin="12,12,12,6">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<!-- Pulsante Indietro -->
<Button x:Name="BackButton" Grid.Column="0" Content="Indietro" Click="BackButton_Click"
Background="#374151" Foreground="White" Padding="12,8" Margin="0,0,6,0"
BorderThickness="0" FontWeight="SemiBold" FontSize="13" MinWidth="70" Height="38" IsEnabled="False">
<Button.Template>
<ControlTemplate TargetType="Button">
<Border Background="{TemplateBinding Background}" CornerRadius="6" SnapsToDevicePixels="True">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
</Border>
</ControlTemplate>
</Button.Template>
</Button>
<!-- Pulsante Aggiorna -->
<Button x:Name="RefreshButton" Grid.Column="1" Content="Aggiorna" Click="RefreshButton_Click"
Background="#0EA5E9" Foreground="White" Padding="12,8" Margin="0,0,8,0"
BorderThickness="0" FontWeight="SemiBold" FontSize="13" MinWidth="80" Height="38">
<Button.Template>
<ControlTemplate TargetType="Button">
<Border Background="{TemplateBinding Background}" CornerRadius="6" SnapsToDevicePixels="True">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
</Border>
</ControlTemplate>
</Button.Template>
</Button>
<!-- Barra indirizzo -->
<TextBox x:Name="AddressBar" Grid.Column="2" Style="{StaticResource AddressBarStyle}"
Text="https://it.bidoo.com" KeyDown="AddressBar_KeyDown"
ToolTip="Inserisci URL di Bidoo (es: https://it.bidoo.com/asta/...)" />
<!-- Pulsante Vai -->
<Button x:Name="NavigateButton" Grid.Column="3" Content="Vai" Click="NavigateButton_Click"
Background="#16A34A" Foreground="White" Padding="28,10" Margin="8,0,0,0"
BorderThickness="0" FontWeight="Bold" FontSize="14" MinWidth="80" Height="38">
<Button.Template>
<ControlTemplate TargetType="Button">
<Border Background="{TemplateBinding Background}" CornerRadius="6" SnapsToDevicePixels="True">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
</Border>
</ControlTemplate>
</Button.Template>
</Button>
</Grid>
<!-- WebView -->
<Border Grid.Row="1" Margin="12,0,12,12" CornerRadius="8" Background="#0B1015">
<wv2:WebView2 x:Name="webView" Source="https://it.bidoo.com" Margin="2" />
</Border>
</Grid>
</Grid>
</Window>