2026-03-13 22:20:12 +08:00
|
|
|
<Window xmlns="https://github.com/avaloniaui"
|
|
|
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
|
|
|
xmlns:vm="using:LanMountainDesktop.ViewModels"
|
|
|
|
|
xmlns:fi="using:FluentIcons.Avalonia"
|
|
|
|
|
x:Class="LanMountainDesktop.Views.ComponentLibraryWindow"
|
|
|
|
|
x:DataType="vm:ComponentLibraryWindowViewModel"
|
|
|
|
|
Width="980"
|
|
|
|
|
Height="620"
|
|
|
|
|
MinWidth="760"
|
|
|
|
|
MinHeight="500"
|
|
|
|
|
CanResize="True"
|
Avalonia12 (#7)
* ava12升级
* Enable centralized package versioning
Add <Project> and <PropertyGroup> with <ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally> to Directory.Packages.props to enable centralized package version management across the repository. This allows package versions to be controlled from this single file instead of individual project files.
* Migrate codebase to Avalonia 12 APIs
Apply Avalonia 12 migration changes: replace SystemDecorations with WindowDecorations and remove ExtendClientAreaChromeHints/ExtendClientAreaTitleBarHeightHint usages; update BindingPlugins removal logic (no-op); switch clipboard usage to ClipboardExtensions.SetTextAsync; update Bitmap.CopyPixels calls to the new signature. Replace TextBox.Watermark with PlaceholderText, convert NumberBox styles to FANumberBox and adjust templates, change Checked/Unchecked handlers to IsCheckedChanged, and adapt FluentIcons usages (SymbolIconSource -> FASymbol/FAFont/FluentIcon equivalents). Fix MainWindow partial classes to inherit Window and correct missing variables/fields/usings. Add migration docs/specs/tasks under .trae and include a small TestFluentIcons project for icon testing.
* Migrate to Avalonia 12 and Plugin SDK v5
Upgrade project to the Avalonia 12 baseline and Plugin SDK v5: centralize Avalonia packages, remove legacy WebView.Avalonia usage (use NativeWebView/WebView2 EnvironmentRequested), and update Fluent/Material icon/package usages. Bump multiple package/project versions to 5.0.0 and Avalonia 12.0.1, update plugin template and README/docs to SDK v5, and add PLUGIN_SDK_V5_MIGRATION.md.
Also fix runtime/behavior bugs: make DataLocationResolver use a fixed bootstrap launcher data path and avoid recursive ResolveDataRoot; add legacy-state handling and extraction in OobeStateService; and update component settings tests to reflect migrated storage (DB/backup) and reset cache for test reloads. Various csproj, tests, and docs updated to reflect the migration and ensure build/test compatibility.
* Update icon glyphs and symbol mappings
Replace and refine icon sources across settings pages and controls: many FAFontIconSource glyphs were updated to specific Seagull Fluent Icons codepoints, some FASymbolIconSource usages were replaced with FAFontIconSource, and a number of symbol-to-Symbol enum mappings were adjusted (e.g. "Bell" -> AlertOn, "Shield" -> ShieldLock). Also clarified a comment in SettingsWindow and fixed a trailing newline in StudySettingsPage. Changes standardize icon visuals and bridge FluentIcons glyphs into FluentAvalonia icon sources.
* fix.修复合并产生的问题。
2026-04-29 12:14:29 +08:00
|
|
|
WindowDecorations="Full"
|
2026-03-13 22:20:12 +08:00
|
|
|
Title="Component Library"
|
|
|
|
|
Background="{DynamicResource AdaptiveSurfaceBaseBrush}">
|
|
|
|
|
|
|
|
|
|
<Grid RowDefinitions="Auto,*"
|
|
|
|
|
RowSpacing="10"
|
|
|
|
|
Margin="14">
|
|
|
|
|
<Grid ColumnDefinitions="*,Auto"
|
|
|
|
|
Margin="6,4,6,0">
|
|
|
|
|
<TextBlock VerticalAlignment="Center"
|
|
|
|
|
FontSize="18"
|
|
|
|
|
FontWeight="SemiBold"
|
|
|
|
|
Foreground="{DynamicResource AdaptiveTextPrimaryBrush}"
|
|
|
|
|
Text="{Binding Title}" />
|
|
|
|
|
<Button Grid.Column="1"
|
|
|
|
|
Width="34"
|
|
|
|
|
Height="34"
|
|
|
|
|
Padding="0"
|
|
|
|
|
Background="Transparent"
|
|
|
|
|
BorderThickness="0"
|
|
|
|
|
Click="OnCloseClick">
|
|
|
|
|
<fi:FluentIcon Icon="Dismiss"
|
|
|
|
|
IconVariant="Regular" />
|
|
|
|
|
</Button>
|
|
|
|
|
</Grid>
|
|
|
|
|
|
|
|
|
|
<Grid Grid.Row="1"
|
|
|
|
|
ColumnDefinitions="240,*"
|
|
|
|
|
ColumnSpacing="12">
|
2026-03-19 16:27:16 +08:00
|
|
|
<Border Classes="surface-translucent-panel"
|
2026-03-20 00:41:14 +08:00
|
|
|
CornerRadius="{DynamicResource DesignCornerRadiusLg}"
|
2026-03-13 22:20:12 +08:00
|
|
|
Padding="10">
|
|
|
|
|
<ListBox x:Name="CategoryListBox"
|
|
|
|
|
Background="Transparent"
|
|
|
|
|
BorderThickness="0"
|
|
|
|
|
SelectionChanged="OnCategorySelectionChanged"
|
|
|
|
|
ItemsSource="{Binding Categories}">
|
|
|
|
|
<ListBox.ItemTemplate>
|
|
|
|
|
<DataTemplate x:DataType="vm:ComponentLibraryCategoryViewModel">
|
|
|
|
|
<Border Padding="10"
|
|
|
|
|
Margin="0,0,0,6"
|
2026-03-20 00:41:14 +08:00
|
|
|
CornerRadius="{DynamicResource DesignCornerRadiusSm}"
|
2026-03-13 22:20:12 +08:00
|
|
|
Background="{DynamicResource AdaptiveNavItemBackgroundBrush}">
|
|
|
|
|
<Grid ColumnDefinitions="Auto,*"
|
|
|
|
|
ColumnSpacing="8">
|
2026-05-25 09:32:58 +08:00
|
|
|
<fi:FluentIcon Icon="{Binding Icon}"
|
2026-03-13 22:20:12 +08:00
|
|
|
IconVariant="Regular"
|
|
|
|
|
FontSize="16" />
|
|
|
|
|
<TextBlock Grid.Column="1"
|
|
|
|
|
VerticalAlignment="Center"
|
|
|
|
|
FontWeight="SemiBold"
|
|
|
|
|
Foreground="{DynamicResource AdaptiveTextPrimaryBrush}"
|
|
|
|
|
Text="{Binding Title}" />
|
|
|
|
|
</Grid>
|
|
|
|
|
</Border>
|
|
|
|
|
</DataTemplate>
|
|
|
|
|
</ListBox.ItemTemplate>
|
|
|
|
|
</ListBox>
|
|
|
|
|
</Border>
|
|
|
|
|
|
|
|
|
|
<Border Grid.Column="1"
|
2026-03-19 16:27:16 +08:00
|
|
|
Classes="surface-translucent-strong"
|
2026-03-20 00:41:14 +08:00
|
|
|
CornerRadius="{DynamicResource DesignCornerRadiusLg}"
|
2026-03-13 22:20:12 +08:00
|
|
|
Padding="10">
|
|
|
|
|
<ScrollViewer VerticalScrollBarVisibility="Auto"
|
|
|
|
|
HorizontalScrollBarVisibility="Disabled">
|
|
|
|
|
<ItemsControl ItemsSource="{Binding Components}">
|
|
|
|
|
<ItemsControl.ItemsPanel>
|
|
|
|
|
<ItemsPanelTemplate>
|
|
|
|
|
<WrapPanel Orientation="Horizontal" />
|
|
|
|
|
</ItemsPanelTemplate>
|
|
|
|
|
</ItemsControl.ItemsPanel>
|
|
|
|
|
|
|
|
|
|
<ItemsControl.ItemTemplate>
|
|
|
|
|
<DataTemplate x:DataType="vm:ComponentLibraryItemViewModel">
|
|
|
|
|
<Border Width="240"
|
|
|
|
|
Height="220"
|
|
|
|
|
Margin="6"
|
2026-03-30 15:28:51 +08:00
|
|
|
CornerRadius="{DynamicResource DesignCornerRadiusComponent}"
|
2026-03-13 22:20:12 +08:00
|
|
|
Padding="10"
|
|
|
|
|
Background="{DynamicResource AdaptiveSurfaceRaisedBrush}"
|
|
|
|
|
BorderBrush="{DynamicResource AdaptiveButtonBorderBrush}"
|
|
|
|
|
BorderThickness="1">
|
|
|
|
|
<Grid RowDefinitions="*,Auto,Auto"
|
|
|
|
|
RowSpacing="8">
|
2026-03-30 15:28:51 +08:00
|
|
|
<Border CornerRadius="{DynamicResource DesignCornerRadiusSm}"
|
2026-03-13 22:20:12 +08:00
|
|
|
Background="{DynamicResource AdaptiveGlassPanelBackgroundBrush}"
|
|
|
|
|
BorderThickness="1"
|
|
|
|
|
BorderBrush="{DynamicResource AdaptiveGlassPanelBorderBrush}"
|
|
|
|
|
Padding="8">
|
2026-04-29 19:43:29 +08:00
|
|
|
<ContentControl Content="{Binding PreviewControl}"
|
|
|
|
|
HorizontalAlignment="Center"
|
|
|
|
|
VerticalAlignment="Center"
|
|
|
|
|
IsHitTestVisible="False"
|
|
|
|
|
Focusable="False" />
|
2026-03-13 22:20:12 +08:00
|
|
|
</Border>
|
|
|
|
|
|
|
|
|
|
<TextBlock Grid.Row="1"
|
|
|
|
|
HorizontalAlignment="Center"
|
|
|
|
|
FontWeight="SemiBold"
|
|
|
|
|
Foreground="{DynamicResource AdaptiveTextPrimaryBrush}"
|
|
|
|
|
Text="{Binding DisplayName}" />
|
|
|
|
|
|
|
|
|
|
<Button Grid.Row="2"
|
|
|
|
|
HorizontalAlignment="Center"
|
|
|
|
|
Padding="12,6"
|
|
|
|
|
Tag="{Binding ComponentId}"
|
|
|
|
|
Click="OnAddComponentClick">
|
|
|
|
|
<TextBlock Text="Add to Desktop" />
|
|
|
|
|
</Button>
|
|
|
|
|
</Grid>
|
|
|
|
|
</Border>
|
|
|
|
|
</DataTemplate>
|
|
|
|
|
</ItemsControl.ItemTemplate>
|
|
|
|
|
</ItemsControl>
|
|
|
|
|
</ScrollViewer>
|
|
|
|
|
</Border>
|
|
|
|
|
</Grid>
|
|
|
|
|
</Grid>
|
|
|
|
|
</Window>
|