Refactoring e nuove funzionalità per AutoBidder v4.0
* Aggiornamento alla versione 4.0.0 * Refactoring architetturale: introdotte partial classes e UserControls modulari per migliorare manutenibilità e leggibilità. * Aggiunti nuovi UserControls: `AuctionMonitorControl`, `BrowserControl`, `SettingsControl`, `StatisticsControl`. * Introdotto supporto per WebView2 per il browser integrato. * Migliorata gestione delle aste: aggiunta/rimozione tramite URL o ID, configurazione predefinita. * Nuove funzionalità di esportazione: supporto CSV, JSON, XML con opzioni configurabili. * Logging avanzato: codifica colore per severità e auto-scroll. * Tema scuro moderno e miglioramenti UI/UX: sidebar di navigazione, griglie virtualizzate, icone emoji. * Persistenza dati: salvataggio automatico di aste e impostazioni in file JSON. * Documentazione aggiornata: `README.md`, `CHANGELOG.md` e nuovi file di supporto. * Miglioramenti alla sicurezza: cookie di sessione salvati in modo sicuro con DPAPI. * Preparazione per future estensioni: placeholder per funzionalità avanzate e struttura modulare.
This commit is contained in:
@@ -0,0 +1,566 @@
|
||||
<UserControl x:Class="AutoBidder.Controls.AuctionMonitorControl"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="800" d:DesignWidth="1200"
|
||||
Background="#1E1E1E">
|
||||
|
||||
<UserControl.Resources>
|
||||
<!-- Rounded Button Style -->
|
||||
<Style x:Key="RoundedButton" TargetType="Button">
|
||||
<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>
|
||||
<Setter Property="Foreground" Value="White"/>
|
||||
<Setter Property="FontWeight" Value="Bold"/>
|
||||
<Setter Property="BorderThickness" Value="0"/>
|
||||
<Setter Property="Cursor" Value="Hand"/>
|
||||
<Setter Property="Padding" Value="15,10"/>
|
||||
<Setter Property="FontSize" Value="13"/>
|
||||
</Style>
|
||||
|
||||
<!-- Small Rounded Button -->
|
||||
<Style x:Key="SmallRoundedButton" TargetType="Button" BasedOn="{StaticResource RoundedButton}">
|
||||
<Setter Property="Padding" Value="12,6"/>
|
||||
<Setter Property="FontSize" Value="12"/>
|
||||
</Style>
|
||||
|
||||
<!-- Card Style -->
|
||||
<Style x:Key="CardBorder" TargetType="Border">
|
||||
<Setter Property="Background" Value="#252526"/>
|
||||
<Setter Property="BorderBrush" Value="#3E3E42"/>
|
||||
<Setter Property="BorderThickness" Value="1"/>
|
||||
<Setter Property="CornerRadius" Value="4"/>
|
||||
<Setter Property="Margin" Value="5"/>
|
||||
</Style>
|
||||
</UserControl.Resources>
|
||||
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<!-- Header -->
|
||||
<Border Grid.Row="0" Background="#2D2D30" Padding="15" BorderBrush="#3E3E42" BorderThickness="0,0,0,1">
|
||||
<Grid>
|
||||
<!-- Info Utente (Left) -->
|
||||
<StackPanel Orientation="Vertical" VerticalAlignment="Center" HorizontalAlignment="Left">
|
||||
<TextBlock x:Name="UsernameText"
|
||||
Text="Utente: Non configurato"
|
||||
Foreground="#00D800"
|
||||
FontSize="13"
|
||||
FontWeight="SemiBold"
|
||||
Margin="0,0,0,5"/>
|
||||
|
||||
<StackPanel Orientation="Horizontal" Margin="0,0,0,3">
|
||||
<TextBlock Text="Puntate: "
|
||||
Foreground="#CCCCCC"
|
||||
FontSize="12"/>
|
||||
<TextBlock x:Name="RemainingBidsText"
|
||||
Text="0"
|
||||
Foreground="#CCCCCC"
|
||||
FontSize="12"
|
||||
FontWeight="Bold"/>
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<TextBlock Text="Aste vinte da confermare: "
|
||||
Foreground="#FFB700"
|
||||
FontSize="12"/>
|
||||
<TextBlock x:Name="BannerAsteDaRiscattare"
|
||||
Text="0"
|
||||
Foreground="#FFB700"
|
||||
FontSize="12"
|
||||
FontWeight="Bold"/>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
|
||||
<!-- Control Buttons (Right) -->
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
|
||||
<Button x:Name="StartButton"
|
||||
Content="Avvia Tutti"
|
||||
Background="#00D800"
|
||||
Style="{StaticResource RoundedButton}"
|
||||
Margin="5,0"
|
||||
Click="StartButton_Click"/>
|
||||
|
||||
<Button x:Name="PauseAllButton"
|
||||
Content="Pausa Tutti"
|
||||
Background="#FFB700"
|
||||
Style="{StaticResource RoundedButton}"
|
||||
Margin="5,0"
|
||||
Click="PauseAllButton_Click"/>
|
||||
|
||||
<Button x:Name="StopButton"
|
||||
Content="Ferma Tutti"
|
||||
Background="#E81123"
|
||||
Style="{StaticResource RoundedButton}"
|
||||
Margin="5,0"
|
||||
Click="StopButton_Click"/>
|
||||
|
||||
<!-- Separator -->
|
||||
<Border Width="1"
|
||||
Background="#3E3E42"
|
||||
Margin="10,5"/>
|
||||
|
||||
<!-- Export Button -->
|
||||
<Button x:Name="ExportButton"
|
||||
Content="Esporta"
|
||||
Background="#007ACC"
|
||||
Style="{StaticResource RoundedButton}"
|
||||
Margin="5,0"
|
||||
Click="ExportButton_Click"
|
||||
ToolTip="Esporta dati aste monitorate"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
<!-- Main Layout: 2 rows -->
|
||||
<Grid Grid.Row="1" Margin="5">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="*"/>
|
||||
<RowDefinition Height="5"/>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<!-- TOP ROW: Auction Grid (2/3) + Global Log (1/3) -->
|
||||
<Grid Grid.Row="0">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="2*"/>
|
||||
<ColumnDefinition Width="5"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<!-- TOP LEFT: Auction Grid -->
|
||||
<Border Grid.Column="0" Style="{StaticResource CardBorder}">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<!-- Grid Header -->
|
||||
<Border Grid.Row="0" Background="#2D2D30" Padding="10,8" CornerRadius="4,4,0,0">
|
||||
<Grid>
|
||||
<TextBlock x:Name="MonitorateTitle"
|
||||
Text="Aste monitorate: 0"
|
||||
Foreground="#00D800"
|
||||
FontSize="14"
|
||||
FontWeight="Bold"
|
||||
VerticalAlignment="Center"/>
|
||||
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right">
|
||||
<Button Content="Aggiungi"
|
||||
x:Name="AddUrlButton"
|
||||
Background="#007ACC"
|
||||
Style="{StaticResource SmallRoundedButton}"
|
||||
Padding="10,5"
|
||||
FontSize="11"
|
||||
Margin="3,0"
|
||||
Click="AddUrlButton_Click"/>
|
||||
|
||||
<Button Content="Rimuovi"
|
||||
x:Name="RemoveUrlButton"
|
||||
Background="#3E3E42"
|
||||
Style="{StaticResource SmallRoundedButton}"
|
||||
Padding="10,5"
|
||||
FontSize="11"
|
||||
Margin="3,0"
|
||||
Click="RemoveUrlButton_Click"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
<!-- Auction DataGrid -->
|
||||
<DataGrid Grid.Row="1"
|
||||
x:Name="MultiAuctionsGrid"
|
||||
AutoGenerateColumns="False"
|
||||
SelectionMode="Single"
|
||||
CanUserAddRows="False"
|
||||
IsReadOnly="True"
|
||||
GridLinesVisibility="Horizontal"
|
||||
HeadersVisibility="Column"
|
||||
Background="#1E1E1E"
|
||||
Foreground="#CCCCCC"
|
||||
RowBackground="#1E1E1E"
|
||||
AlternatingRowBackground="#252526"
|
||||
BorderThickness="0"
|
||||
SelectionChanged="MultiAuctionsGrid_SelectionChanged"
|
||||
KeyDown="MultiAuctionsGrid_KeyDown">
|
||||
<DataGrid.ColumnHeaderStyle>
|
||||
<Style TargetType="DataGridColumnHeader">
|
||||
<Setter Property="Background" Value="#2D2D30"/>
|
||||
<Setter Property="Foreground" Value="#CCCCCC"/>
|
||||
<Setter Property="FontWeight" Value="Bold"/>
|
||||
<Setter Property="Padding" Value="8,6"/>
|
||||
<Setter Property="BorderThickness" Value="0,0,1,1"/>
|
||||
<Setter Property="BorderBrush" Value="#3E3E42"/>
|
||||
<Setter Property="FontSize" Value="11"/>
|
||||
</Style>
|
||||
</DataGrid.ColumnHeaderStyle>
|
||||
<DataGrid.CellStyle>
|
||||
<Style TargetType="DataGridCell">
|
||||
<Setter Property="BorderThickness" Value="0"/>
|
||||
<Setter Property="Padding" Value="8,4"/>
|
||||
<Setter Property="Background" Value="Transparent"/>
|
||||
<Setter Property="Foreground" Value="#CCCCCC"/>
|
||||
<Setter Property="FontSize" Value="11"/>
|
||||
<Style.Triggers>
|
||||
<Trigger Property="IsSelected" Value="True">
|
||||
<Setter Property="Background" Value="#094771"/>
|
||||
<Setter Property="Foreground" Value="White"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</DataGrid.CellStyle>
|
||||
<DataGrid.Columns>
|
||||
<DataGridTextColumn Header="ID" Binding="{Binding AuctionId}" Width="90"/>
|
||||
<DataGridTextColumn Header="Asta" Binding="{Binding Name}" Width="2*"/>
|
||||
<DataGridTextColumn Header="Latenza" Binding="{Binding AuctionInfo.PollingLatencyMs}" Width="70"/>
|
||||
<DataGridTextColumn Header="Stato" Binding="{Binding StatusDisplay}" Width="100"/>
|
||||
<DataGridTextColumn Header="Timer" Binding="{Binding TimerDisplay}" Width="90"/>
|
||||
<DataGridTextColumn Header="Prezzo" Binding="{Binding PriceDisplay}" Width="70"/>
|
||||
<DataGridTextColumn Header="Ultimo" Binding="{Binding LastBidder}" Width="110"/>
|
||||
<DataGridTextColumn Header="Clicks" Binding="{Binding MyClicks}" Width="60"/>
|
||||
<DataGridTextColumn Header="Resets" Binding="{Binding ResetCount}" Width="60"/>
|
||||
<DataGridTemplateColumn Header="Azioni" Width="260">
|
||||
<DataGridTemplateColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<Button Content="Avvia"
|
||||
Background="#00D800"
|
||||
Style="{StaticResource SmallRoundedButton}"
|
||||
Padding="6,3"
|
||||
FontSize="10"
|
||||
Margin="1"/>
|
||||
<Button Content="Pausa"
|
||||
Background="#FFB700"
|
||||
Style="{StaticResource SmallRoundedButton}"
|
||||
Padding="6,3"
|
||||
FontSize="10"
|
||||
Margin="1"/>
|
||||
<Button Content="Ferma"
|
||||
Background="#E81123"
|
||||
Style="{StaticResource SmallRoundedButton}"
|
||||
Padding="6,3"
|
||||
FontSize="10"
|
||||
Margin="1"/>
|
||||
<Button Content="Punta"
|
||||
Background="#9B4F96"
|
||||
Style="{StaticResource SmallRoundedButton}"
|
||||
Padding="6,3"
|
||||
FontSize="10"
|
||||
Margin="1"/>
|
||||
</StackPanel>
|
||||
</DataTemplate>
|
||||
</DataGridTemplateColumn.CellTemplate>
|
||||
</DataGridTemplateColumn>
|
||||
</DataGrid.Columns>
|
||||
</DataGrid>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
<!-- Vertical Splitter -->
|
||||
<GridSplitter Grid.Column="1"
|
||||
Width="5"
|
||||
HorizontalAlignment="Stretch"
|
||||
Background="#3E3E42"
|
||||
ResizeBehavior="PreviousAndNext"/>
|
||||
|
||||
<!-- TOP RIGHT: Global Log -->
|
||||
<Border Grid.Column="2" Style="{StaticResource CardBorder}">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<!-- Header -->
|
||||
<Border Grid.Row="0" Background="#2D2D30" Padding="10,8" CornerRadius="4,4,0,0">
|
||||
<Grid>
|
||||
<TextBlock Text="Log Globale"
|
||||
Foreground="#00D800"
|
||||
FontSize="13"
|
||||
FontWeight="Bold"
|
||||
VerticalAlignment="Center"/>
|
||||
<Button x:Name="ClearGlobalLogButton"
|
||||
Content="Pulisci"
|
||||
HorizontalAlignment="Right"
|
||||
Background="#3E3E42"
|
||||
Style="{StaticResource SmallRoundedButton}"
|
||||
Padding="8,4"
|
||||
FontSize="10"
|
||||
Click="ClearGlobalLogButton_Click"/>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
<!-- Log Box -->
|
||||
<RichTextBox Grid.Row="1"
|
||||
x:Name="LogBox"
|
||||
IsReadOnly="True"
|
||||
VerticalScrollBarVisibility="Auto"
|
||||
Background="#1E1E1E"
|
||||
Foreground="#00D800"
|
||||
BorderThickness="0"
|
||||
FontFamily="Consolas"
|
||||
FontSize="10"
|
||||
Padding="8"/>
|
||||
</Grid>
|
||||
</Border>
|
||||
</Grid>
|
||||
|
||||
<!-- Horizontal Splitter -->
|
||||
<GridSplitter Grid.Row="1"
|
||||
Height="5"
|
||||
HorizontalAlignment="Stretch"
|
||||
VerticalAlignment="Stretch"
|
||||
Background="#3E3E42"
|
||||
ResizeBehavior="PreviousAndNext"/>
|
||||
|
||||
<!-- BOTTOM ROW: Settings (1/3) + Bidders (1/3) + Auction Log (1/3) -->
|
||||
<Grid Grid.Row="2">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="5"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="5"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<!-- BOTTOM LEFT: Settings (Impostazioni) -->
|
||||
<Border Grid.Column="0" Style="{StaticResource CardBorder}">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="*"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<!-- Header -->
|
||||
<Border Grid.Row="0" Background="#2D2D30" Padding="10,8" CornerRadius="4,4,0,0">
|
||||
<TextBlock Text="Impostazioni"
|
||||
Foreground="#00D800"
|
||||
FontSize="13"
|
||||
FontWeight="Bold"/>
|
||||
</Border>
|
||||
|
||||
<!-- Settings Content -->
|
||||
<ScrollViewer Grid.Row="1" VerticalScrollBarVisibility="Auto">
|
||||
<StackPanel Margin="10">
|
||||
<TextBlock x:Name="SelectedAuctionName"
|
||||
Text="Seleziona un'asta"
|
||||
Foreground="White"
|
||||
FontSize="13"
|
||||
FontWeight="Bold"
|
||||
Margin="0,0,0,8"/>
|
||||
|
||||
<TextBox x:Name="SelectedAuctionUrl"
|
||||
IsReadOnly="True"
|
||||
Background="#1E1E1E"
|
||||
Foreground="#999999"
|
||||
BorderBrush="#3E3E42"
|
||||
BorderThickness="1"
|
||||
Padding="6"
|
||||
FontSize="10"
|
||||
Margin="0,0,0,8"
|
||||
TextWrapping="Wrap"
|
||||
MaxHeight="50"/>
|
||||
|
||||
<UniformGrid Columns="3" Margin="0,0,0,15">
|
||||
<Button Content="Apri"
|
||||
Background="#007ACC"
|
||||
Style="{StaticResource SmallRoundedButton}"
|
||||
Padding="8,5"
|
||||
FontSize="10"
|
||||
Margin="0,0,3,0"/>
|
||||
<Button x:Name="CopyAuctionUrlButton"
|
||||
Content="Copia"
|
||||
Background="#9B4F96"
|
||||
Style="{StaticResource SmallRoundedButton}"
|
||||
Padding="8,5"
|
||||
FontSize="10"
|
||||
Margin="0,0,3,0"
|
||||
Click="CopyAuctionUrlButton_Click"/>
|
||||
<Button Content="Esporta"
|
||||
Background="#106EBE"
|
||||
Style="{StaticResource SmallRoundedButton}"
|
||||
Padding="8,5"
|
||||
FontSize="10"/>
|
||||
</UniformGrid>
|
||||
|
||||
<!-- Settings Grid - Campi piu larghi (100px) -->
|
||||
<Grid Margin="0,0,0,8">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="100"/>
|
||||
<ColumnDefinition Width="15"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="100"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<!-- Row 1 -->
|
||||
<TextBlock Grid.Row="0" Grid.Column="0" Text="Timer (s):" Foreground="#CCCCCC" FontSize="11" Margin="0,6" VerticalAlignment="Center"/>
|
||||
<TextBox Grid.Row="0" Grid.Column="1" x:Name="SelectedTimerClick" Background="#1E1E1E" Foreground="White" BorderBrush="#3E3E42" Padding="6" Margin="5,6" FontSize="11" TextChanged="SelectedTimerClick_TextChanged"/>
|
||||
|
||||
<TextBlock Grid.Row="0" Grid.Column="3" Text="Delay (ms):" Foreground="#CCCCCC" FontSize="11" Margin="0,6" VerticalAlignment="Center"/>
|
||||
<TextBox Grid.Row="0" Grid.Column="4" x:Name="SelectedDelayMs" Background="#1E1E1E" Foreground="White" BorderBrush="#3E3E42" Padding="6" Margin="5,6" FontSize="11" TextChanged="SelectedDelayMs_TextChanged"/>
|
||||
|
||||
<!-- Row 2 -->
|
||||
<TextBlock Grid.Row="1" Grid.Column="0" Text="Min EUR:" Foreground="#CCCCCC" FontSize="11" Margin="0,6" VerticalAlignment="Center"/>
|
||||
<TextBox Grid.Row="1" Grid.Column="1" x:Name="SelectedMinPrice" Background="#1E1E1E" Foreground="White" BorderBrush="#3E3E42" Padding="6" Margin="5,6" FontSize="11" TextChanged="SelectedMinPrice_TextChanged"/>
|
||||
|
||||
<TextBlock Grid.Row="1" Grid.Column="3" Text="Max EUR:" Foreground="#CCCCCC" FontSize="11" Margin="0,6" VerticalAlignment="Center"/>
|
||||
<TextBox Grid.Row="1" Grid.Column="4" x:Name="SelectedMaxPrice" Background="#1E1E1E" Foreground="White" BorderBrush="#3E3E42" Padding="6" Margin="5,6" FontSize="11" TextChanged="SelectedMaxPrice_TextChanged"/>
|
||||
|
||||
<!-- Row 3 -->
|
||||
<TextBlock Grid.Row="2" Grid.Column="0" Text="Max Clicks:" Foreground="#CCCCCC" FontSize="11" Margin="0,6" VerticalAlignment="Center"/>
|
||||
<TextBox Grid.Row="2" Grid.Column="1" x:Name="SelectedMaxClicks" Background="#1E1E1E" Foreground="White" BorderBrush="#3E3E42" Padding="6" Margin="5,6" FontSize="11" TextChanged="SelectedMaxClicks_TextChanged"/>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
</ScrollViewer>
|
||||
|
||||
<!-- Footer Button (bottom like other panels) -->
|
||||
<Button Grid.Row="2"
|
||||
x:Name="ResetSettingsButton"
|
||||
Content="Reset"
|
||||
Background="#3E3E42"
|
||||
Style="{StaticResource SmallRoundedButton}"
|
||||
HorizontalAlignment="Stretch"
|
||||
Margin="5"
|
||||
Click="ResetSettingsButton_Click"/>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
<!-- Vertical Splitter 1 -->
|
||||
<GridSplitter Grid.Column="1"
|
||||
Width="5"
|
||||
HorizontalAlignment="Stretch"
|
||||
Background="#3E3E42"
|
||||
ResizeBehavior="PreviousAndNext"/>
|
||||
|
||||
<!-- BOTTOM CENTER: Bidders List (Utenti) -->
|
||||
<Border Grid.Column="2" Style="{StaticResource CardBorder}">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="*"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<!-- Header -->
|
||||
<Border Grid.Row="0" Background="#2D2D30" Padding="10,8" CornerRadius="4,4,0,0">
|
||||
<TextBlock x:Name="SelectedAuctionBiddersCount"
|
||||
Text="Utenti: 0"
|
||||
Foreground="#00D800"
|
||||
FontSize="13"
|
||||
FontWeight="Bold"/>
|
||||
</Border>
|
||||
|
||||
<!-- Bidders Grid -->
|
||||
<DataGrid Grid.Row="1"
|
||||
x:Name="SelectedAuctionBiddersGrid"
|
||||
AutoGenerateColumns="False"
|
||||
IsReadOnly="True"
|
||||
Background="#1E1E1E"
|
||||
Foreground="#CCCCCC"
|
||||
RowBackground="#1E1E1E"
|
||||
AlternatingRowBackground="#252526"
|
||||
GridLinesVisibility="None"
|
||||
HeadersVisibility="Column"
|
||||
BorderThickness="0"
|
||||
FontSize="11">
|
||||
<DataGrid.ColumnHeaderStyle>
|
||||
<Style TargetType="DataGridColumnHeader">
|
||||
<Setter Property="Background" Value="#2D2D30"/>
|
||||
<Setter Property="Foreground" Value="#CCCCCC"/>
|
||||
<Setter Property="FontWeight" Value="SemiBold"/>
|
||||
<Setter Property="Padding" Value="8,5"/>
|
||||
<Setter Property="FontSize" Value="11"/>
|
||||
</Style>
|
||||
</DataGrid.ColumnHeaderStyle>
|
||||
<DataGrid.Columns>
|
||||
<DataGridTextColumn Header="Utente" Binding="{Binding Username}" Width="*"/>
|
||||
<DataGridTextColumn Header="Punt." Binding="{Binding BidCount}" Width="50"/>
|
||||
<DataGridTextColumn Header="Ultima" Binding="{Binding LastBidTimeDisplay}" Width="70"/>
|
||||
</DataGrid.Columns>
|
||||
</DataGrid>
|
||||
|
||||
<!-- Footer Button -->
|
||||
<Button Grid.Row="2"
|
||||
x:Name="ClearBiddersButton"
|
||||
Content="Pulisci"
|
||||
Background="#3E3E42"
|
||||
Style="{StaticResource SmallRoundedButton}"
|
||||
HorizontalAlignment="Stretch"
|
||||
Margin="5"
|
||||
Click="ClearBiddersButton_Click"/>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
<!-- Vertical Splitter 2 -->
|
||||
<GridSplitter Grid.Column="3"
|
||||
Width="5"
|
||||
HorizontalAlignment="Stretch"
|
||||
Background="#3E3E42"
|
||||
ResizeBehavior="PreviousAndNext"/>
|
||||
|
||||
<!-- BOTTOM RIGHT: Auction Log -->
|
||||
<Border Grid.Column="4" Style="{StaticResource CardBorder}">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<!-- Header -->
|
||||
<Border Grid.Row="0" Background="#2D2D30" Padding="10,8" CornerRadius="4,4,0,0">
|
||||
<Grid>
|
||||
<TextBlock Text="Log Asta"
|
||||
Foreground="#00D800"
|
||||
FontSize="13"
|
||||
FontWeight="Bold"
|
||||
VerticalAlignment="Center"/>
|
||||
<Button x:Name="ClearLogButton"
|
||||
Content="Pulisci"
|
||||
HorizontalAlignment="Right"
|
||||
Background="#3E3E42"
|
||||
Style="{StaticResource SmallRoundedButton}"
|
||||
Padding="8,4"
|
||||
FontSize="10"
|
||||
Click="ClearLogButton_Click"/>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
<!-- Auction Log Box -->
|
||||
<RichTextBox Grid.Row="1"
|
||||
x:Name="SelectedAuctionLog"
|
||||
IsReadOnly="True"
|
||||
VerticalScrollBarVisibility="Auto"
|
||||
Background="#1E1E1E"
|
||||
Foreground="#CCCCCC"
|
||||
BorderThickness="0"
|
||||
FontFamily="Consolas"
|
||||
FontSize="10"
|
||||
Padding="8"/>
|
||||
</Grid>
|
||||
</Border>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
Reference in New Issue
Block a user