mirror of
https://github.com/MaxiFan/TunnelX.git
synced 2026-05-18 23:54:50 +03:00
04d8d52ba9
Co-authored-by: Cursor <cursoragent@cursor.com>
550 lines
30 KiB
XML
550 lines
30 KiB
XML
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
|
|
|
<FontFamily x:Key="PersianFont">pack://application:,,,/AppTunnel;component/Fonts/#Vazirmatn</FontFamily>
|
|
<FontFamily x:Key="AppFont">pack://application:,,,/AppTunnel;component/Fonts/#Vazirmatn, Vazirmatn, Vazir, Segoe UI, Tahoma</FontFamily>
|
|
|
|
<!-- Color Palette: Windows 11 Dark Mode + Orange Accent -->
|
|
<Color x:Key="PrimaryColor">#F97316</Color>
|
|
<Color x:Key="PrimaryDarkColor">#EA580C</Color>
|
|
<Color x:Key="AccentColor">#F97316</Color>
|
|
<Color x:Key="BackgroundColor">#202020</Color>
|
|
<Color x:Key="SurfaceColor">#282828</Color>
|
|
<Color x:Key="CardColor">#2D2D2D</Color>
|
|
<Color x:Key="TextPrimaryColor">#FFFFFF</Color>
|
|
<Color x:Key="TextSecondaryColor">#9D9D9D</Color>
|
|
<Color x:Key="SuccessColor">#6CCB5F</Color>
|
|
<Color x:Key="ErrorColor">#FF99A4</Color>
|
|
<Color x:Key="WarningColor">#FCE100</Color>
|
|
<Color x:Key="BorderColor">#3D3D3D</Color>
|
|
|
|
<!-- Brushes -->
|
|
<SolidColorBrush x:Key="PrimaryBrush" Color="{StaticResource PrimaryColor}"/>
|
|
<SolidColorBrush x:Key="PrimaryDarkBrush" Color="{StaticResource PrimaryDarkColor}"/>
|
|
<SolidColorBrush x:Key="AccentBrush" Color="{StaticResource AccentColor}"/>
|
|
<LinearGradientBrush x:Key="PrimaryGradientBrush" StartPoint="0,0" EndPoint="1,1">
|
|
<GradientStop Color="#F97316" Offset="0"/>
|
|
<GradientStop Color="#F97316" Offset="1"/>
|
|
</LinearGradientBrush>
|
|
<SolidColorBrush x:Key="BackgroundBrush" Color="{StaticResource BackgroundColor}"/>
|
|
<SolidColorBrush x:Key="SurfaceBrush" Color="{StaticResource SurfaceColor}"/>
|
|
<SolidColorBrush x:Key="CardBrush" Color="{StaticResource CardColor}"/>
|
|
<SolidColorBrush x:Key="TextPrimaryBrush" Color="{StaticResource TextPrimaryColor}"/>
|
|
<SolidColorBrush x:Key="TextSecondaryBrush" Color="{StaticResource TextSecondaryColor}"/>
|
|
<SolidColorBrush x:Key="SuccessBrush" Color="{StaticResource SuccessColor}"/>
|
|
<SolidColorBrush x:Key="ErrorBrush" Color="{StaticResource ErrorColor}"/>
|
|
<SolidColorBrush x:Key="WarningBrush" Color="{StaticResource WarningColor}"/>
|
|
<SolidColorBrush x:Key="BorderBrush" Color="{StaticResource BorderColor}"/>
|
|
|
|
<!-- TextBox Style with placeholder support via Tag property -->
|
|
<Style x:Key="ModernTextBox" TargetType="TextBox">
|
|
<Setter Property="FontFamily" Value="{StaticResource AppFont}"/>
|
|
<Setter Property="Background" Value="{StaticResource SurfaceBrush}"/>
|
|
<Setter Property="Foreground" Value="{StaticResource TextPrimaryBrush}"/>
|
|
<Setter Property="BorderBrush" Value="{StaticResource BorderBrush}"/>
|
|
<Setter Property="BorderThickness" Value="1"/>
|
|
<Setter Property="Padding" Value="10,7"/>
|
|
<Setter Property="FontSize" Value="13"/>
|
|
<Setter Property="TextOptions.TextFormattingMode" Value="Ideal"/>
|
|
<Setter Property="TextOptions.TextRenderingMode" Value="Auto"/>
|
|
<Setter Property="TextOptions.TextHintingMode" Value="Fixed"/>
|
|
<Setter Property="CaretBrush" Value="{StaticResource AccentBrush}"/>
|
|
<Setter Property="Cursor" Value="IBeam"/>
|
|
<Setter Property="Template">
|
|
<Setter.Value>
|
|
<ControlTemplate TargetType="TextBox">
|
|
<Border Background="{TemplateBinding Background}"
|
|
BorderBrush="{TemplateBinding BorderBrush}"
|
|
BorderThickness="{TemplateBinding BorderThickness}"
|
|
CornerRadius="8">
|
|
<Grid>
|
|
<ScrollViewer x:Name="PART_ContentHost" Margin="0" VerticalAlignment="Center"/>
|
|
<!-- Placeholder text (shown when empty and not focused) -->
|
|
<TextBlock x:Name="placeholder"
|
|
Text="{TemplateBinding Tag}"
|
|
FontFamily="{TemplateBinding FontFamily}"
|
|
Foreground="#555555"
|
|
FontSize="{TemplateBinding FontSize}"
|
|
TextAlignment="{TemplateBinding TextAlignment}"
|
|
Padding="{TemplateBinding Padding}"
|
|
VerticalAlignment="Center"
|
|
IsHitTestVisible="False"
|
|
Visibility="Collapsed"/>
|
|
</Grid>
|
|
</Border>
|
|
<ControlTemplate.Triggers>
|
|
<Trigger Property="IsFocused" Value="True">
|
|
<Setter Property="BorderBrush" Value="{StaticResource PrimaryBrush}"/>
|
|
</Trigger>
|
|
<Trigger Property="IsMouseOver" Value="True">
|
|
<Setter Property="BorderBrush" Value="{StaticResource AccentBrush}"/>
|
|
</Trigger>
|
|
<!-- Show placeholder when text is empty -->
|
|
<MultiTrigger>
|
|
<MultiTrigger.Conditions>
|
|
<Condition Property="Text" Value=""/>
|
|
<Condition Property="IsFocused" Value="False"/>
|
|
</MultiTrigger.Conditions>
|
|
<Setter TargetName="placeholder" Property="Visibility" Value="Visible"/>
|
|
</MultiTrigger>
|
|
</ControlTemplate.Triggers>
|
|
</ControlTemplate>
|
|
</Setter.Value>
|
|
</Setter>
|
|
</Style>
|
|
|
|
<!-- PasswordBox Style -->
|
|
<Style x:Key="ModernPasswordBox" TargetType="PasswordBox">
|
|
<Setter Property="FontFamily" Value="{StaticResource AppFont}"/>
|
|
<Setter Property="Background" Value="{StaticResource SurfaceBrush}"/>
|
|
<Setter Property="Foreground" Value="{StaticResource TextPrimaryBrush}"/>
|
|
<Setter Property="BorderBrush" Value="{StaticResource BorderBrush}"/>
|
|
<Setter Property="BorderThickness" Value="1"/>
|
|
<Setter Property="Padding" Value="10,7"/>
|
|
<Setter Property="FontSize" Value="13"/>
|
|
<Setter Property="TextOptions.TextFormattingMode" Value="Ideal"/>
|
|
<Setter Property="TextOptions.TextRenderingMode" Value="Auto"/>
|
|
<Setter Property="TextOptions.TextHintingMode" Value="Fixed"/>
|
|
<Setter Property="CaretBrush" Value="{StaticResource AccentBrush}"/>
|
|
<Setter Property="Cursor" Value="IBeam"/>
|
|
<Setter Property="Template">
|
|
<Setter.Value>
|
|
<ControlTemplate TargetType="PasswordBox">
|
|
<Border Background="{TemplateBinding Background}"
|
|
BorderBrush="{TemplateBinding BorderBrush}"
|
|
BorderThickness="{TemplateBinding BorderThickness}"
|
|
CornerRadius="8">
|
|
<ScrollViewer x:Name="PART_ContentHost" Margin="0"/>
|
|
</Border>
|
|
<ControlTemplate.Triggers>
|
|
<Trigger Property="IsFocused" Value="True">
|
|
<Setter Property="BorderBrush" Value="{StaticResource PrimaryBrush}"/>
|
|
</Trigger>
|
|
</ControlTemplate.Triggers>
|
|
</ControlTemplate>
|
|
</Setter.Value>
|
|
</Setter>
|
|
</Style>
|
|
|
|
<!-- Primary Button Style -->
|
|
<Style x:Key="PrimaryButton" TargetType="Button">
|
|
<Setter Property="FontFamily" Value="{StaticResource AppFont}"/>
|
|
<Setter Property="Background" Value="{StaticResource PrimaryBrush}"/>
|
|
<Setter Property="Foreground" Value="White"/>
|
|
<Setter Property="BorderThickness" Value="0"/>
|
|
<Setter Property="Padding" Value="24,12"/>
|
|
<Setter Property="FontSize" Value="15"/>
|
|
<Setter Property="FontWeight" Value="SemiBold"/>
|
|
<Setter Property="TextOptions.TextFormattingMode" Value="Ideal"/>
|
|
<Setter Property="TextOptions.TextRenderingMode" Value="Auto"/>
|
|
<Setter Property="TextOptions.TextHintingMode" Value="Fixed"/>
|
|
<Setter Property="Cursor" Value="Hand"/>
|
|
<Setter Property="Template">
|
|
<Setter.Value>
|
|
<ControlTemplate TargetType="Button">
|
|
<Border x:Name="border"
|
|
Background="{TemplateBinding Background}"
|
|
CornerRadius="10"
|
|
Padding="{TemplateBinding Padding}">
|
|
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
|
|
</Border>
|
|
<ControlTemplate.Triggers>
|
|
<Trigger Property="IsMouseOver" Value="True">
|
|
<Setter TargetName="border" Property="Background" Value="{StaticResource PrimaryDarkBrush}"/>
|
|
</Trigger>
|
|
<Trigger Property="IsEnabled" Value="False">
|
|
<Setter TargetName="border" Property="Opacity" Value="0.5"/>
|
|
</Trigger>
|
|
</ControlTemplate.Triggers>
|
|
</ControlTemplate>
|
|
</Setter.Value>
|
|
</Setter>
|
|
</Style>
|
|
|
|
<!-- Secondary / Outline Button -->
|
|
<Style x:Key="SecondaryButton" TargetType="Button">
|
|
<Setter Property="FontFamily" Value="{StaticResource AppFont}"/>
|
|
<Setter Property="Background" Value="Transparent"/>
|
|
<Setter Property="Foreground" Value="{StaticResource PrimaryBrush}"/>
|
|
<Setter Property="BorderBrush" Value="{StaticResource PrimaryBrush}"/>
|
|
<Setter Property="BorderThickness" Value="1.5"/>
|
|
<Setter Property="Padding" Value="16,8"/>
|
|
<Setter Property="FontSize" Value="13"/>
|
|
<Setter Property="FontWeight" Value="Medium"/>
|
|
<Setter Property="TextOptions.TextFormattingMode" Value="Ideal"/>
|
|
<Setter Property="TextOptions.TextRenderingMode" Value="Auto"/>
|
|
<Setter Property="TextOptions.TextHintingMode" Value="Fixed"/>
|
|
<Setter Property="Cursor" Value="Hand"/>
|
|
<Setter Property="Template">
|
|
<Setter.Value>
|
|
<ControlTemplate TargetType="Button">
|
|
<Border x:Name="border"
|
|
Background="{TemplateBinding Background}"
|
|
BorderBrush="{TemplateBinding BorderBrush}"
|
|
BorderThickness="{TemplateBinding BorderThickness}"
|
|
CornerRadius="8"
|
|
Padding="{TemplateBinding Padding}">
|
|
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
|
|
</Border>
|
|
<ControlTemplate.Triggers>
|
|
<Trigger Property="IsMouseOver" Value="True">
|
|
<Setter TargetName="border" Property="Background">
|
|
<Setter.Value>
|
|
<SolidColorBrush Color="{StaticResource PrimaryColor}" Opacity="0.1"/>
|
|
</Setter.Value>
|
|
</Setter>
|
|
</Trigger>
|
|
</ControlTemplate.Triggers>
|
|
</ControlTemplate>
|
|
</Setter.Value>
|
|
</Setter>
|
|
</Style>
|
|
|
|
<!-- Danger Button -->
|
|
<Style x:Key="DangerButton" TargetType="Button">
|
|
<Setter Property="FontFamily" Value="{StaticResource AppFont}"/>
|
|
<Setter Property="Background" Value="Transparent"/>
|
|
<Setter Property="Foreground" Value="{StaticResource ErrorBrush}"/>
|
|
<Setter Property="BorderThickness" Value="0"/>
|
|
<Setter Property="Padding" Value="8,4"/>
|
|
<Setter Property="FontSize" Value="12"/>
|
|
<Setter Property="TextOptions.TextFormattingMode" Value="Ideal"/>
|
|
<Setter Property="TextOptions.TextRenderingMode" Value="Auto"/>
|
|
<Setter Property="TextOptions.TextHintingMode" Value="Fixed"/>
|
|
<Setter Property="Cursor" Value="Hand"/>
|
|
<Setter Property="Template">
|
|
<Setter.Value>
|
|
<ControlTemplate TargetType="Button">
|
|
<Border x:Name="border" Background="{TemplateBinding Background}"
|
|
CornerRadius="4" Padding="{TemplateBinding Padding}">
|
|
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
|
|
</Border>
|
|
<ControlTemplate.Triggers>
|
|
<Trigger Property="IsMouseOver" Value="True">
|
|
<Setter TargetName="border" Property="Background">
|
|
<Setter.Value>
|
|
<SolidColorBrush Color="{StaticResource ErrorColor}" Opacity="0.15"/>
|
|
</Setter.Value>
|
|
</Setter>
|
|
</Trigger>
|
|
</ControlTemplate.Triggers>
|
|
</ControlTemplate>
|
|
</Setter.Value>
|
|
</Setter>
|
|
</Style>
|
|
|
|
<!-- Card Panel -->
|
|
<Style x:Key="CardPanel" TargetType="Border">
|
|
<Setter Property="Background" Value="{StaticResource CardBrush}"/>
|
|
<Setter Property="CornerRadius" Value="10"/>
|
|
<Setter Property="Padding" Value="14"/>
|
|
<Setter Property="Margin" Value="0,0,0,8"/>
|
|
<Setter Property="Cursor" Value="Arrow"/>
|
|
</Style>
|
|
|
|
<!-- Section Header -->
|
|
<Style x:Key="SectionHeader" TargetType="TextBlock">
|
|
<Setter Property="FontFamily" Value="{StaticResource AppFont}"/>
|
|
<Setter Property="Foreground" Value="{StaticResource TextPrimaryBrush}"/>
|
|
<Setter Property="FontSize" Value="13"/>
|
|
<Setter Property="FontWeight" Value="SemiBold"/>
|
|
<Setter Property="Margin" Value="0,0,0,8"/>
|
|
</Style>
|
|
|
|
<!-- Label Style -->
|
|
<Style x:Key="FieldLabel" TargetType="TextBlock">
|
|
<Setter Property="FontFamily" Value="{StaticResource AppFont}"/>
|
|
<Setter Property="Foreground" Value="{StaticResource TextSecondaryBrush}"/>
|
|
<Setter Property="FontSize" Value="11"/>
|
|
<Setter Property="Margin" Value="0,0,0,3"/>
|
|
</Style>
|
|
|
|
<!-- Toggle Switch Style (using CheckBox) -->
|
|
<Style x:Key="ToggleSwitch" TargetType="CheckBox">
|
|
<Setter Property="Template">
|
|
<Setter.Value>
|
|
<ControlTemplate TargetType="CheckBox">
|
|
<Grid>
|
|
<Border x:Name="track" Width="44" Height="24" CornerRadius="12"
|
|
Background="#555" Cursor="Hand"/>
|
|
<Border x:Name="thumb" Width="20" Height="20" CornerRadius="10"
|
|
Background="White" HorizontalAlignment="Left" Margin="2,0,0,0"
|
|
VerticalAlignment="Center"/>
|
|
</Grid>
|
|
<ControlTemplate.Triggers>
|
|
<Trigger Property="IsChecked" Value="True">
|
|
<Setter TargetName="track" Property="Background" Value="{StaticResource SuccessBrush}"/>
|
|
<Setter TargetName="thumb" Property="HorizontalAlignment" Value="Right"/>
|
|
<Setter TargetName="thumb" Property="Margin" Value="0,0,2,0"/>
|
|
</Trigger>
|
|
</ControlTemplate.Triggers>
|
|
</ControlTemplate>
|
|
</Setter.Value>
|
|
</Setter>
|
|
</Style>
|
|
|
|
<!-- TabControl Modern Style -->
|
|
<Style x:Key="ModernTabControl" TargetType="TabControl">
|
|
<Setter Property="Background" Value="Transparent"/>
|
|
<Setter Property="BorderThickness" Value="0"/>
|
|
<Setter Property="Padding" Value="0"/>
|
|
<Setter Property="Template">
|
|
<Setter.Value>
|
|
<ControlTemplate TargetType="TabControl">
|
|
<Grid>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto"/>
|
|
<RowDefinition Height="*"/>
|
|
</Grid.RowDefinitions>
|
|
<!-- Tab header bar with bottom border -->
|
|
<Border Grid.Row="0" Background="{StaticResource SurfaceBrush}"
|
|
BorderBrush="{StaticResource BorderBrush}" BorderThickness="0,0,0,1"
|
|
Padding="4,4,4,3">
|
|
<TabPanel IsItemsHost="True" HorizontalAlignment="Center"/>
|
|
</Border>
|
|
<!-- Tab content -->
|
|
<ContentPresenter Grid.Row="1" ContentSource="SelectedContent"/>
|
|
</Grid>
|
|
</ControlTemplate>
|
|
</Setter.Value>
|
|
</Setter>
|
|
</Style>
|
|
|
|
<Style x:Key="ModernTabItem" TargetType="TabItem">
|
|
<Setter Property="FontFamily" Value="{StaticResource AppFont}"/>
|
|
<Setter Property="Background" Value="Transparent"/>
|
|
<Setter Property="Foreground" Value="{StaticResource TextSecondaryBrush}"/>
|
|
<Setter Property="FontSize" Value="11"/>
|
|
<Setter Property="FontWeight" Value="Medium"/>
|
|
<Setter Property="TextOptions.TextFormattingMode" Value="Ideal"/>
|
|
<Setter Property="TextOptions.TextRenderingMode" Value="Auto"/>
|
|
<Setter Property="TextOptions.TextHintingMode" Value="Fixed"/>
|
|
<Setter Property="Padding" Value="4,4"/>
|
|
<Setter Property="Width" Value="88"/>
|
|
<Setter Property="MinHeight" Value="44"/>
|
|
<Setter Property="Cursor" Value="Hand"/>
|
|
<Setter Property="Template">
|
|
<Setter.Value>
|
|
<ControlTemplate TargetType="TabItem">
|
|
<Border x:Name="border"
|
|
Background="Transparent"
|
|
BorderBrush="Transparent"
|
|
BorderThickness="1"
|
|
CornerRadius="8"
|
|
Padding="{TemplateBinding Padding}"
|
|
Margin="2,0,2,2">
|
|
<Grid>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="*"/>
|
|
<RowDefinition Height="Auto"/>
|
|
</Grid.RowDefinitions>
|
|
<ContentPresenter Grid.Row="0" ContentSource="Header"
|
|
HorizontalAlignment="Center"
|
|
VerticalAlignment="Center"
|
|
Margin="0,0,0,3"/>
|
|
<!-- Bottom indicator line -->
|
|
<Border x:Name="indicator" Grid.Row="1"
|
|
Height="2" CornerRadius="1"
|
|
Background="Transparent"
|
|
HorizontalAlignment="Stretch"
|
|
Margin="8,0"/>
|
|
</Grid>
|
|
</Border>
|
|
<ControlTemplate.Triggers>
|
|
<Trigger Property="IsSelected" Value="True">
|
|
<Setter Property="Foreground" Value="{StaticResource TextPrimaryBrush}"/>
|
|
<Setter Property="FontWeight" Value="Bold"/>
|
|
<Setter TargetName="border" Property="Background" Value="#1FE8803A"/>
|
|
<Setter TargetName="border" Property="BorderBrush" Value="{StaticResource PrimaryBrush}"/>
|
|
<Setter TargetName="indicator" Property="Background" Value="{StaticResource PrimaryBrush}"/>
|
|
</Trigger>
|
|
<Trigger Property="IsMouseOver" Value="True">
|
|
<Setter TargetName="border" Property="Background" Value="#10FFFFFF"/>
|
|
</Trigger>
|
|
<MultiTrigger>
|
|
<MultiTrigger.Conditions>
|
|
<Condition Property="IsSelected" Value="True"/>
|
|
<Condition Property="IsMouseOver" Value="True"/>
|
|
</MultiTrigger.Conditions>
|
|
<Setter TargetName="border" Property="Background" Value="#29E8803A"/>
|
|
<Setter TargetName="border" Property="BorderBrush" Value="{StaticResource PrimaryBrush}"/>
|
|
</MultiTrigger>
|
|
</ControlTemplate.Triggers>
|
|
</ControlTemplate>
|
|
</Setter.Value>
|
|
</Setter>
|
|
</Style>
|
|
|
|
<!-- ScrollBar thin style -->
|
|
<Style TargetType="ScrollBar">
|
|
<Setter Property="Width" Value="6"/>
|
|
<Setter Property="Template">
|
|
<Setter.Value>
|
|
<ControlTemplate TargetType="ScrollBar">
|
|
<Track x:Name="PART_Track" IsDirectionReversed="True">
|
|
<Track.Thumb>
|
|
<Thumb>
|
|
<Thumb.Template>
|
|
<ControlTemplate>
|
|
<Border CornerRadius="3" Background="#44FFFFFF" MinHeight="20"/>
|
|
</ControlTemplate>
|
|
</Thumb.Template>
|
|
</Thumb>
|
|
</Track.Thumb>
|
|
</Track>
|
|
</ControlTemplate>
|
|
</Setter.Value>
|
|
</Setter>
|
|
</Style>
|
|
|
|
<!-- Window Control Button Style -->
|
|
<Style x:Key="WindowControlButton" TargetType="Button">
|
|
<Setter Property="FontFamily" Value="{StaticResource AppFont}"/>
|
|
<Setter Property="Background" Value="Transparent"/>
|
|
<Setter Property="Foreground" Value="{StaticResource TextSecondaryBrush}"/>
|
|
<Setter Property="BorderThickness" Value="0"/>
|
|
<Setter Property="FontSize" Value="14"/>
|
|
<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>
|
|
</Setter.Value>
|
|
</Setter>
|
|
<Style.Triggers>
|
|
<Trigger Property="IsMouseOver" Value="True">
|
|
<Setter Property="Background" Value="#22FFFFFF"/>
|
|
</Trigger>
|
|
</Style.Triggers>
|
|
</Style>
|
|
|
|
<!-- Dark ComboBox Style -->
|
|
<Style x:Key="DarkComboBox" TargetType="ComboBox">
|
|
<Setter Property="FontFamily" Value="{StaticResource AppFont}"/>
|
|
<Setter Property="Background" Value="{StaticResource SurfaceBrush}"/>
|
|
<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="FontSize" Value="14"/>
|
|
<Setter Property="TextOptions.TextFormattingMode" Value="Ideal"/>
|
|
<Setter Property="TextOptions.TextRenderingMode" Value="Auto"/>
|
|
<Setter Property="TextOptions.TextHintingMode" Value="Fixed"/>
|
|
<Setter Property="Cursor" Value="Hand"/>
|
|
<Setter Property="Template">
|
|
<Setter.Value>
|
|
<ControlTemplate TargetType="ComboBox">
|
|
<Grid>
|
|
<Border x:Name="border"
|
|
Background="{TemplateBinding Background}"
|
|
BorderBrush="{TemplateBinding BorderBrush}"
|
|
BorderThickness="{TemplateBinding BorderThickness}"
|
|
CornerRadius="8">
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="*"/>
|
|
<ColumnDefinition Width="Auto"/>
|
|
</Grid.ColumnDefinitions>
|
|
<!-- SelectionBoxItem: render via ContentPresenter with explicit template -->
|
|
<ContentPresenter Grid.Column="0"
|
|
Content="{TemplateBinding SelectionBoxItem}"
|
|
ContentTemplate="{TemplateBinding SelectionBoxItemTemplate}"
|
|
ContentStringFormat="{TemplateBinding SelectionBoxItemStringFormat}"
|
|
Margin="{TemplateBinding Padding}"
|
|
VerticalAlignment="Center"
|
|
HorizontalAlignment="Stretch"
|
|
IsHitTestVisible="False"
|
|
TextElement.FontFamily="{StaticResource AppFont}"
|
|
TextElement.Foreground="{StaticResource TextPrimaryBrush}"/>
|
|
<ToggleButton Grid.ColumnSpan="2"
|
|
IsChecked="{Binding IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}"
|
|
Background="Transparent" BorderThickness="0"
|
|
Focusable="False" ClickMode="Press">
|
|
<ToggleButton.Template>
|
|
<ControlTemplate TargetType="ToggleButton">
|
|
<Border Background="Transparent"/>
|
|
</ControlTemplate>
|
|
</ToggleButton.Template>
|
|
</ToggleButton>
|
|
<TextBlock Grid.Column="1" Text="▾" FontSize="12"
|
|
Foreground="{StaticResource TextSecondaryBrush}"
|
|
VerticalAlignment="Center" Margin="0,0,12,0"/>
|
|
</Grid>
|
|
</Border>
|
|
<Popup x:Name="PART_Popup"
|
|
IsOpen="{TemplateBinding IsDropDownOpen}"
|
|
AllowsTransparency="True"
|
|
Placement="Bottom"
|
|
PopupAnimation="Slide">
|
|
<Border Background="{StaticResource SurfaceBrush}"
|
|
BorderBrush="{StaticResource BorderBrush}"
|
|
BorderThickness="1"
|
|
CornerRadius="8"
|
|
Margin="0,4,0,0"
|
|
MinWidth="{TemplateBinding ActualWidth}"
|
|
MaxHeight="300">
|
|
<Border.Effect>
|
|
<DropShadowEffect Color="Black" BlurRadius="12" Opacity="0.4" ShadowDepth="2"/>
|
|
</Border.Effect>
|
|
<ScrollViewer VerticalScrollBarVisibility="Auto" Margin="4">
|
|
<StackPanel IsItemsHost="True"/>
|
|
</ScrollViewer>
|
|
</Border>
|
|
</Popup>
|
|
</Grid>
|
|
<ControlTemplate.Triggers>
|
|
<Trigger Property="IsMouseOver" Value="True">
|
|
<Setter TargetName="border" Property="BorderBrush" Value="{StaticResource AccentBrush}"/>
|
|
</Trigger>
|
|
<Trigger Property="IsDropDownOpen" Value="True">
|
|
<Setter TargetName="border" Property="BorderBrush" Value="{StaticResource PrimaryBrush}"/>
|
|
</Trigger>
|
|
</ControlTemplate.Triggers>
|
|
</ControlTemplate>
|
|
</Setter.Value>
|
|
</Setter>
|
|
</Style>
|
|
|
|
<!-- ComboBoxItem Dark Style -->
|
|
<Style TargetType="ComboBoxItem">
|
|
<Setter Property="FontFamily" Value="{StaticResource AppFont}"/>
|
|
<Setter Property="Foreground" Value="{StaticResource TextPrimaryBrush}"/>
|
|
<Setter Property="Background" Value="Transparent"/>
|
|
<Setter Property="Padding" Value="10,8"/>
|
|
<Setter Property="Cursor" Value="Hand"/>
|
|
<Setter Property="TextOptions.TextFormattingMode" Value="Ideal"/>
|
|
<Setter Property="TextOptions.TextRenderingMode" Value="Auto"/>
|
|
<Setter Property="TextOptions.TextHintingMode" Value="Fixed"/>
|
|
<Setter Property="Template">
|
|
<Setter.Value>
|
|
<ControlTemplate TargetType="ComboBoxItem">
|
|
<Border x:Name="Bd"
|
|
Background="{TemplateBinding Background}"
|
|
Padding="{TemplateBinding Padding}"
|
|
CornerRadius="6">
|
|
<ContentPresenter/>
|
|
</Border>
|
|
<ControlTemplate.Triggers>
|
|
<Trigger Property="IsMouseOver" Value="True">
|
|
<Setter TargetName="Bd" Property="Background" Value="#22FFFFFF"/>
|
|
</Trigger>
|
|
<Trigger Property="IsSelected" Value="True">
|
|
<Setter TargetName="Bd" Property="Background">
|
|
<Setter.Value>
|
|
<SolidColorBrush Color="{StaticResource PrimaryColor}" Opacity="0.2"/>
|
|
</Setter.Value>
|
|
</Setter>
|
|
</Trigger>
|
|
</ControlTemplate.Triggers>
|
|
</ControlTemplate>
|
|
</Setter.Value>
|
|
</Setter>
|
|
</Style>
|
|
|
|
</ResourceDictionary>
|