PKHeX/PKHeX.Avalonia/Views/SlotControl.axaml
montanon 96baf3c439 Fix visual parity: sprites, tabs, layout, wallpapers
Major visual overhaul to match WinForms appearance:

Sprite rendering:
- Fix ResourceLoader key extraction: normalize hyphens to underscores
  to match WinForms .resx naming convention (b_100-1 → b_100_1)
- Same fix applied to both PokeSprite and Misc ResourceLoaders

PKM Editor layout:
- Tabs moved to LEFT side with compact 72x40px buttons
- Colored left-edge pip per tab (orange/blue/pink/green/yellow/brown)
- Added missing fields: PID (hex), EXP, Friendship, Language
- Ability changed from NumericUpDown to ComboBox
- EXP + Level displayed side-by-side
- Stats tab with Base/IV/EV/Total columns
- Dragout sprite area above tabs

SAV Editor:
- Box wallpaper background rendered behind slot grid
- Box navigation uses ComboBox for direct box selection
- SAV tab has actual tool buttons (Items, Layout, Wondercards, etc.)

Slot control:
- Hover effect: blue border highlight with smooth 150ms transition
- Empty slots have transparent borders
- Theme-aware colors for light/dark mode

Dark mode:
- Added PKHeX-specific theme dictionaries (Light/Dark)
- Box background, hover, tool button colors per theme
2026-03-18 15:32:35 -03:00

57 lines
2.4 KiB
XML

<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="using:PKHeX.Avalonia.Controls"
xmlns:vm="using:PKHeX.Avalonia.ViewModels"
x:Class="PKHeX.Avalonia.Views.SlotControl"
x:DataType="controls:SlotModel"
Width="70" Height="58"
Margin="0">
<UserControl.Styles>
<!-- Subtle default border -->
<Style Selector="Border#SlotBorder">
<Setter Property="BorderBrush" Value="Transparent" />
<Setter Property="BorderThickness" Value="1" />
<Setter Property="CornerRadius" Value="3" />
<Setter Property="Transitions">
<Transitions>
<BrushTransition Property="BorderBrush" Duration="0:0:0.15" />
<BrushTransition Property="Background" Duration="0:0:0.15" />
</Transitions>
</Setter>
</Style>
<!-- Hover: highlight border -->
<Style Selector="Border#SlotBorder:pointerover">
<Setter Property="BorderBrush" Value="#4090FF" />
<Setter Property="Background" Value="#18FFFFFF" />
</Style>
</UserControl.Styles>
<Border Name="SlotBorder"
Background="Transparent"
Cursor="Hand"
DragDrop.AllowDrop="True">
<Border.ContextMenu>
<ContextMenu>
<MenuItem Header="View"
Command="{Binding $parent[ItemsControl].((vm:SAVEditorViewModel)DataContext).ViewSlotCommand}"
CommandParameter="{Binding}" />
<MenuItem Header="Set"
Command="{Binding $parent[ItemsControl].((vm:SAVEditorViewModel)DataContext).SetSlotCommand}"
CommandParameter="{Binding}" />
<Separator />
<MenuItem Header="Delete"
Command="{Binding $parent[ItemsControl].((vm:SAVEditorViewModel)DataContext).DeleteSlotCommand}"
CommandParameter="{Binding}" />
</ContextMenu>
</Border.ContextMenu>
<Image Source="{Binding Image}"
Width="68" Height="56"
RenderOptions.BitmapInterpolationMode="None"
HorizontalAlignment="Center"
VerticalAlignment="Center" />
</Border>
</UserControl>