Files
Encelado/DesktopBot/Themes/DarkTheme.xaml
T
2026-06-09 18:29:41 +02:00

415 lines
22 KiB
XML

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:conv="clr-namespace:DesktopBot.Converters">
<!-- ================================== -->
<!-- TRADING BOT - DARK THEME -->
<!-- Antracite / Smeraldo / Neon -->
<!-- ================================== -->
<!-- Colori Principali -->
<Color x:Key="BackgroundDarkColor">#FF121214</Color> <!-- Nero lavagna -->
<Color x:Key="BackgroundPanelColor">#FF1E1E24</Color> <!-- Antracite scuro -->
<Color x:Key="BackgroundCardColor">#FF27272F</Color> <!-- Card leggermente più chiaro -->
<Color x:Key="AccentGreenColor">#FF00E676</Color> <!-- Verde Smeraldo -->
<Color x:Key="AccentRedColor">#FFFF1744</Color> <!-- Rosso Neon -->
<Color x:Key="TextPrimaryColor">#FFEAEAEA</Color> <!-- Testo principale -->
<Color x:Key="TextSecondaryColor">#FF8888A0</Color> <!-- Testo secondario -->
<Color x:Key="BorderColor">#FF3A3A4A</Color> <!-- Bordi sottili -->
<Color x:Key="NavActiveColor">#FF2D2D38</Color> <!-- Nav item attivo -->
<!-- Brush -->
<SolidColorBrush x:Key="BackgroundDarkBrush" Color="{StaticResource BackgroundDarkColor}"/>
<SolidColorBrush x:Key="BackgroundPanelBrush" Color="{StaticResource BackgroundPanelColor}"/>
<SolidColorBrush x:Key="BackgroundCardBrush" Color="{StaticResource BackgroundCardColor}"/>
<SolidColorBrush x:Key="AccentGreenBrush" Color="{StaticResource AccentGreenColor}"/>
<SolidColorBrush x:Key="AccentRedBrush" Color="{StaticResource AccentRedColor}"/>
<SolidColorBrush x:Key="TextPrimaryBrush" Color="{StaticResource TextPrimaryColor}"/>
<SolidColorBrush x:Key="TextSecondaryBrush" Color="{StaticResource TextSecondaryColor}"/>
<SolidColorBrush x:Key="BorderBrush" Color="{StaticResource BorderColor}"/>
<SolidColorBrush x:Key="NavActiveBrush" Color="{StaticResource NavActiveColor}"/>
<SolidColorBrush x:Key="TransparentBrush" Color="Transparent"/>
<!-- Converters -->
<conv:BoolVisibilityConverter x:Key="BoolVisibilityConverter"/>
<conv:InvertedBoolVisibilityConverter x:Key="InvertedBoolVisibilityConverter"/>
<conv:NullToVisibilityConverter x:Key="NullToVisibilityConverter"/>
<conv:NotNullToVisibilityConverter x:Key="NotNullToVisibilityConverter"/>
<conv:EmptyStringToVisibilityConverter x:Key="EmptyStringToVisibilityConverter"/>
<conv:ZeroToCollapsedConverter x:Key="ZeroToCollapsedConverter"/>
<conv:InverseBoolConverter x:Key="InverseBoolConverter"/>
<!-- ================================== -->
<!-- STILI BASE -->
<!-- ================================== -->
<!-- Stile testo base -->
<Style x:Key="TextBase" TargetType="TextBlock">
<Setter Property="Foreground" Value="{StaticResource TextPrimaryBrush}"/>
<Setter Property="FontFamily" Value="Segoe UI"/>
<Setter Property="FontSize" Value="13"/>
</Style>
<!-- Titolo sezione -->
<Style x:Key="SectionTitle" TargetType="TextBlock" BasedOn="{StaticResource TextBase}">
<Setter Property="FontSize" Value="20"/>
<Setter Property="FontWeight" Value="SemiBold"/>
<Setter Property="Margin" Value="0,0,0,20"/>
</Style>
<!-- Label secondaria -->
<Style x:Key="LabelSecondary" TargetType="TextBlock" BasedOn="{StaticResource TextBase}">
<Setter Property="Foreground" Value="{StaticResource TextSecondaryBrush}"/>
<Setter Property="FontSize" Value="11"/>
</Style>
<!-- ================================== -->
<!-- STILI INPUT -->
<!-- ================================== -->
<Style x:Key="DarkTextBox" TargetType="TextBox">
<Setter Property="Background" Value="{StaticResource BackgroundDarkBrush}"/>
<Setter Property="Foreground" Value="{StaticResource TextPrimaryBrush}"/>
<Setter Property="BorderBrush" Value="{StaticResource BorderBrush}"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Padding" Value="10,8"/>
<Setter Property="FontFamily" Value="Segoe UI"/>
<Setter Property="FontSize" Value="13"/>
<Setter Property="CaretBrush" Value="{StaticResource AccentGreenBrush}"/>
<Style.Triggers>
<Trigger Property="IsFocused" Value="True">
<Setter Property="BorderBrush" Value="{StaticResource AccentGreenBrush}"/>
</Trigger>
</Style.Triggers>
</Style>
<Style x:Key="DarkComboBox" TargetType="ComboBox">
<Setter Property="Background" Value="{StaticResource BackgroundDarkBrush}"/>
<Setter Property="Foreground" Value="{StaticResource TextPrimaryBrush}"/>
<Setter Property="BorderBrush" Value="{StaticResource BorderBrush}"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Padding" Value="10,8"/>
<Setter Property="FontFamily" Value="Segoe UI"/>
<Setter Property="FontSize" Value="13"/>
<Setter Property="ItemContainerStyle">
<Setter.Value>
<Style TargetType="ComboBoxItem">
<Setter Property="Background" Value="{StaticResource BackgroundCardBrush}"/>
<Setter Property="Foreground" Value="{StaticResource TextPrimaryBrush}"/>
<Setter Property="Padding" Value="10,7"/>
<Setter Property="FontFamily" Value="Segoe UI"/>
<Setter Property="FontSize" Value="13"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ComboBoxItem">
<Border Background="{TemplateBinding Background}"
Padding="{TemplateBinding Padding}">
<ContentPresenter/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsHighlighted" Value="True">
<Setter Property="Background" Value="{StaticResource NavActiveBrush}"/>
<Setter Property="Foreground" Value="{StaticResource AccentGreenBrush}"/>
</Trigger>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="{StaticResource NavActiveBrush}"/>
<Setter Property="Foreground" Value="{StaticResource AccentGreenBrush}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Setter.Value>
</Setter>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ComboBox">
<Grid>
<Border x:Name="border"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="4">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="28"/>
</Grid.ColumnDefinitions>
<!-- Testo selezionato -->
<ContentPresenter x:Name="ContentSite"
Content="{TemplateBinding SelectionBoxItem}"
ContentTemplate="{TemplateBinding SelectionBoxItemTemplate}"
ContentTemplateSelector="{TemplateBinding ItemTemplateSelector}"
Margin="10,8,0,8"
VerticalAlignment="Center"
HorizontalAlignment="Left"
IsHitTestVisible="False"/>
<!-- Freccia dropdown -->
<Path Grid.Column="1"
Data="M0,0 L4,5 L8,0 Z"
Fill="{StaticResource TextSecondaryBrush}"
HorizontalAlignment="Center"
VerticalAlignment="Center"/>
<!-- Pulsante toggle invisibile sopra tutto -->
<ToggleButton Grid.ColumnSpan="2"
IsChecked="{Binding IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}"
Background="Transparent"
BorderThickness="0"
Focusable="False"/>
</Grid>
</Border>
<!-- Popup dropdown -->
<Popup x:Name="Popup"
Placement="Bottom"
IsOpen="{TemplateBinding IsDropDownOpen}"
AllowsTransparency="True"
Focusable="False"
PopupAnimation="Slide">
<Grid MinWidth="{TemplateBinding ActualWidth}"
MaxHeight="{TemplateBinding MaxDropDownHeight}">
<Border Background="{StaticResource BackgroundCardBrush}"
BorderBrush="{StaticResource BorderBrush}"
BorderThickness="1"
CornerRadius="4">
<ScrollViewer VerticalScrollBarVisibility="Auto">
<ItemsPresenter/>
</ScrollViewer>
</Border>
</Grid>
</Popup>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsFocused" Value="True">
<Setter TargetName="border" Property="BorderBrush" Value="{StaticResource AccentGreenBrush}"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="border" Property="BorderBrush" Value="{StaticResource AccentGreenBrush}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!-- ================================== -->
<!-- PULSANTI -->
<!-- ================================== -->
<!-- Pulsante principale Verde -->
<Style x:Key="PrimaryButton" TargetType="Button">
<Setter Property="Background" Value="{StaticResource AccentGreenBrush}"/>
<Setter Property="Foreground" Value="#FF121214"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="Padding" Value="20,10"/>
<Setter Property="FontFamily" Value="Segoe UI"/>
<Setter Property="FontSize" Value="13"/>
<Setter Property="FontWeight" Value="SemiBold"/>
<Setter Property="Cursor" Value="Hand"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border Background="{TemplateBinding Background}"
CornerRadius="4"
Padding="{TemplateBinding Padding}">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="#FF00FF88"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" Value="#FF00C060"/>
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Background" Value="{StaticResource BorderBrush}"/>
<Setter Property="Foreground" Value="{StaticResource TextSecondaryBrush}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!-- Pulsante Pericolo Rosso -->
<Style x:Key="DangerButton" TargetType="Button" BasedOn="{StaticResource PrimaryButton}">
<Setter Property="Background" Value="{StaticResource AccentRedBrush}"/>
<Setter Property="Foreground" Value="{StaticResource TextPrimaryBrush}"/>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="#FFFF4466"/>
</Trigger>
</Style.Triggers>
</Style>
<!-- Pulsante Outline -->
<Style x:Key="OutlineButton" TargetType="Button">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="Foreground" Value="{StaticResource TextPrimaryBrush}"/>
<Setter Property="BorderBrush" Value="{StaticResource BorderBrush}"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Padding" Value="16,8"/>
<Setter Property="FontFamily" Value="Segoe UI"/>
<Setter Property="FontSize" Value="13"/>
<Setter Property="Cursor" Value="Hand"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="4"
Padding="{TemplateBinding Padding}">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="{StaticResource NavActiveBrush}"/>
<Setter Property="BorderBrush" Value="{StaticResource AccentGreenBrush}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!-- ================================== -->
<!-- CARD / PANEL -->
<!-- ================================== -->
<Style x:Key="Card" TargetType="Border">
<Setter Property="Background" Value="{StaticResource BackgroundCardBrush}"/>
<Setter Property="BorderBrush" Value="{StaticResource BorderBrush}"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="CornerRadius" Value="8"/>
<Setter Property="Padding" Value="20"/>
</Style>
<!-- ================================== -->
<!-- NAV ITEM LATERALE -->
<!-- ================================== -->
<Style x:Key="NavItem" TargetType="Button">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="Foreground" Value="{StaticResource TextSecondaryBrush}"/>
<Setter Property="BorderThickness" Value="0"/>
<Setter Property="Padding" Value="16,14"/>
<Setter Property="HorizontalContentAlignment" Value="Left"/>
<Setter Property="FontFamily" Value="Segoe UI"/>
<Setter Property="FontSize" Value="13"/>
<Setter Property="Cursor" Value="Hand"/>
<Setter Property="Width" Value="200"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border Background="{TemplateBinding Background}"
CornerRadius="6"
Margin="8,2"
Padding="{TemplateBinding Padding}">
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="Center"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="{StaticResource NavActiveBrush}"/>
<Setter Property="Foreground" Value="{StaticResource TextPrimaryBrush}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!-- Nav Item Attivo -->
<Style x:Key="NavItemActive" TargetType="Button" BasedOn="{StaticResource NavItem}">
<Setter Property="Background" Value="{StaticResource NavActiveBrush}"/>
<Setter Property="Foreground" Value="{StaticResource AccentGreenBrush}"/>
<Setter Property="FontWeight" Value="SemiBold"/>
</Style>
<!-- ================================== -->
<!-- LOG ITEM -->
<!-- ================================== -->
<Style x:Key="LogListView" TargetType="ListView">
<Setter Property="Background" Value="{StaticResource BackgroundDarkBrush}"/>
<Setter Property="BorderBrush" Value="{StaticResource BorderBrush}"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Foreground" Value="{StaticResource TextPrimaryBrush}"/>
<Setter Property="FontFamily" Value="Consolas"/>
<Setter Property="FontSize" Value="12"/>
</Style>
<!-- ================================== -->
<!-- SEPARATORE -->
<!-- ================================== -->
<Style x:Key="DarkSeparator" TargetType="Separator">
<Setter Property="Background" Value="{StaticResource BorderBrush}"/>
<Setter Property="Margin" Value="16,8"/>
</Style>
<!-- ================================== -->
<!-- STRATEGY TILE -->
<!-- Tile cliccabile per selezione -->
<!-- strategia ottimizzata per asset -->
<!-- ================================== -->
<Style x:Key="StrategyTile" TargetType="Button">
<Setter Property="Background" Value="{StaticResource BackgroundCardBrush}"/>
<Setter Property="Foreground" Value="{StaticResource TextPrimaryBrush}"/>
<Setter Property="BorderBrush" Value="{StaticResource BorderBrush}"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="Padding" Value="0"/>
<Setter Property="Cursor" Value="Hand"/>
<Setter Property="FontFamily" Value="Segoe UI"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="8"
Padding="14,12">
<ContentPresenter HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="BorderBrush" Value="{StaticResource AccentGreenBrush}"/>
<Setter Property="Background" Value="#FF2E2E3A"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Background" Value="{StaticResource NavActiveBrush}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!-- Tile strategia ATTIVA (selezionata) -->
<Style x:Key="StrategyTileActive" TargetType="Button" BasedOn="{StaticResource StrategyTile}">
<Setter Property="BorderBrush" Value="{StaticResource AccentGreenBrush}"/>
<Setter Property="BorderThickness" Value="2"/>
<Setter Property="Background" Value="#1A3A2A"/>
</Style>
<!-- Badge "RACCOMANDATO" inline -->
<Style x:Key="RecommendedBadge" TargetType="Border">
<Setter Property="Background" Value="#1A3A2A"/>
<Setter Property="CornerRadius" Value="3"/>
<Setter Property="Padding" Value="5,2"/>
<Setter Property="VerticalAlignment" Value="Center"/>
</Style>
<!-- Badge "OTTIMIZZATO" verde neon -->
<Style x:Key="OptimizedBadge" TargetType="Border">
<Setter Property="Background" Value="#1A4A1A"/>
<Setter Property="BorderBrush" Value="{StaticResource AccentGreenBrush}"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="CornerRadius" Value="4"/>
<Setter Property="Padding" Value="8,3"/>
</Style>
</ResourceDictionary>