Files
LanMountainDesktop/LanMontainDesktop/Views/MainWindow.axaml

980 lines
68 KiB
Plaintext
Raw Normal View History

2026-02-28 04:23:28 +08:00
<Window xmlns="https://github.com/avaloniaui"
2026-02-26 23:08:19 +08:00
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vm="using:LanMontainDesktop.ViewModels"
2026-02-27 13:43:27 +08:00
xmlns:ui="using:FluentAvalonia.UI.Controls"
2026-02-28 03:00:25 +08:00
xmlns:fi="using:FluentIcons.Avalonia"
2026-02-27 13:43:27 +08:00
xmlns:comp="using:LanMontainDesktop.Views.Components"
2026-02-28 03:00:25 +08:00
xmlns:vlc="clr-namespace:LibVLCSharp.Avalonia;assembly=LibVLCSharp.Avalonia"
2026-02-26 23:08:19 +08:00
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
2026-02-27 13:43:27 +08:00
mc:Ignorable="d"
d:DesignWidth="1280"
d:DesignHeight="720"
2026-02-26 23:08:19 +08:00
x:Class="LanMontainDesktop.Views.MainWindow"
x:DataType="vm:MainWindowViewModel"
Icon="/Assets/avalonia-logo.ico"
2026-02-27 13:43:27 +08:00
WindowState="FullScreen"
SystemDecorations="None"
CanResize="False"
2026-02-28 03:00:25 +08:00
UseLayoutRounding="True"
2026-02-27 19:27:38 +08:00
Foreground="{DynamicResource AdaptiveTextPrimaryBrush}"
2026-02-28 03:00:25 +08:00
Background="{DynamicResource AdaptiveSurfaceBaseBrush}"
2026-02-26 23:08:19 +08:00
Title="LanMontainDesktop">
<Design.DataContext>
2026-02-27 13:43:27 +08:00
<vm:MainWindowViewModel />
2026-02-26 23:08:19 +08:00
</Design.DataContext>
2026-02-27 19:27:38 +08:00
<Window.Resources>
2026-02-28 03:00:25 +08:00
<SolidColorBrush x:Key="AdaptivePrimaryBrush" Color="#FF1D4ED8" />
<SolidColorBrush x:Key="AdaptiveSecondaryBrush" Color="#FF1E40AF" />
2026-02-27 19:27:38 +08:00
<SolidColorBrush x:Key="AdaptiveTextPrimaryBrush" Color="#FFF8FAFC" />
<SolidColorBrush x:Key="AdaptiveTextSecondaryBrush" Color="#FFE2E8F0" />
<SolidColorBrush x:Key="AdaptiveTextMutedBrush" Color="#FF94A3B8" />
<SolidColorBrush x:Key="AdaptiveTextAccentBrush" Color="#FF93C5FD" />
2026-02-28 03:00:25 +08:00
<SolidColorBrush x:Key="AdaptiveAccentBrush" Color="#FF3B82F6" />
<SolidColorBrush x:Key="AdaptiveOnAccentBrush" Color="#FFFFFFFF" />
<SolidColorBrush x:Key="AdaptiveSurfaceBaseBrush" Color="#FF020617" />
<SolidColorBrush x:Key="AdaptiveSurfaceRaisedBrush" Color="#FF1E293B" />
<SolidColorBrush x:Key="AdaptiveSurfaceOverlayBrush" Color="#CC0F172A" />
2026-02-27 19:27:38 +08:00
<SolidColorBrush x:Key="AdaptiveButtonBackgroundBrush" Color="#66334155" />
<SolidColorBrush x:Key="AdaptiveButtonBorderBrush" Color="#80E2E8F0" />
<SolidColorBrush x:Key="AdaptiveButtonHoverBackgroundBrush" Color="#88475A74" />
<SolidColorBrush x:Key="AdaptiveButtonPressedBackgroundBrush" Color="#AA2A3B55" />
<SolidColorBrush x:Key="AdaptiveGlassPanelBackgroundBrush" Color="#70233448" />
<SolidColorBrush x:Key="AdaptiveGlassPanelBorderBrush" Color="#70475569" />
<SolidColorBrush x:Key="AdaptiveGlassStrongBackgroundBrush" Color="#A01E293B" />
<SolidColorBrush x:Key="AdaptiveGlassStrongBorderBrush" Color="#80475569" />
2026-02-28 03:00:25 +08:00
<SolidColorBrush x:Key="AdaptiveGlassOverlayBackgroundBrush" Color="#9A0F172A" />
2026-02-27 19:27:38 +08:00
<SolidColorBrush x:Key="AdaptiveNavTextBrush" Color="#FFF8FAFC" />
<SolidColorBrush x:Key="AdaptiveNavSelectedTextBrush" Color="#FFFFFFFF" />
2026-02-28 03:00:25 +08:00
<SolidColorBrush x:Key="AdaptiveNavSelectionIndicatorBrush" Color="#FF93C5FD" />
2026-02-27 19:27:38 +08:00
<SolidColorBrush x:Key="AdaptiveNavItemBackgroundBrush" Color="#220F172A" />
<SolidColorBrush x:Key="AdaptiveNavItemHoverBackgroundBrush" Color="#40334155" />
<SolidColorBrush x:Key="AdaptiveNavItemSelectedBackgroundBrush" Color="#CC1D4ED8" />
2026-02-28 03:00:25 +08:00
<SolidColorBrush x:Key="AdaptiveToggleOnBrush" Color="#FF3B82F6" />
<SolidColorBrush x:Key="AdaptiveToggleOffBrush" Color="#66475569" />
<SolidColorBrush x:Key="AdaptiveToggleBorderBrush" Color="#80E2E8F0" />
<x:Double x:Key="AdaptiveGlassPanelBlurRadius">22</x:Double>
<x:Double x:Key="AdaptiveGlassStrongBlurRadius">28</x:Double>
<x:Double x:Key="AdaptiveGlassPanelOpacity">0.92</x:Double>
<x:Double x:Key="AdaptiveGlassStrongOpacity">0.95</x:Double>
2026-02-27 19:27:38 +08:00
</Window.Resources>
2026-02-27 13:43:27 +08:00
<Grid>
2026-03-01 00:34:07 +08:00
<Grid x:Name="DesktopPage"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch">
2026-02-27 19:27:38 +08:00
<Grid.Transitions>
<Transitions>
<DoubleTransition Property="Opacity" Duration="0:0:0.24" />
</Transitions>
</Grid.Transitions>
<Border x:Name="DesktopHost"
ClipToBounds="True"
2026-03-01 00:34:07 +08:00
Background="Transparent"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch">
2026-02-28 03:00:25 +08:00
<Grid>
<Border x:Name="DesktopWallpaperLayer"
IsHitTestVisible="False"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Background="{DynamicResource AdaptiveSurfaceBaseBrush}" />
<vlc:VideoView x:Name="DesktopVideoWallpaperView"
IsVisible="False"
IsHitTestVisible="False"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" />
<Grid x:Name="DesktopGrid"
2026-03-01 00:34:07 +08:00
HorizontalAlignment="Center"
VerticalAlignment="Center"
2026-02-28 03:00:25 +08:00
ShowGridLines="False">
2026-03-01 00:34:07 +08:00
<Border x:Name="DesktopPagesViewport"
Grid.Row="1"
Grid.Column="0"
Grid.ColumnSpan="1"
Background="Transparent"
ClipToBounds="True"
BorderThickness="0"
PointerPressed="OnDesktopPagesPointerPressed"
PointerMoved="OnDesktopPagesPointerMoved"
PointerReleased="OnDesktopPagesPointerReleased"
PointerCaptureLost="OnDesktopPagesPointerCaptureLost"
PointerWheelChanged="OnDesktopPagesPointerWheelChanged">
<Grid>
<Grid x:Name="DesktopPagesHost"
HorizontalAlignment="Left"
VerticalAlignment="Top">
<Grid.RenderTransform>
<TranslateTransform>
<TranslateTransform.Transitions>
<Transitions>
<DoubleTransition Property="X" Duration="0:0:0.24" />
</Transitions>
</TranslateTransform.Transitions>
</TranslateTransform>
</Grid.RenderTransform>
<Grid x:Name="DesktopPagesContainer"
Grid.Column="0" />
<Border x:Name="LauncherPagePanel"
2026-02-28 04:51:00 +08:00
Grid.Column="1"
2026-03-01 00:34:07 +08:00
Classes="glass-panel"
ClipToBounds="False"
CornerRadius="18"
Padding="18">
<Grid RowDefinitions="Auto,*">
<StackPanel Spacing="4">
<TextBlock x:Name="LauncherTitleTextBlock"
FontSize="24"
FontWeight="SemiBold"
Text="应用启动台" />
<TextBlock x:Name="LauncherSubtitleTextBlock"
Foreground="{DynamicResource AdaptiveTextSecondaryBrush}"
Text="按 Windows 开始菜单结构显示所有应用与文件夹" />
</StackPanel>
<Grid Grid.Row="1"
Margin="0,12,0,0">
<ScrollViewer x:Name="LauncherRootScrollViewer"
VerticalScrollBarVisibility="Auto"
HorizontalScrollBarVisibility="Disabled">
<WrapPanel x:Name="LauncherRootTilePanel"
Orientation="Horizontal" />
</ScrollViewer>
<Grid x:Name="LauncherFolderOverlay"
IsVisible="False"
Background="{DynamicResource AdaptiveGlassOverlayBackgroundBrush}"
Opacity="{DynamicResource AdaptiveGlassOverlayOpacity}"
PointerPressed="OnLauncherFolderOverlayPointerPressed">
<Border x:Name="LauncherFolderPanel"
Classes="mica-strong"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Margin="52"
MaxWidth="760"
MaxHeight="520"
CornerRadius="18"
Padding="14">
<Border.RenderTransform>
<TranslateTransform Y="42" />
</Border.RenderTransform>
<Grid RowDefinitions="Auto,*"
RowSpacing="10">
<Grid ColumnDefinitions="Auto,*,Auto"
ColumnSpacing="8">
<Button x:Name="LauncherFolderBackButton"
Grid.Column="0"
Width="38"
Height="34"
Padding="0"
Click="OnLauncherFolderBackClick">
<fi:FluentIcon Icon="ArrowLeft"
IconVariant="Regular" />
</Button>
<TextBlock x:Name="LauncherFolderTitleTextBlock"
Grid.Column="1"
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontWeight="SemiBold"
Text="文件夹" />
<Button x:Name="LauncherFolderCloseButton"
Grid.Column="2"
Width="38"
Height="34"
Padding="0"
Click="OnLauncherFolderCloseClick">
<fi:FluentIcon Icon="Dismiss"
IconVariant="Regular" />
</Button>
</Grid>
<ScrollViewer x:Name="LauncherFolderScrollViewer"
Grid.Row="1"
VerticalScrollBarVisibility="Auto"
HorizontalScrollBarVisibility="Disabled">
<WrapPanel x:Name="LauncherFolderTilePanel"
Orientation="Horizontal" />
</ScrollViewer>
</Grid>
</Border>
</Grid>
</Grid>
</Grid>
</Border>
2026-02-28 04:51:00 +08:00
</Grid>
2026-03-01 00:34:07 +08:00
</Grid>
</Border>
<Border x:Name="TopStatusBarHost"
Grid.Row="0"
Grid.Column="0"
Grid.ColumnSpan="1"
Background="Transparent"
BorderThickness="0"
Padding="4">
<StackPanel x:Name="TopStatusComponentsPanel"
Orientation="Horizontal"
Spacing="6">
<comp:ClockWidget x:Name="ClockWidget"
IsVisible="False"
Margin="0" />
</StackPanel>
</Border>
<Border x:Name="BottomTaskbarContainer"
Classes="glass-strong"
Grid.Row="0"
Grid.Column="0"
Grid.ColumnSpan="1"
Margin="4"
CornerRadius="18"
Padding="6">
<Grid ColumnDefinitions="Auto,*,Auto"
ColumnSpacing="8">
<Border x:Name="TaskbarFixedActionsHost"
Grid.Column="0"
Background="Transparent"
BorderThickness="0">
<Grid ColumnDefinitions="Auto"
ColumnSpacing="8">
<Button x:Name="BackToWindowsButton"
Grid.Column="0"
Padding="8"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Background="Transparent"
BorderThickness="0"
Foreground="{DynamicResource AdaptiveTextPrimaryBrush}"
Click="OnMinimizeClick"
ToolTip.Tip="&#22238;&#21040;Windows">
<StackPanel Orientation="Horizontal"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Spacing="8">
<fi:SymbolIcon Classes="icon-m"
Symbol="Window"
IconVariant="Regular" />
<TextBlock x:Name="BackToWindowsTextBlock"
Foreground="{DynamicResource AdaptiveTextPrimaryBrush}"
Text="&#22238;&#21040;Windows" />
</StackPanel>
</Button>
</Grid>
</Border>
<Border x:Name="TaskbarDynamicActionsHost"
Grid.Column="1"
Background="Transparent"
BorderThickness="0"
IsVisible="False">
<StackPanel x:Name="TaskbarDynamicActionsPanel"
Orientation="Horizontal"
Spacing="8" />
</Border>
<Border x:Name="TaskbarSettingsActionHost"
Grid.Column="2"
Background="Transparent"
BorderThickness="0">
<Grid ColumnDefinitions="Auto,Auto"
ColumnSpacing="8">
<Button x:Name="OpenComponentLibraryButton"
Grid.Column="0"
IsVisible="False"
Padding="8"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Background="Transparent"
BorderThickness="0"
Foreground="{DynamicResource AdaptiveTextPrimaryBrush}"
Click="OnOpenComponentLibraryClick"
ToolTip.Tip="&#32452;&#20214;&#24211;">
<StackPanel Orientation="Horizontal"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Spacing="8">
<fi:FluentIcon Classes="icon-m"
Icon="Apps"
IconVariant="Regular" />
<TextBlock x:Name="OpenComponentLibraryTextBlock"
Foreground="{DynamicResource AdaptiveTextPrimaryBrush}"
Text="&#32452;&#20214;&#24211;" />
</StackPanel>
</Button>
<Button x:Name="OpenSettingsButton"
Grid.Column="1"
Padding="6"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Background="Transparent"
BorderThickness="0"
Foreground="{DynamicResource AdaptiveTextPrimaryBrush}"
Click="OnOpenSettingsClick"
ToolTip.Tip="&#35774;&#32622;">
<StackPanel Orientation="Horizontal"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Spacing="6">
<fi:SymbolIcon Classes="icon-l"
Symbol="Settings"
IconVariant="Regular" />
<TextBlock x:Name="OpenSettingsButtonTextBlock"
IsVisible="False"
Foreground="{DynamicResource AdaptiveTextPrimaryBrush}"
Text="&#36820;&#22238;&#26700;&#38754;" />
</StackPanel>
</Button>
</Grid>
</Border>
</Grid>
</Border>
2026-02-28 03:00:25 +08:00
</Grid>
2026-02-27 19:27:38 +08:00
</Grid>
</Border>
</Grid>
<Grid x:Name="SettingsPage"
IsVisible="False"
2026-03-01 00:34:07 +08:00
Opacity="0"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch">
2026-02-27 19:27:38 +08:00
<Grid.Transitions>
<Transitions>
<DoubleTransition Property="Opacity" Duration="0:0:0.24" />
</Transitions>
</Grid.Transitions>
<Border x:Name="SettingsContentPanel"
2026-02-28 04:23:28 +08:00
Background="Transparent"
BorderThickness="0"
Margin="0"
2026-03-01 00:34:07 +08:00
Padding="8"
HorizontalAlignment="Center"
VerticalAlignment="Center"
ClipToBounds="False">
2026-02-27 19:27:38 +08:00
<Border.RenderTransform>
<TranslateTransform Y="30">
<TranslateTransform.Transitions>
<Transitions>
<DoubleTransition Property="Y" Duration="0:0:0.24" />
</Transitions>
</TranslateTransform.Transitions>
</TranslateTransform>
</Border.RenderTransform>
2026-03-01 00:34:07 +08:00
<Border Classes="mica-strong"
2026-02-27 19:27:38 +08:00
CornerRadius="14"
Padding="18">
<Grid ColumnDefinitions="220,*"
ColumnSpacing="16">
<Border x:Name="SettingsNavPanelBorder"
Classes="glass-panel"
Grid.Column="0"
CornerRadius="10"
Padding="10">
<Border.Styles>
2026-02-28 03:00:25 +08:00
<Style Selector="ListBox#SettingsNavListBox">
<Setter Property="Background" Value="Transparent" />
<Setter Property="BorderThickness" Value="0" />
</Style>
2026-02-27 19:27:38 +08:00
<Style Selector="ListBox#SettingsNavListBox ListBoxItem">
<Setter Property="Foreground" Value="{DynamicResource AdaptiveNavTextBrush}" />
<Setter Property="Background" Value="{DynamicResource AdaptiveNavItemBackgroundBrush}" />
2026-02-28 03:00:25 +08:00
<Setter Property="BorderThickness" Value="0" />
2026-02-27 19:27:38 +08:00
<Setter Property="Padding" Value="10,8" />
<Setter Property="Margin" Value="0,2" />
2026-02-28 03:00:25 +08:00
<Setter Property="CornerRadius" Value="8" />
2026-02-27 19:27:38 +08:00
</Style>
<Style Selector="ListBox#SettingsNavListBox ListBoxItem:pointerover">
<Setter Property="Background" Value="{DynamicResource AdaptiveNavItemHoverBackgroundBrush}" />
</Style>
<Style Selector="ListBox#SettingsNavListBox ListBoxItem:selected">
<Setter Property="Foreground" Value="{DynamicResource AdaptiveNavSelectedTextBrush}" />
<Setter Property="Background" Value="{DynamicResource AdaptiveNavItemSelectedBackgroundBrush}" />
</Style>
</Border.Styles>
<StackPanel Spacing="10">
2026-02-28 04:23:28 +08:00
<TextBlock x:Name="SettingsNavHeaderTextBlock"
FontSize="16"
2026-02-27 19:27:38 +08:00
FontWeight="SemiBold"
Foreground="{DynamicResource AdaptiveTextSecondaryBrush}"
Text="&#35774;&#32622;&#36873;&#39033;" />
<ListBox x:Name="SettingsNavListBox"
SelectionChanged="OnSettingsNavSelectionChanged">
2026-03-01 00:34:07 +08:00
<ListBoxItem x:Name="SettingsNavWallpaperItem" ToolTip.Tip="&#22721;&#32440;">
<StackPanel Orientation="Horizontal" Spacing="12">
<fi:SymbolIcon Symbol="Image" IconVariant="Regular" />
<TextBlock Text="&#22721;&#32440;" VerticalAlignment="Center" />
</StackPanel>
</ListBoxItem>
<ListBoxItem x:Name="SettingsNavGridItem" ToolTip.Tip="&#32593;&#26684;">
<StackPanel Orientation="Horizontal" Spacing="12">
<fi:SymbolIcon Symbol="Grid" IconVariant="Regular" />
<TextBlock Text="&#32593;&#26684;" VerticalAlignment="Center" />
</StackPanel>
</ListBoxItem>
<ListBoxItem x:Name="SettingsNavColorItem" ToolTip.Tip="&#39068;&#33394;">
<StackPanel Orientation="Horizontal" Spacing="12">
<fi:SymbolIcon Symbol="Color" IconVariant="Regular" />
<TextBlock Text="&#39068;&#33394;" VerticalAlignment="Center" />
</StackPanel>
</ListBoxItem>
<ListBoxItem x:Name="SettingsNavStatusBarItem" ToolTip.Tip="&#29366;&#24577;&#26639;">
<StackPanel Orientation="Horizontal" Spacing="12">
<fi:SymbolIcon Symbol="Clock" IconVariant="Regular" />
<TextBlock Text="&#29366;&#24577;&#26639;" VerticalAlignment="Center" />
</StackPanel>
</ListBoxItem>
<ListBoxItem x:Name="SettingsNavRegionItem" ToolTip.Tip="&#22320;&#21306;">
<StackPanel Orientation="Horizontal" Spacing="12">
<fi:SymbolIcon Symbol="Earth" IconVariant="Regular" />
<TextBlock Text="&#22320;&#21306;" VerticalAlignment="Center" />
</StackPanel>
</ListBoxItem>
2026-02-27 19:27:38 +08:00
</ListBox>
</StackPanel>
</Border>
<Border Grid.Column="1"
Classes="glass-panel"
CornerRadius="10"
Padding="14">
<Grid>
2026-03-01 00:34:07 +08:00
<Grid x:Name="WallpaperSettingsPanel"
IsVisible="True"
ColumnDefinitions="*, *"
RowDefinitions="Auto, *">
<TextBlock x:Name="WallpaperPanelTitleTextBlock"
Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2"
FontSize="28"
FontWeight="SemiBold"
Foreground="{DynamicResource AdaptiveTextPrimaryBrush}"
Margin="0,0,0,24"
Text="个性化您的背景" />
<TextBlock x:Name="WallpaperPanelDescriptionTextBlock"
Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2"
FontSize="14"
Foreground="{DynamicResource AdaptiveTextSecondaryBrush}"
Margin="0,-18,0,24"
Text="更改您的壁纸并将预览投影到显示器上。" />
<!-- Left Column: Monitor Preview -->
<Border x:Name="WallpaperPreviewHost"
Grid.Row="1" Grid.Column="0"
Margin="0,0,16,0"
VerticalAlignment="Top"
HorizontalAlignment="Stretch">
<!-- Monitor Frame (Bezel) -->
<Border x:Name="WallpaperPreviewFrame"
HorizontalAlignment="Stretch"
CornerRadius="14"
Background="#FF1A1A1A"
Padding="12">
<Border x:Name="WallpaperPreviewViewport"
ClipToBounds="True"
CornerRadius="4"
Background="#30111827">
<Grid>
<vlc:VideoView x:Name="WallpaperPreviewVideoView"
IsVisible="False"
IsHitTestVisible="False"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" />
<Grid x:Name="WallpaperPreviewGrid"
HorizontalAlignment="Center"
VerticalAlignment="Center">
<Border x:Name="WallpaperPreviewTopStatusBarHost"
Grid.Row="0"
2026-02-28 03:00:25 +08:00
Background="Transparent"
2026-03-01 00:34:07 +08:00
Padding="2">
<StackPanel x:Name="WallpaperPreviewTopStatusComponentsPanel"
2026-02-28 03:00:25 +08:00
Orientation="Horizontal"
2026-03-01 00:34:07 +08:00
Spacing="3">
<Border x:Name="WallpaperPreviewClockContainer"
IsVisible="False">
<TextBlock x:Name="WallpaperPreviewClockTextBlock"
FontWeight="SemiBold"
Foreground="{DynamicResource AdaptiveTextPrimaryBrush}"
Text="12:34" />
</Border>
</StackPanel>
2026-02-28 03:00:25 +08:00
</Border>
2026-02-28 04:23:28 +08:00
2026-03-01 00:34:07 +08:00
<Border x:Name="WallpaperPreviewBottomTaskbarContainer"
Classes="glass-strong"
Grid.Row="1"
Margin="3"
CornerRadius="8"
Padding="2">
<Grid ColumnDefinitions="Auto,*,Auto"
2026-02-28 04:51:00 +08:00
ColumnSpacing="3">
2026-03-01 00:34:07 +08:00
<Border x:Name="WallpaperPreviewTaskbarFixedActionsHost" Grid.Column="0">
<StackPanel x:Name="WallpaperPreviewBackButtonVisual" Orientation="Horizontal" Spacing="3">
<fi:SymbolIcon Classes="icon-s" Symbol="Window" />
<TextBlock x:Name="WallpaperPreviewBackButtonTextBlock" Text="回到Windows" VerticalAlignment="Center" />
</StackPanel>
</Border>
<StackPanel x:Name="WallpaperPreviewTaskbarDynamicActionsHost"
Grid.Column="1"
Orientation="Horizontal"
HorizontalAlignment="Center"
Spacing="3" />
<Border x:Name="WallpaperPreviewTaskbarSettingsActionHost" Grid.Column="2">
<StackPanel Orientation="Horizontal" Spacing="3">
<StackPanel x:Name="WallpaperPreviewComponentLibraryVisual" IsVisible="False" Orientation="Horizontal" Spacing="3">
<fi:FluentIcon Classes="icon-s" Icon="Apps" />
<TextBlock x:Name="WallpaperPreviewComponentLibraryTextBlock" Text="组件库" VerticalAlignment="Center" />
</StackPanel>
<fi:SymbolIcon x:Name="WallpaperPreviewSettingsButtonIcon" Classes="icon-s" Symbol="Settings" />
</StackPanel>
</Border>
2026-02-28 04:51:00 +08:00
</Grid>
2026-02-28 04:23:28 +08:00
</Border>
2026-02-28 03:00:25 +08:00
</Grid>
</Grid>
2026-03-01 00:34:07 +08:00
</Border>
2026-02-27 19:27:38 +08:00
</Border>
</Border>
2026-03-01 00:34:07 +08:00
<!-- Right Column: Settings Content -->
<StackPanel Grid.Row="1" Grid.Column="1"
Margin="16,0,0,0"
Spacing="16">
<StackPanel Spacing="8">
<TextBlock Text="预览状态" FontSize="12" Foreground="{DynamicResource AdaptiveTextSecondaryBrush}" />
<TextBlock x:Name="WallpaperPathTextBlock"
FontSize="14"
FontWeight="Medium"
Foreground="{DynamicResource AdaptiveTextPrimaryBrush}"
TextTrimming="CharacterEllipsis"
Text="未选择文件" />
<TextBlock x:Name="WallpaperStatusTextBlock"
FontSize="12"
Foreground="{DynamicResource AdaptiveTextMutedBrush}"
Text="就绪" />
</StackPanel>
<Separator Background="{DynamicResource SurfaceStrokeColorDefaultBrush}" Height="1" Margin="0,8" />
<TextBlock Text="选择图片或视频" FontSize="16" FontWeight="SemiBold" Foreground="{DynamicResource AdaptiveTextPrimaryBrush}" />
<Grid ColumnDefinitions="*, *" ColumnSpacing="12">
<Button x:Name="PickWallpaperButton"
Grid.Column="0"
Classes="accent"
HorizontalAlignment="Stretch"
Padding="0,10"
Click="OnPickWallpaperClick"
Content="浏览照片" />
<Button x:Name="ClearWallpaperButton"
Grid.Column="1"
HorizontalAlignment="Stretch"
Padding="0,10"
Click="OnClearWallpaperClick"
Content="重置" />
</Grid>
<ui:SettingsExpander x:Name="WallpaperPlacementSettingsExpander"
Header="选择契合度"
Padding="12,8">
<ui:SettingsExpander.Footer>
<ComboBox x:Name="WallpaperPlacementComboBox"
Width="120"
SelectionChanged="OnWallpaperPlacementSelectionChanged">
<ComboBoxItem Content="Fill" />
<ComboBoxItem Content="Fit" />
<ComboBoxItem Content="Stretch" />
<ComboBoxItem Content="Center" />
<ComboBoxItem Content="Tile" />
</ComboBox>
</ui:SettingsExpander.Footer>
</ui:SettingsExpander>
2026-02-27 19:27:38 +08:00
</StackPanel>
</Grid>
<StackPanel x:Name="GridSettingsPanel"
IsVisible="False"
2026-03-01 00:34:07 +08:00
Spacing="16">
2026-02-28 04:23:28 +08:00
<TextBlock x:Name="GridPanelTitleTextBlock"
2026-03-01 00:34:07 +08:00
FontSize="24"
2026-02-27 19:27:38 +08:00
FontWeight="SemiBold"
2026-03-01 00:34:07 +08:00
Foreground="{DynamicResource AdaptiveTextPrimaryBrush}"
2026-02-27 19:27:38 +08:00
Text="Grid layout" />
2026-03-01 00:34:07 +08:00
<ui:SettingsExpander x:Name="GridSizeSettingsExpander"
Header="&#30701;&#36793;&#26684;&#25968;"
Description="&#20915;&#23450;&#26700;&#38754;&#30701;&#36793;&#30340;&#22522;&#30784;&#26684;&#23376;&#25968;&#37327;">
<ui:SettingsExpander.IconSource>
</ui:SettingsExpander.IconSource>
<ui:SettingsExpander.Footer>
<Grid ColumnDefinitions="Auto,Auto"
ColumnSpacing="8">
<ui:NumberBox x:Name="GridSizeNumberBox"
Grid.Column="0"
Width="120"
Minimum="6"
Maximum="96"
Foreground="{DynamicResource AdaptiveTextPrimaryBrush}"
Value="12" />
<Button x:Name="ApplyGridButton"
Grid.Column="1"
Padding="12,6"
Foreground="{DynamicResource AdaptiveTextPrimaryBrush}"
Click="OnApplyGridSizeClick"
Content="&#24212;&#29992;" />
</Grid>
</ui:SettingsExpander.Footer>
</ui:SettingsExpander>
<TextBlock x:Name="GridInfoTextBlock"
2026-02-28 04:23:28 +08:00
Foreground="{DynamicResource AdaptiveTextSecondaryBrush}"
2026-03-01 00:34:07 +08:00
Text="Grid: - cols x - rows (1:1)" />
2026-02-27 19:27:38 +08:00
</StackPanel>
<StackPanel x:Name="ColorSettingsPanel"
IsVisible="False"
2026-03-01 00:34:07 +08:00
Spacing="16">
2026-02-28 04:23:28 +08:00
<TextBlock x:Name="ColorPanelTitleTextBlock"
2026-03-01 00:34:07 +08:00
FontSize="24"
2026-02-27 19:27:38 +08:00
FontWeight="SemiBold"
2026-03-01 00:34:07 +08:00
Foreground="{DynamicResource AdaptiveTextPrimaryBrush}"
2026-02-27 19:27:38 +08:00
Text="Color" />
2026-03-01 00:34:07 +08:00
<ui:SettingsExpander x:Name="ThemeModeSettingsExpander"
Header="&#26085;&#22812;&#27169;&#24335;"
Description="&#20999;&#25442;&#24212;&#29992;&#30340;&#27973;&#33394;&#25110;&#28145;&#33394;&#20027;&#39064;&#12290;">
<ui:SettingsExpander.IconSource>
</ui:SettingsExpander.IconSource>
<ui:SettingsExpander.Footer>
<ToggleSwitch x:Name="NightModeToggleSwitch"
OffContent="Day"
OnContent="Night"
Checked="OnNightModeChecked"
Unchecked="OnNightModeUnchecked" />
</ui:SettingsExpander.Footer>
</ui:SettingsExpander>
2026-02-27 19:27:38 +08:00
2026-03-01 00:34:07 +08:00
<ui:SettingsExpander x:Name="ThemeColorSettingsExpander"
Header="&#20027;&#39064;&#33394;"
Description="&#36873;&#25321;&#24212;&#29992;&#30340;&#20027;&#39064;&#28857;&#32512;&#33394;&#12290;">
<ui:SettingsExpander.IconSource>
</ui:SettingsExpander.IconSource>
<ui:SettingsExpanderItem>
<ui:SettingsExpanderItem.Footer>
<StackPanel Spacing="12">
<TextBlock x:Name="RecommendedColorsLabelTextBlock"
Foreground="{DynamicResource AdaptiveTextSecondaryBrush}"
Text="Recommended Colors" />
<WrapPanel ItemWidth="72"
ItemHeight="56"
Orientation="Horizontal">
<Button x:Name="RecommendedColorButton1"
Width="68"
Height="50"
Padding="8"
Click="OnRecommendedColorClick">
<Border x:Name="RecommendedColorSwatch1"
Width="26"
Height="26"
CornerRadius="6"
BorderThickness="0" />
</Button>
<Button x:Name="RecommendedColorButton2"
Width="68"
Height="50"
Padding="8"
Click="OnRecommendedColorClick">
<Border x:Name="RecommendedColorSwatch2"
Width="26"
Height="26"
CornerRadius="6"
BorderThickness="0" />
</Button>
<Button x:Name="RecommendedColorButton3"
Width="68"
Height="50"
Padding="8"
Click="OnRecommendedColorClick">
<Border x:Name="RecommendedColorSwatch3"
Width="26"
Height="26"
CornerRadius="6"
BorderThickness="0" />
</Button>
<Button x:Name="RecommendedColorButton4"
Width="68"
Height="50"
Padding="8"
Click="OnRecommendedColorClick">
<Border x:Name="RecommendedColorSwatch4"
Width="26"
Height="26"
CornerRadius="6"
BorderThickness="0" />
</Button>
<Button x:Name="RecommendedColorButton5"
Width="68"
Height="50"
Padding="8"
Click="OnRecommendedColorClick">
<Border x:Name="RecommendedColorSwatch5"
Width="26"
Height="26"
CornerRadius="6"
BorderThickness="0" />
</Button>
<Button x:Name="RecommendedColorButton6"
Width="68"
Height="50"
Padding="8"
Click="OnRecommendedColorClick">
<Border x:Name="RecommendedColorSwatch6"
Width="26"
Height="26"
CornerRadius="6"
BorderThickness="0" />
</Button>
</WrapPanel>
</StackPanel>
</ui:SettingsExpanderItem.Footer>
</ui:SettingsExpanderItem>
<ui:SettingsExpanderItem>
<ui:SettingsExpanderItem.Footer>
<StackPanel Spacing="12">
<Grid ColumnDefinitions="*,Auto"
ColumnSpacing="10">
<TextBlock x:Name="SystemMonetColorsLabelTextBlock"
VerticalAlignment="Center"
Foreground="{DynamicResource AdaptiveTextSecondaryBrush}"
Text="System Monet Colors" />
<Button x:Name="RefreshMonetColorsButton"
Grid.Column="1"
Padding="10,6"
Click="OnRefreshMonetColorsClick"
Content="Refresh" />
</Grid>
2026-02-27 19:27:38 +08:00
2026-03-01 00:34:07 +08:00
<WrapPanel ItemWidth="72"
ItemHeight="56"
Orientation="Horizontal">
<Button x:Name="MonetColorButton1"
Width="68"
Height="50"
Padding="8"
Click="OnMonetColorClick">
<Border x:Name="MonetColorSwatch1"
Width="26"
Height="26"
CornerRadius="6"
BorderThickness="0" />
</Button>
<Button x:Name="MonetColorButton2"
Width="68"
Height="50"
Padding="8"
Click="OnMonetColorClick">
<Border x:Name="MonetColorSwatch2"
Width="26"
Height="26"
CornerRadius="6"
BorderThickness="0" />
</Button>
<Button x:Name="MonetColorButton3"
Width="68"
Height="50"
Padding="8"
Click="OnMonetColorClick">
<Border x:Name="MonetColorSwatch3"
Width="26"
Height="26"
CornerRadius="6"
BorderThickness="0" />
</Button>
<Button x:Name="MonetColorButton4"
Width="68"
Height="50"
Padding="8"
Click="OnMonetColorClick">
<Border x:Name="MonetColorSwatch4"
Width="26"
Height="26"
CornerRadius="6"
BorderThickness="0" />
</Button>
<Button x:Name="MonetColorButton5"
Width="68"
Height="50"
Padding="8"
Click="OnMonetColorClick">
<Border x:Name="MonetColorSwatch5"
Width="26"
Height="26"
CornerRadius="6"
BorderThickness="0" />
</Button>
<Button x:Name="MonetColorButton6"
Width="68"
Height="50"
Padding="8"
Click="OnMonetColorClick">
<Border x:Name="MonetColorSwatch6"
Width="26"
Height="26"
CornerRadius="6"
BorderThickness="0" />
</Button>
</WrapPanel>
</StackPanel>
</ui:SettingsExpanderItem.Footer>
</ui:SettingsExpanderItem>
</ui:SettingsExpander>
2026-02-27 19:27:38 +08:00
<TextBlock x:Name="ThemeColorStatusTextBlock"
Foreground="{DynamicResource AdaptiveTextMutedBrush}"
Text="Theme color is ready." />
</StackPanel>
2026-02-28 03:00:25 +08:00
<StackPanel x:Name="StatusBarSettingsPanel"
IsVisible="False"
2026-03-01 00:34:07 +08:00
Spacing="16">
2026-02-28 04:23:28 +08:00
<TextBlock x:Name="StatusBarPanelTitleTextBlock"
2026-03-01 00:34:07 +08:00
FontSize="24"
2026-02-28 03:00:25 +08:00
FontWeight="SemiBold"
2026-03-01 00:34:07 +08:00
Foreground="{DynamicResource AdaptiveTextPrimaryBrush}"
2026-02-28 03:00:25 +08:00
Text="Status Bar" />
2026-02-28 04:23:28 +08:00
<ui:SettingsExpander x:Name="StatusBarClockSettingsExpander"
2026-03-01 00:34:07 +08:00
Header="&#26102;&#38388;&#32452;&#20214;"
Description="&#22312;&#39030;&#37096;&#29366;&#24577;&#26639;&#26174;&#31034;&#26102;&#38047;&#12290;">
<ui:SettingsExpander.IconSource>
</ui:SettingsExpander.IconSource>
<ui:SettingsExpander.Footer>
2026-02-28 03:00:25 +08:00
<ToggleSwitch x:Name="StatusBarClockToggleSwitch"
OnContent="On"
OffContent="Off"
Checked="OnStatusBarClockChecked"
Unchecked="OnStatusBarClockUnchecked" />
2026-03-01 00:34:07 +08:00
</ui:SettingsExpander.Footer>
2026-02-28 03:00:25 +08:00
</ui:SettingsExpander>
</StackPanel>
2026-02-28 04:23:28 +08:00
<StackPanel x:Name="RegionSettingsPanel"
IsVisible="False"
2026-03-01 00:34:07 +08:00
Spacing="16">
2026-02-28 04:23:28 +08:00
<TextBlock x:Name="RegionPanelTitleTextBlock"
2026-03-01 00:34:07 +08:00
FontSize="24"
2026-02-28 04:23:28 +08:00
FontWeight="SemiBold"
2026-03-01 00:34:07 +08:00
Foreground="{DynamicResource AdaptiveTextPrimaryBrush}"
2026-02-28 04:23:28 +08:00
Text="&#22320;&#21306;" />
<ui:SettingsExpander x:Name="LanguageSettingsExpander"
2026-03-01 00:34:07 +08:00
Header="&#35821;&#35328;"
Description="&#36873;&#25321;&#35821;&#35328;&#65292;&#31435;&#21363;&#24212;&#29992;&#21040;&#35774;&#32622;&#19982;&#20027;&#35201;&#30028;&#38754;&#12290;">
<ui:SettingsExpander.IconSource>
</ui:SettingsExpander.IconSource>
<ui:SettingsExpander.Footer>
2026-02-28 04:23:28 +08:00
<ComboBox x:Name="LanguageComboBox"
Width="220"
SelectionChanged="OnLanguageSelectionChanged">
<ComboBoxItem x:Name="LanguageChineseItem" Tag="zh-CN" Content="&#20013;&#25991;" />
<ComboBoxItem x:Name="LanguageEnglishItem" Tag="en-US" Content="English" />
</ComboBox>
2026-03-01 00:34:07 +08:00
</ui:SettingsExpander.Footer>
2026-02-28 04:23:28 +08:00
</ui:SettingsExpander>
</StackPanel>
2026-02-27 19:27:38 +08:00
</Grid>
</Border>
</Grid>
</Border>
</Border>
</Grid>
2026-02-28 04:51:00 +08:00
<Border x:Name="ComponentLibraryWindow"
IsVisible="False"
Opacity="0"
Classes="glass-strong"
HorizontalAlignment="Center"
VerticalAlignment="Bottom"
Width="520"
MinWidth="360"
MaxWidth="720"
Height="260"
MinHeight="220"
Margin="24,24,24,100"
CornerRadius="18"
Padding="14">
<Border.Transitions>
<Transitions>
<DoubleTransition Property="Opacity" Duration="0:0:0.2" />
</Transitions>
</Border.Transitions>
<Grid RowDefinitions="Auto,*"
RowSpacing="10">
<Grid ColumnDefinitions="*,Auto">
<TextBlock x:Name="ComponentLibraryTitleTextBlock"
VerticalAlignment="Center"
FontSize="16"
FontWeight="SemiBold"
Foreground="{DynamicResource AdaptiveTextPrimaryBrush}"
Text="&#32452;&#20214;&#24211;" />
<Button x:Name="CloseComponentLibraryButton"
Grid.Column="1"
Padding="8"
Width="32"
Height="32"
Background="Transparent"
BorderThickness="0"
Foreground="{DynamicResource AdaptiveTextPrimaryBrush}"
Click="OnCloseComponentLibraryClick">
<fi:SymbolIcon Classes="icon-s"
Symbol="Dismiss"
IconVariant="Regular" />
</Button>
</Grid>
<Border Grid.Row="1"
Classes="glass-panel"
CornerRadius="12"
Padding="14">
2026-03-01 00:34:07 +08:00
<Grid>
<ScrollViewer x:Name="ComponentLibraryItemsScrollViewer"
VerticalScrollBarVisibility="Auto"
HorizontalScrollBarVisibility="Disabled">
<WrapPanel x:Name="ComponentLibraryItemsPanel"
ItemWidth="190"
ItemHeight="104"
Orientation="Horizontal" />
</ScrollViewer>
<TextBlock x:Name="ComponentLibraryEmptyTextBlock"
VerticalAlignment="Center"
HorizontalAlignment="Center"
Foreground="{DynamicResource AdaptiveTextSecondaryBrush}"
Text="&#26242;&#26080;&#32452;&#20214;&#65292;&#21518;&#32493;&#23558;&#22312;&#36825;&#37324;&#26174;&#31034;&#12290;" />
</Grid>
2026-02-28 04:51:00 +08:00
</Border>
</Grid>
</Border>
2026-02-27 13:43:27 +08:00
</Grid>
2026-02-26 23:08:19 +08:00
</Window>