- Rimosse funzionalità legacy legate a WebView2. - Introdotto uno stile globale per i pulsanti. - Semplificata l'interfaccia con gestione tramite griglia unica. - Aggiunti comandi per avviare, mettere in pausa e fermare aste. - Introdotta gestione manuale dei cookie tramite dialog. - Aggiunti dialog per configurare sessione e aggiungere aste. - Migliorata la persistenza con salvataggio sicuro (DPAPI). - Rifattorizzate statistiche per utilizzare `BidHistory` e `BidderStats`. - Ottimizzato il polling per ridurre il carico di sistema. - Aggiornata esportazione CSV con dati più dettagliati. - Introdotti nuovi modelli dati per utente e banner aste. - Rimossi file di test manuale e codice obsoleto. - Aggiornata documentazione per riflettere le modifiche. - Aggiunta nuova icona dell'applicazione. - Migliorata la sicurezza eliminando il salvataggio in chiaro dei cookie.
515 lines
36 KiB
XML
515 lines
36 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"
|
|
Title="AutoBidder v3.0" Height="800" Width="1400"
|
|
Background="#0a0a0a" Foreground="#FFFFFF"
|
|
WindowStartupLocation="CenterScreen"
|
|
Icon="pack://application:,,,/Icon/favicon.ico">
|
|
<Window.Resources>
|
|
<!-- Stile pulsanti stile vecchia versione -->
|
|
<Style x:Key="MainButtonStyle" TargetType="Button">
|
|
<Setter Property="Foreground" Value="White" />
|
|
<Setter Property="FontWeight" Value="Bold" />
|
|
<Setter Property="FontSize" Value="14" />
|
|
<Setter Property="BorderThickness" Value="0" />
|
|
<Setter Property="Cursor" Value="Hand" />
|
|
<Setter Property="Template">
|
|
<Setter.Value>
|
|
<ControlTemplate TargetType="Button">
|
|
<Border Background="{TemplateBinding Background}"
|
|
CornerRadius="8"
|
|
Padding="{TemplateBinding Padding}">
|
|
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
|
|
</Border>
|
|
</ControlTemplate>
|
|
</Setter.Value>
|
|
</Setter>
|
|
</Style>
|
|
|
|
<!-- Grid action button styles (enable/opacity based on auction state) -->
|
|
<Style x:Key="GridStartButtonStyle" TargetType="Button" BasedOn="{StaticResource SmallButtonStyle}">
|
|
<Setter Property="IsEnabled" Value="True" />
|
|
<Setter Property="Opacity" Value="1" />
|
|
<Style.Triggers>
|
|
<MultiDataTrigger>
|
|
<MultiDataTrigger.Conditions>
|
|
<Condition Binding="{Binding IsActive}" Value="True" />
|
|
<Condition Binding="{Binding IsPaused}" Value="False" />
|
|
</MultiDataTrigger.Conditions>
|
|
<Setter Property="IsEnabled" Value="False" />
|
|
<Setter Property="Opacity" Value="0.5" />
|
|
</MultiDataTrigger>
|
|
<Trigger Property="IsEnabled" Value="False">
|
|
<Trigger.EnterActions>
|
|
<BeginStoryboard>
|
|
<Storyboard>
|
|
<DoubleAnimation Storyboard.TargetProperty="Opacity" To="0.5" Duration="0:0:0.15" />
|
|
</Storyboard>
|
|
</BeginStoryboard>
|
|
</Trigger.EnterActions>
|
|
<Trigger.ExitActions>
|
|
<BeginStoryboard>
|
|
<Storyboard>
|
|
<DoubleAnimation Storyboard.TargetProperty="Opacity" To="1" Duration="0:0:0.15" />
|
|
</Storyboard>
|
|
</BeginStoryboard>
|
|
</Trigger.ExitActions>
|
|
</Trigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
|
|
<Style x:Key="GridPauseButtonStyle" TargetType="Button" BasedOn="{StaticResource SmallButtonStyle}">
|
|
<Setter Property="IsEnabled" Value="False" />
|
|
<Setter Property="Opacity" Value="0.5" />
|
|
<Style.Triggers>
|
|
<MultiDataTrigger>
|
|
<MultiDataTrigger.Conditions>
|
|
<Condition Binding="{Binding IsActive}" Value="True" />
|
|
<Condition Binding="{Binding IsPaused}" Value="False" />
|
|
</MultiDataTrigger.Conditions>
|
|
<Setter Property="IsEnabled" Value="True" />
|
|
<Setter Property="Opacity" Value="1" />
|
|
</MultiDataTrigger>
|
|
<Trigger Property="IsEnabled" Value="False">
|
|
<Trigger.EnterActions>
|
|
<BeginStoryboard>
|
|
<Storyboard>
|
|
<DoubleAnimation Storyboard.TargetProperty="Opacity" To="0.5" Duration="0:0:0.15" />
|
|
</Storyboard>
|
|
</BeginStoryboard>
|
|
</Trigger.EnterActions>
|
|
<Trigger.ExitActions>
|
|
<BeginStoryboard>
|
|
<Storyboard>
|
|
<DoubleAnimation Storyboard.TargetProperty="Opacity" To="1" Duration="0:0:0.15" />
|
|
</Storyboard>
|
|
</BeginStoryboard>
|
|
</Trigger.ExitActions>
|
|
</Trigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
|
|
<Style x:Key="GridStopButtonStyle" TargetType="Button" BasedOn="{StaticResource SmallButtonStyle}">
|
|
<Setter Property="IsEnabled" Value="False" />
|
|
<Setter Property="Opacity" Value="0.5" />
|
|
<Style.Triggers>
|
|
<DataTrigger Binding="{Binding IsActive}" Value="True">
|
|
<Setter Property="IsEnabled" Value="True" />
|
|
<Setter Property="Opacity" Value="1" />
|
|
</DataTrigger>
|
|
<Trigger Property="IsEnabled" Value="False">
|
|
<Trigger.EnterActions>
|
|
<BeginStoryboard>
|
|
<Storyboard>
|
|
<DoubleAnimation Storyboard.TargetProperty="Opacity" To="0.5" Duration="0:0:0.15" />
|
|
</Storyboard>
|
|
</BeginStoryboard>
|
|
</Trigger.EnterActions>
|
|
<Trigger.ExitActions>
|
|
<BeginStoryboard>
|
|
<Storyboard>
|
|
<DoubleAnimation Storyboard.TargetProperty="Opacity" To="1" Duration="0:0:0.15" />
|
|
</Storyboard>
|
|
</BeginStoryboard>
|
|
</Trigger.ExitActions>
|
|
</Trigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
|
|
<Style x:Key="GridManualBidButtonStyle" TargetType="Button" BasedOn="{StaticResource SmallButtonStyle}">
|
|
<Setter Property="IsEnabled" Value="False" />
|
|
<Setter Property="Opacity" Value="0.5" />
|
|
<Style.Triggers>
|
|
<MultiDataTrigger>
|
|
<MultiDataTrigger.Conditions>
|
|
<Condition Binding="{Binding IsActive}" Value="True" />
|
|
<Condition Binding="{Binding IsPaused}" Value="False" />
|
|
</MultiDataTrigger.Conditions>
|
|
<Setter Property="IsEnabled" Value="True" />
|
|
<Setter Property="Opacity" Value="1" />
|
|
</MultiDataTrigger>
|
|
<Trigger Property="IsEnabled" Value="False">
|
|
<Trigger.EnterActions>
|
|
<BeginStoryboard>
|
|
<Storyboard>
|
|
<DoubleAnimation Storyboard.TargetProperty="Opacity" To="0.5" Duration="0:0:0.15" />
|
|
</Storyboard>
|
|
</BeginStoryboard>
|
|
</Trigger.EnterActions>
|
|
<Trigger.ExitActions>
|
|
<BeginStoryboard>
|
|
<Storyboard>
|
|
<DoubleAnimation Storyboard.TargetProperty="Opacity" To="1" Duration="0:0:0.15" />
|
|
</Storyboard>
|
|
</BeginStoryboard>
|
|
</Trigger.ExitActions>
|
|
</Trigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
|
|
</Window.Resources>
|
|
|
|
<Grid Margin="12" Background="#0a0a0a">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="*" />
|
|
<RowDefinition Height="8" />
|
|
<RowDefinition Height="*" MinHeight="200" />
|
|
</Grid.RowDefinitions>
|
|
|
|
<!-- Header Compatto -->
|
|
<Border Grid.Row="0" Background="#1a1a1a" Padding="12" CornerRadius="8" Margin="0,0,0,12">
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="*" />
|
|
<ColumnDefinition Width="Auto" />
|
|
</Grid.ColumnDefinitions>
|
|
<!-- Sinistra: Utente, Puntate, Aste da confermare -->
|
|
<StackPanel Grid.Column="0" VerticalAlignment="Center" HorizontalAlignment="Left">
|
|
<StackPanel Orientation="Horizontal" Margin="0,0,0,2">
|
|
<TextBlock Text="Utente: " FontSize="14" Foreground="#00CC66" FontWeight="Bold" />
|
|
<TextBlock x:Name="UsernameText" Text="Non configurato" FontSize="14" FontWeight="Bold" Foreground="#00CC66" Width="160" TextTrimming="CharacterEllipsis" />
|
|
</StackPanel>
|
|
<StackPanel Orientation="Horizontal" Margin="0,0,0,2">
|
|
<TextBlock Text="Puntate: " FontSize="14" Foreground="#666" FontWeight="Bold" />
|
|
<TextBlock x:Name="RemainingBidsText" Text="--" FontSize="14" FontWeight="Bold" Foreground="#0099FF" Width="80" TextTrimming="CharacterEllipsis" />
|
|
</StackPanel>
|
|
<StackPanel Orientation="Horizontal">
|
|
<TextBlock Text="Aste vinte da confermare: " FontSize="14" Foreground="#FF9933" FontWeight="Bold" />
|
|
<TextBlock x:Name="BannerAsteDaRiscattare" Text="--" FontSize="14" Foreground="#FF9933" FontWeight="Bold" Width="40" TextTrimming="CharacterEllipsis" />
|
|
</StackPanel>
|
|
</StackPanel>
|
|
<!-- Destra: Pulsanti globali -->
|
|
<StackPanel Grid.Column="1" Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Center">
|
|
<Button x:Name="ConfigSessionButton" Content="Configura" Click="ConfigSessionButton_Click"
|
|
Style="{StaticResource SmallButtonStyle}"
|
|
Background="#8B5CF6" Padding="20,10" Margin="0,0,6,0" Height="40" MinWidth="110" />
|
|
<Button x:Name="StartButton" Content="Avvia Tutti" Command="{Binding StartAllCommand}" IsEnabled="False"
|
|
Style="{StaticResource SmallButtonStyle}"
|
|
Background="#00CC66" Padding="20,10" Margin="0,0,6,0" Height="40" MinWidth="110" />
|
|
<Button x:Name="PauseAllButton" Content="Pausa Tutti" Command="{Binding PauseAllCommand}" IsEnabled="True"
|
|
Style="{StaticResource SmallButtonStyle}"
|
|
Background="#FF9933" Padding="20,10" Margin="0,0,6,0" Height="40" MinWidth="110" />
|
|
<Button x:Name="StopButton" Content="Ferma Tutti" Command="{Binding StopAllCommand}" IsEnabled="False"
|
|
Style="{StaticResource SmallButtonStyle}"
|
|
Background="#CC0000" Padding="20,10" Opacity="0.5" Height="40" MinWidth="110" />
|
|
</StackPanel>
|
|
</Grid>
|
|
</Border>
|
|
|
|
<!-- Riga vuota (toolbar rimossa) -->
|
|
<Grid Grid.Row="1" Height="0" />
|
|
|
|
<!-- Griglia Aste + Log -->
|
|
<Grid Grid.Row="2">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="2*" />
|
|
<ColumnDefinition Width="8" />
|
|
<ColumnDefinition Width="*" MinWidth="200" />
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<!-- Box Aste Monitorate -->
|
|
<Border Grid.Column="0" Background="#1a1a1a" Padding="12" CornerRadius="6" BorderBrush="#333333" BorderThickness="1">
|
|
<Grid>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="*" />
|
|
</Grid.RowDefinitions>
|
|
|
|
<!-- Header con titolo e pulsanti -->
|
|
<Grid Grid.Row="0" Margin="0,0,0,12">
|
|
<TextBlock x:Name="MonitorateTitle" Text="Aste monitorate: 0" FontSize="14" FontWeight="Bold" Foreground="#00CC66" VerticalAlignment="Center" />
|
|
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
|
|
<Button x:Name="AddUrlButton" Content="+ Aggiungi" Click="AddUrlButton_Click"
|
|
Style="{StaticResource SmallButtonStyle}"
|
|
Background="#00CC66" Padding="12,6" Margin="0,0,6,0" Height="28" MinWidth="80" FontSize="11" />
|
|
<Button x:Name="RemoveUrlButton" Content="- Rimuovi" Click="RemoveUrlButton_Click"
|
|
Style="{StaticResource SmallButtonStyle}"
|
|
Background="#CC0000" Padding="12,6" Height="28" MinWidth="80" FontSize="11" />
|
|
</StackPanel>
|
|
</Grid>
|
|
|
|
<!-- Griglia Aste -->
|
|
<DataGrid x:Name="MultiAuctionsGrid" Grid.Row="1" AutoGenerateColumns="False"
|
|
Background="#1a1a1a" Foreground="#FFFFFF" SelectionChanged="MultiAuctionsGrid_SelectionChanged"
|
|
BorderBrush="#333333" BorderThickness="1" GridLinesVisibility="Horizontal"
|
|
HorizontalGridLinesBrush="#333333" RowBackground="#1a1a1a" AlternatingRowBackground="#222222">
|
|
<DataGrid.Resources>
|
|
<Style TargetType="DataGridColumnHeader">
|
|
<Setter Property="Background" Value="#2a2a2a" />
|
|
<Setter Property="Foreground" Value="#FFFFFF" />
|
|
<Setter Property="FontWeight" Value="Bold" />
|
|
<Setter Property="Padding" Value="10,8" />
|
|
<Setter Property="BorderThickness" Value="0,0,0,2" />
|
|
<Setter Property="BorderBrush" Value="#00CC66" />
|
|
</Style>
|
|
<Style TargetType="DataGridRow">
|
|
<Setter Property="Height" Value="36" />
|
|
<Style.Triggers>
|
|
<!-- Colore basato sullo stato dell'asta -->
|
|
<DataTrigger Binding="{Binding StatusDisplay}" Value="VINTA">
|
|
<Setter Property="Background" Value="#1B5E20" />
|
|
<Setter Property="Foreground" Value="#FFFFFF" />
|
|
</DataTrigger>
|
|
<DataTrigger Binding="{Binding StatusDisplay}" Value="Persa">
|
|
<Setter Property="Background" Value="#B71C1C" />
|
|
<Setter Property="Foreground" Value="#FFFFFF" />
|
|
</DataTrigger>
|
|
<DataTrigger Binding="{Binding StatusDisplay}" Value="In Corso">
|
|
<Setter Property="Background" Value="#1a1a1a" />
|
|
</DataTrigger>
|
|
<DataTrigger Binding="{Binding StatusDisplay}" Value="Inizia presto">
|
|
<Setter Property="Background" Value="#FF6F00" />
|
|
<Setter Property="Foreground" Value="#FFFFFF" />
|
|
</DataTrigger>
|
|
<DataTrigger Binding="{Binding StatusDisplay}" Value="Programmata">
|
|
<Setter Property="Background" Value="#424242" />
|
|
<Setter Property="Foreground" Value="#AAAAAA" />
|
|
</DataTrigger>
|
|
<!-- Override quando selezionata -->
|
|
<Trigger Property="IsSelected" Value="True">
|
|
<Setter Property="Background" Value="#0099FF" />
|
|
<Setter Property="Foreground" Value="White" />
|
|
</Trigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
<Style TargetType="DataGridCell">
|
|
<Setter Property="BorderThickness" Value="0" />
|
|
<Setter Property="Padding" Value="10,6" />
|
|
</Style>
|
|
</DataGrid.Resources>
|
|
<DataGrid.Columns>
|
|
<DataGridTextColumn Header="Asta" Binding="{Binding Name, Mode=OneWay}" Width="2*" IsReadOnly="True" />
|
|
<DataGridTextColumn Header="Latenza (ms)" Binding="{Binding AuctionInfo.PollingLatencyMs, Mode=OneWay}" Width="80" IsReadOnly="True" />
|
|
<DataGridTextColumn Header="Stato" Binding="{Binding StatusDisplay, Mode=OneWay}" Width="90" IsReadOnly="True" />
|
|
<DataGridTextColumn Header="Timer" Binding="{Binding TimerDisplay, Mode=OneWay}" Width="70" IsReadOnly="True" />
|
|
<DataGridTextColumn Header="Prezzo" Binding="{Binding PriceDisplay, Mode=OneWay}" Width="85" IsReadOnly="True" />
|
|
<DataGridTextColumn Header="Ultimo" Binding="{Binding LastBidder, Mode=OneWay}" Width="100" IsReadOnly="True" />
|
|
<DataGridTextColumn Header="Clicks" Binding="{Binding MyClicks, Mode=OneWay}" Width="60" IsReadOnly="True" />
|
|
<DataGridTextColumn Header="Resets" Binding="{Binding ResetCount, Mode=OneWay}" Width="60" IsReadOnly="True" />
|
|
<DataGridTemplateColumn Header="Azioni" Width="260">
|
|
<DataGridTemplateColumn.CellTemplate>
|
|
<DataTemplate>
|
|
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
|
|
<Button Content="Avvia" Command="{Binding DataContext.GridStartCommand, RelativeSource={RelativeSource AncestorType=Window}}" CommandParameter="{Binding}" Style="{StaticResource GridStartButtonStyle}" Background="#00CC66" Padding="6,2" MinWidth="40" Margin="0,0,4,0" />
|
|
<Button Content="Pausa" Command="{Binding DataContext.GridPauseCommand, RelativeSource={RelativeSource AncestorType=Window}}" CommandParameter="{Binding}" Style="{StaticResource GridPauseButtonStyle}" Background="#FF9933" Padding="6,2" MinWidth="40" Margin="0,0,4,0" />
|
|
<Button Content="Ferma" Command="{Binding DataContext.GridStopCommand, RelativeSource={RelativeSource AncestorType=Window}}" CommandParameter="{Binding}" Style="{StaticResource GridStopButtonStyle}" Background="#CC0000" Padding="6,2" MinWidth="40" Margin="0,0,4,0" />
|
|
<Button Content="Punta" Command="{Binding DataContext.GridBidCommand, RelativeSource={RelativeSource AncestorType=Window}}" CommandParameter="{Binding}" Style="{StaticResource GridManualBidButtonStyle}" Background="#8B5CF6" Padding="6,2" MinWidth="40" />
|
|
</StackPanel>
|
|
</DataTemplate>
|
|
</DataGridTemplateColumn.CellTemplate>
|
|
</DataGridTemplateColumn>
|
|
</DataGrid.Columns>
|
|
</DataGrid>
|
|
</Grid>
|
|
</Border>
|
|
|
|
<GridSplitter Grid.Column="1" Width="8" HorizontalAlignment="Stretch" Background="#333333" />
|
|
|
|
<!-- Log Globale -->
|
|
<Border Grid.Column="2" Background="#1a1a1a" Padding="12" CornerRadius="6" BorderBrush="#333333" BorderThickness="1">
|
|
<Grid>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="*" />
|
|
<RowDefinition Height="Auto" />
|
|
</Grid.RowDefinitions>
|
|
<TextBlock Grid.Row="0" Text="Log Globale" FontWeight="Bold" Margin="0,0,0,10" FontSize="14" Foreground="#00CC66" />
|
|
<RichTextBox x:Name="LogBox" Grid.Row="1" IsReadOnly="True" VerticalScrollBarVisibility="Auto"
|
|
Background="#0f0f0f" Foreground="#CCCCCC" Padding="8"
|
|
FontFamily="Consolas" FontSize="11" BorderBrush="#333333" BorderThickness="1" />
|
|
<Button x:Name="ClearGlobalLogButton" Grid.Row="2" Content="Pulisci Log" Click="ClearGlobalLogButton_Click"
|
|
Style="{StaticResource SmallButtonStyle}" IsEnabled="True"
|
|
Background="#666" Padding="10,8" Height="32" FontSize="11" Margin="0,8,0,0" HorizontalAlignment="Stretch" />
|
|
</Grid>
|
|
</Border>
|
|
</Grid>
|
|
|
|
<GridSplitter Grid.Row="3" Height="8" HorizontalAlignment="Stretch" Background="#333333" />
|
|
|
|
<!-- Dettagli Asta Selezionata - 3 Pannelli Affiancati -->
|
|
<Border Grid.Row="4" Background="#1a1a1a" Padding="8" CornerRadius="6" BorderBrush="#333333" BorderThickness="1">
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="*" MinWidth="250" />
|
|
<ColumnDefinition Width="4" />
|
|
<ColumnDefinition Width="*" MinWidth="200" />
|
|
<ColumnDefinition Width="4" />
|
|
<ColumnDefinition Width="*" MinWidth="200" />
|
|
</Grid.ColumnDefinitions>
|
|
|
|
<!-- PANNELLO 1: Impostazioni Asta -->
|
|
<Border Grid.Column="0" Background="#0f0f0f" Padding="12" CornerRadius="6" BorderBrush="#333333" BorderThickness="1">
|
|
<Grid>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="*" />
|
|
<RowDefinition Height="Auto" />
|
|
</Grid.RowDefinitions>
|
|
|
|
<!-- Header -->
|
|
<Grid Grid.Row="0" Margin="0,0,0,12">
|
|
<TextBlock Text="Impostazioni" FontSize="13" FontWeight="Bold" Foreground="#00CC66" VerticalAlignment="Center" />
|
|
</Grid>
|
|
|
|
<!-- Nome Asta -->
|
|
<ScrollViewer Grid.Row="1" VerticalScrollBarVisibility="Auto">
|
|
<StackPanel>
|
|
<TextBlock x:Name="SelectedAuctionName" Text="Seleziona un'asta dalla griglia"
|
|
FontSize="12" FontWeight="SemiBold" Foreground="#FFFFFF" TextWrapping="Wrap" Margin="0,0,0,16" />
|
|
|
|
<!-- Link asta e pulsanti -->
|
|
<Grid Margin="0,0,0,12">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="*" />
|
|
<ColumnDefinition Width="Auto" />
|
|
<ColumnDefinition Width="Auto" />
|
|
</Grid.ColumnDefinitions>
|
|
<TextBox x:Name="SelectedAuctionUrl" Text="" IsReadOnly="True" MinWidth="220" Margin="0,0,8,0" VerticalAlignment="Center" Background="#181818" Foreground="#00CCFF" BorderBrush="#333" BorderThickness="1" FontSize="11" Grid.Column="0" HorizontalAlignment="Stretch" />
|
|
<Button Content="Apri" x:Name="OpenAuctionButton" Click="GridOpenAuction_Click" Style="{StaticResource SmallButtonStyle}" Background="#0099FF" Padding="10,6" Margin="0,0,4,0" Height="28" MinWidth="60" FontSize="11" Grid.Column="1" />
|
|
<Button Content="Copia" x:Name="CopyAuctionUrlButton" Click="CopyAuctionUrlButton_Click" Style="{StaticResource SmallButtonStyle}" Background="#666" Padding="10,6" Height="28" MinWidth="60" FontSize="11" Grid.Column="2" />
|
|
</Grid>
|
|
|
|
<UniformGrid Columns="2" Margin="0,0,0,8">
|
|
<StackPanel Margin="0,0,4,0">
|
|
<TextBlock Text="Timer (s)" FontSize="10" Margin="0,0,0,4" Foreground="#999" />
|
|
<TextBox x:Name="SelectedTimerClick" Text="0" TextChanged="SelectedTimerClick_TextChanged"
|
|
Background="#1a1a1a" Foreground="#FFF" Padding="8" FontSize="12" BorderBrush="#444" BorderThickness="1" />
|
|
</StackPanel>
|
|
<StackPanel Margin="4,0,0,0">
|
|
<TextBlock Text="Delay (ms)" FontSize="10" Margin="0,0,0,4" Foreground="#999" />
|
|
<TextBox x:Name="SelectedDelayMs" Text="50" TextChanged="SelectedDelayMs_TextChanged"
|
|
Background="#1a1a1a" Foreground="#FFF" Padding="8" FontSize="12" BorderBrush="#444" BorderThickness="1" />
|
|
</StackPanel>
|
|
</UniformGrid>
|
|
|
|
<UniformGrid Columns="2" Margin="0,0,0,8">
|
|
<StackPanel Margin="0,0,4,0">
|
|
<TextBlock Text="Min EUR" FontSize="10" Margin="0,0,0,4" Foreground="#999" />
|
|
<TextBox x:Name="SelectedMinPrice" Text="0" TextChanged="SelectedMinPrice_TextChanged"
|
|
Background="#1a1a1a" Foreground="#FFF" Padding="8" FontSize="12" BorderBrush="#444" BorderThickness="1" />
|
|
</StackPanel>
|
|
<StackPanel Margin="4,0,0,0">
|
|
<TextBlock Text="Max EUR" FontSize="10" Margin="0,0,0,4" Foreground="#999" />
|
|
<TextBox x:Name="SelectedMaxPrice" Text="0" TextChanged="SelectedMaxPrice_TextChanged"
|
|
Background="#1a1a1a" Foreground="#FFF" Padding="8" FontSize="12" BorderBrush="#444" BorderThickness="1" />
|
|
</StackPanel>
|
|
</UniformGrid>
|
|
|
|
<UniformGrid Columns="2" Margin="0,0,0,12">
|
|
<StackPanel Margin="0,0,4,0">
|
|
<TextBlock Text="Min Resets" FontSize="10" Margin="0,0,0,4" Foreground="#999" />
|
|
<TextBox x:Name="SelectedMinResets" Text="0" TextChanged="SelectedMinResets_TextChanged"
|
|
Background="#1a1a1a" Foreground="#FFF" Padding="8" FontSize="12" BorderBrush="#444" BorderThickness="1" />
|
|
</StackPanel>
|
|
<StackPanel Margin="4,0,0,0">
|
|
<TextBlock Text="Max Resets (0=inf)" FontSize="10" Margin="0,0,0,4" Foreground="#999" />
|
|
<TextBox x:Name="SelectedMaxResets" Text="0" TextChanged="SelectedMaxResets_TextChanged"
|
|
Background="#1a1a1a" Foreground="#FFF" Padding="8" FontSize="12" BorderBrush="#444" BorderThickness="1" />
|
|
</StackPanel>
|
|
</UniformGrid>
|
|
|
|
<UniformGrid Columns="2" Margin="0,0,0,12">
|
|
<StackPanel Margin="0,0,4,0">
|
|
<TextBlock Text="Max Clicks (0=inf)" FontSize="10" Margin="0,0,0,4" Foreground="#999" />
|
|
<TextBox x:Name="SelectedMaxClicks" Text="{Binding MaxClicks, Mode=TwoWay}" Background="#1a1a1a" Foreground="#FFF" Padding="8" FontSize="12" BorderBrush="#444" BorderThickness="1" />
|
|
</StackPanel>
|
|
<StackPanel />
|
|
</UniformGrid>
|
|
</StackPanel>
|
|
</ScrollViewer>
|
|
|
|
<!-- Reset Button -->
|
|
<Button Grid.Row="2" x:Name="ResetSettingsButton" Content="Reset Impostazioni" Click="ResetSettingsButton_Click"
|
|
Style="{StaticResource SmallButtonStyle}" IsEnabled="False"
|
|
Background="#666" Padding="10,8" Height="32" FontSize="11" Margin="0,8,0,0" />
|
|
</Grid>
|
|
</Border>
|
|
|
|
<GridSplitter Grid.Column="1" Width="4" HorizontalAlignment="Stretch" Background="#333333" />
|
|
|
|
<!-- PANNELLO 2: Utenti -->
|
|
<Border Grid.Column="2" Background="#0f0f0f" Padding="12" CornerRadius="6" BorderBrush="#333333" BorderThickness="1">
|
|
<Grid>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="*" />
|
|
<RowDefinition Height="Auto" />
|
|
</Grid.RowDefinitions>
|
|
|
|
<StackPanel Grid.Row="0" Orientation="Horizontal" Margin="0,0,0,10">
|
|
<TextBlock Text="Utenti: " FontSize="13" FontWeight="Bold" Foreground="#00CC66" />
|
|
<TextBlock x:Name="SelectedAuctionBiddersCount" Text="0" FontWeight="Bold" Foreground="#FFF" FontSize="13" />
|
|
</StackPanel>
|
|
|
|
<DataGrid x:Name="SelectedAuctionBiddersGrid" Grid.Row="1" AutoGenerateColumns="False"
|
|
Background="#1a1a1a" Foreground="#FFFFFF" BorderBrush="#333333" BorderThickness="1"
|
|
GridLinesVisibility="Horizontal" HorizontalGridLinesBrush="#333333"
|
|
RowBackground="#1a1a1a" AlternatingRowBackground="#222222"
|
|
IsReadOnly="True" SelectionMode="Single">
|
|
<DataGrid.Resources>
|
|
<Style TargetType="DataGridColumnHeader">
|
|
<Setter Property="Background" Value="#2a2a2a" />
|
|
<Setter Property="Foreground" Value="#FFFFFF" />
|
|
<Setter Property="FontWeight" Value="Bold" />
|
|
<Setter Property="Padding" Value="8,6" />
|
|
<Setter Property="BorderThickness" Value="0,0,0,2" />
|
|
<Setter Property="BorderBrush" Value="#00CC66" />
|
|
<Setter Property="FontSize" Value="11" />
|
|
</Style>
|
|
<Style TargetType="DataGridRow">
|
|
<Setter Property="Height" Value="28" />
|
|
<Style.Triggers>
|
|
<Trigger Property="IsSelected" Value="True">
|
|
<Setter Property="Background" Value="#0099FF" />
|
|
<Setter Property="Foreground" Value="White" />
|
|
</Trigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
<Style TargetType="DataGridCell">
|
|
<Setter Property="BorderThickness" Value="0" />
|
|
<Setter Property="Padding" Value="8,4" />
|
|
<Setter Property="FontSize" Value="11" />
|
|
</Style>
|
|
</DataGrid.Resources>
|
|
<DataGrid.Columns>
|
|
<DataGridTextColumn Header="Utente" Binding="{Binding Username}" Width="*" />
|
|
<DataGridTextColumn Header="Punt." Binding="{Binding BidCount}" Width="50" />
|
|
<DataGridTextColumn Header="Ultima" Binding="{Binding LastBidTimeDisplay}" Width="60" />
|
|
</DataGrid.Columns>
|
|
</DataGrid>
|
|
|
|
<Button Grid.Row="2" x:Name="ClearBiddersButton" Content="Pulisci" Click="ClearBiddersButton_Click"
|
|
Style="{StaticResource SmallButtonStyle}" IsEnabled="False"
|
|
Background="#666" Padding="10,8" Height="32" FontSize="11" Margin="0,8,0,0" />
|
|
</Grid>
|
|
</Border>
|
|
|
|
<GridSplitter Grid.Column="3" Width="4" HorizontalAlignment="Stretch" Background="#333333" />
|
|
|
|
<!-- PANNELLO 3: Log Asta -->
|
|
<Border Grid.Column="4" Background="#0f0f0f" Padding="12" CornerRadius="6" BorderBrush="#333333" BorderThickness="1">
|
|
<Grid>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="*" />
|
|
<RowDefinition Height="Auto" />
|
|
</Grid.RowDefinitions>
|
|
|
|
<TextBlock Grid.Row="0" Text="Log Asta" FontSize="13" FontWeight="Bold" Foreground="#00CC66" Margin="0,0,0,10" />
|
|
|
|
<RichTextBox x:Name="SelectedAuctionLog" Grid.Row="1" IsReadOnly="True"
|
|
VerticalScrollBarVisibility="Auto" Background="#1a1a1a" Foreground="#CCC"
|
|
Padding="8" FontSize="10" FontFamily="Consolas" BorderBrush="#333333" BorderThickness="1" />
|
|
|
|
<Button Grid.Row="2" x:Name="ClearLogButton" Content="Pulisci Log" Click="ClearLogButton_Click"
|
|
Style="{StaticResource SmallButtonStyle}" IsEnabled="False"
|
|
Background="#666" Padding="10,8" Height="32" FontSize="11" Margin="0,8,0,0" HorizontalAlignment="Stretch" />
|
|
</Grid>
|
|
</Border>
|
|
</Grid>
|
|
</Border>
|
|
</Grid>
|
|
</Window>
|