mirror of
https://github.com/wwiinnddyy/LanMountainDesktop.git
synced 2026-06-20 23:54:26 +08:00
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.
317 lines
16 KiB
XML
317 lines
16 KiB
XML
<UserControl xmlns="https://github.com/avaloniaui"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:vm="using:LanMountainDesktop.ViewModels"
|
|
xmlns:controls="using:LanMountainDesktop.Controls"
|
|
xmlns:ui="using:FluentAvalonia.UI.Controls"
|
|
xmlns:fi="using:FluentIcons.Avalonia"
|
|
x:Class="LanMountainDesktop.Views.SettingsPages.WallpaperSettingsPage"
|
|
x:DataType="vm:WallpaperSettingsPageViewModel">
|
|
<ScrollViewer VerticalScrollBarVisibility="Auto">
|
|
<StackPanel Classes="settings-page-container settings-page-animated">
|
|
<Grid ColumnDefinitions="*,*"
|
|
ColumnSpacing="32"
|
|
Margin="0,0,0,32">
|
|
<Border Grid.Column="0"
|
|
VerticalAlignment="Top">
|
|
<Viewbox Stretch="Uniform">
|
|
<Border Width="1600"
|
|
Height="900"
|
|
Background="#080808"
|
|
BorderBrush="#1A1A1A"
|
|
BorderThickness="24"
|
|
CornerRadius="48"
|
|
BoxShadow="0 12 32 #50000000">
|
|
<Panel Background="{DynamicResource AdaptiveSurfaceBaseBrush}"
|
|
Margin="2">
|
|
<Border Background="#FFF6F7F9"
|
|
IsVisible="{Binding IsImage}">
|
|
<Border Background="{Binding PreviewBrush}" />
|
|
</Border>
|
|
|
|
<Border Background="{Binding SelectedColor}"
|
|
IsVisible="{Binding IsSolidColor}" />
|
|
|
|
<Border Background="#FFF6F7F9"
|
|
IsVisible="{Binding IsSystemWallpaper}">
|
|
<Border Background="{Binding PreviewBrush}" />
|
|
</Border>
|
|
</Panel>
|
|
</Border>
|
|
</Viewbox>
|
|
</Border>
|
|
|
|
<StackPanel Grid.Column="1"
|
|
VerticalAlignment="Center"
|
|
Spacing="12"
|
|
IsVisible="{Binding IsSolidColor}">
|
|
<TextBlock Text="{Binding WallpaperColorLabel}"
|
|
FontSize="14"
|
|
FontWeight="SemiBold"
|
|
Opacity="0.8" />
|
|
<UniformGrid Columns="4"
|
|
Rows="3">
|
|
<Button Width="48"
|
|
Height="48"
|
|
Margin="4"
|
|
Padding="0"
|
|
Background="#D8A7B1"
|
|
BorderThickness="0"
|
|
CornerRadius="6"
|
|
Command="{Binding SelectColorCommand}"
|
|
CommandParameter="#D8A7B1"
|
|
ToolTip.Tip="#D8A7B1" />
|
|
<Button Width="48"
|
|
Height="48"
|
|
Margin="4"
|
|
Padding="0"
|
|
Background="#B6C9BB"
|
|
BorderThickness="0"
|
|
CornerRadius="6"
|
|
Command="{Binding SelectColorCommand}"
|
|
CommandParameter="#B6C9BB"
|
|
ToolTip.Tip="#B6C9BB" />
|
|
<Button Width="48"
|
|
Height="48"
|
|
Margin="4"
|
|
Padding="0"
|
|
Background="#A2B5BB"
|
|
BorderThickness="0"
|
|
CornerRadius="6"
|
|
Command="{Binding SelectColorCommand}"
|
|
CommandParameter="#A2B5BB"
|
|
ToolTip.Tip="#A2B5BB" />
|
|
<Button Width="48"
|
|
Height="48"
|
|
Margin="4"
|
|
Padding="0"
|
|
Background="#E6E2D3"
|
|
BorderThickness="0"
|
|
CornerRadius="6"
|
|
Command="{Binding SelectColorCommand}"
|
|
CommandParameter="#E6E2D3"
|
|
ToolTip.Tip="#E6E2D3" />
|
|
<Button Width="48"
|
|
Height="48"
|
|
Margin="4"
|
|
Padding="0"
|
|
Background="#B5A397"
|
|
BorderThickness="0"
|
|
CornerRadius="6"
|
|
Command="{Binding SelectColorCommand}"
|
|
CommandParameter="#B5A397"
|
|
ToolTip.Tip="#B5A397" />
|
|
<Button Width="48"
|
|
Height="48"
|
|
Margin="4"
|
|
Padding="0"
|
|
Background="#C5C1C0"
|
|
BorderThickness="0"
|
|
CornerRadius="6"
|
|
Command="{Binding SelectColorCommand}"
|
|
CommandParameter="#C5C1C0"
|
|
ToolTip.Tip="#C5C1C0" />
|
|
<Button Width="48"
|
|
Height="48"
|
|
Margin="4"
|
|
Padding="0"
|
|
Background="#D4BE8D"
|
|
BorderThickness="0"
|
|
CornerRadius="6"
|
|
Command="{Binding SelectColorCommand}"
|
|
CommandParameter="#D4BE8D"
|
|
ToolTip.Tip="#D4BE8D" />
|
|
<Button Width="48"
|
|
Height="48"
|
|
Margin="4"
|
|
Padding="0"
|
|
Background="#C08261"
|
|
BorderThickness="0"
|
|
CornerRadius="6"
|
|
Command="{Binding SelectColorCommand}"
|
|
CommandParameter="#C08261"
|
|
ToolTip.Tip="#C08261" />
|
|
<Button Width="48"
|
|
Height="48"
|
|
Margin="4"
|
|
Padding="0"
|
|
Background="#8E9775"
|
|
BorderThickness="0"
|
|
CornerRadius="6"
|
|
Command="{Binding SelectColorCommand}"
|
|
CommandParameter="#8E9775"
|
|
ToolTip.Tip="#8E9775" />
|
|
<Button Width="48"
|
|
Height="48"
|
|
Margin="4"
|
|
Padding="0"
|
|
Background="#9FBAD3"
|
|
BorderThickness="0"
|
|
CornerRadius="6"
|
|
Command="{Binding SelectColorCommand}"
|
|
CommandParameter="#9FBAD3"
|
|
ToolTip.Tip="#9FBAD3" />
|
|
<Button Width="48"
|
|
Height="48"
|
|
Margin="4"
|
|
Padding="0"
|
|
Background="#E5BAA2"
|
|
BorderThickness="0"
|
|
CornerRadius="6"
|
|
Command="{Binding SelectColorCommand}"
|
|
CommandParameter="#E5BAA2"
|
|
ToolTip.Tip="#E5BAA2" />
|
|
|
|
<Button Width="48"
|
|
Height="48"
|
|
Margin="4"
|
|
Padding="0"
|
|
Background="{Binding CustomColorBrush}"
|
|
BorderThickness="0"
|
|
CornerRadius="6"
|
|
ToolTip.Tip="Custom color">
|
|
<Button.Flyout>
|
|
<Flyout Placement="BottomEdgeAlignedLeft">
|
|
<StackPanel Width="260"
|
|
Spacing="12">
|
|
<ColorPicker Color="{Binding CustomColor}" />
|
|
</StackPanel>
|
|
</Flyout>
|
|
</Button.Flyout>
|
|
</Button>
|
|
</UniformGrid>
|
|
</StackPanel>
|
|
|
|
<StackPanel Grid.Column="1"
|
|
VerticalAlignment="Center"
|
|
Spacing="12"
|
|
IsVisible="{Binding IsSystemWallpaper}">
|
|
<TextBlock Text="{Binding SystemWallpaperLabel}"
|
|
FontSize="14"
|
|
FontWeight="SemiBold"
|
|
Opacity="0.8" />
|
|
<TextBlock Text="{Binding SystemWallpaperStatus}"
|
|
FontSize="12"
|
|
Opacity="0.7"
|
|
TextWrapping="Wrap"
|
|
MaxWidth="280" />
|
|
</StackPanel>
|
|
</Grid>
|
|
|
|
<Separator Classes="settings-separator"
|
|
Margin="0,0,0,24" />
|
|
|
|
<controls:IconText Icon="Image"
|
|
Text="{Binding WallpaperHeader}"
|
|
Margin="0,0,0,8" />
|
|
|
|
<ui:FASettingsExpander Header="{Binding WallpaperTypeLabel}">
|
|
<ui:FASettingsExpander.IconSource>
|
|
<ui:FAFontIconSource Glyph="󰊠" FontFamily="avares://fluenticons.resources.avalonia/Assets#Seagull Fluent Icons" />
|
|
</ui:FASettingsExpander.IconSource>
|
|
<ui:FASettingsExpander.Footer>
|
|
<ComboBox Width="200"
|
|
ItemsSource="{Binding WallpaperTypes}"
|
|
SelectedItem="{Binding SelectedWallpaperType}">
|
|
<ComboBox.ItemTemplate>
|
|
<DataTemplate x:DataType="vm:SelectionOption">
|
|
<TextBlock Text="{Binding Label}" />
|
|
</DataTemplate>
|
|
</ComboBox.ItemTemplate>
|
|
</ComboBox>
|
|
</ui:FASettingsExpander.Footer>
|
|
</ui:FASettingsExpander>
|
|
|
|
<ui:FASettingsExpander Header="{Binding WallpaperPathLabel}"
|
|
IsVisible="{Binding IsImage}"
|
|
Margin="0,4,0,0">
|
|
<ui:FASettingsExpander.IconSource>
|
|
<ui:FAFontIconSource Glyph="󰉴" FontFamily="avares://fluenticons.resources.avalonia/Assets#Seagull Fluent Icons" />
|
|
</ui:FASettingsExpander.IconSource>
|
|
<ui:FASettingsExpander.Footer>
|
|
<StackPanel Orientation="Horizontal"
|
|
Spacing="8">
|
|
<TextBox IsReadOnly="True"
|
|
Width="300"
|
|
Text="{Binding WallpaperPath}"
|
|
VerticalAlignment="Center" />
|
|
<Button Click="OnBrowseWallpaperClick"
|
|
Classes="accent"
|
|
Content="{Binding ImportWallpaperButtonText}"
|
|
VerticalAlignment="Center" />
|
|
</StackPanel>
|
|
</ui:FASettingsExpander.Footer>
|
|
</ui:FASettingsExpander>
|
|
|
|
<ui:FASettingsExpander Header="{Binding RefreshIntervalLabel}"
|
|
IsVisible="{Binding IsSystemWallpaper}"
|
|
Margin="0,4,0,0">
|
|
<ui:FASettingsExpander.IconSource>
|
|
<ui:FAFontIconSource Glyph="󰅨" FontFamily="avares://fluenticons.resources.avalonia/Assets#Seagull Fluent Icons" />
|
|
</ui:FASettingsExpander.IconSource>
|
|
<ui:FASettingsExpander.Footer>
|
|
<StackPanel Orientation="Horizontal"
|
|
Spacing="8">
|
|
<ComboBox Width="140"
|
|
ItemsSource="{Binding RefreshIntervals}"
|
|
SelectedItem="{Binding SelectedRefreshInterval}">
|
|
<ComboBox.ItemTemplate>
|
|
<DataTemplate x:DataType="vm:SelectionOption">
|
|
<TextBlock Text="{Binding Label}" />
|
|
</DataTemplate>
|
|
</ComboBox.ItemTemplate>
|
|
</ComboBox>
|
|
<Button Classes="settings-accent-button"
|
|
Command="{Binding RefreshSystemWallpaperCommand}"
|
|
ToolTip.Tip="{Binding RefreshButtonTooltip}"
|
|
VerticalAlignment="Center"
|
|
Padding="12,8">
|
|
<fi:SymbolIcon Symbol="ArrowSync"
|
|
IconVariant="Regular" />
|
|
</Button>
|
|
</StackPanel>
|
|
</ui:FASettingsExpander.Footer>
|
|
</ui:FASettingsExpander>
|
|
|
|
<ui:FASettingsExpander Header="{Binding WallpaperPlacementLabel}"
|
|
Description="{Binding WallpaperPlacementDescription}"
|
|
IsVisible="{Binding IsImage}"
|
|
Margin="0,4,0,0">
|
|
<ui:FASettingsExpander.IconSource>
|
|
<ui:FAFontIconSource Glyph="󰨠" FontFamily="avares://fluenticons.resources.avalonia/Assets#Seagull Fluent Icons" />
|
|
</ui:FASettingsExpander.IconSource>
|
|
<ui:FASettingsExpander.Footer>
|
|
<ComboBox Width="200"
|
|
ItemsSource="{Binding WallpaperPlacements}"
|
|
SelectedItem="{Binding SelectedWallpaperPlacement}">
|
|
<ComboBox.ItemTemplate>
|
|
<DataTemplate x:DataType="vm:SelectionOption">
|
|
<TextBlock Text="{Binding Label}" />
|
|
</DataTemplate>
|
|
</ComboBox.ItemTemplate>
|
|
</ComboBox>
|
|
</ui:FASettingsExpander.Footer>
|
|
</ui:FASettingsExpander>
|
|
|
|
<ui:FASettingsExpander Header="{Binding WallpaperPlacementLabel}"
|
|
Description="{Binding WallpaperPlacementDescription}"
|
|
IsVisible="{Binding IsSystemWallpaper}"
|
|
Margin="0,4,0,0">
|
|
<ui:FASettingsExpander.IconSource>
|
|
<ui:FAFontIconSource Glyph="󰨠" FontFamily="avares://fluenticons.resources.avalonia/Assets#Seagull Fluent Icons" />
|
|
</ui:FASettingsExpander.IconSource>
|
|
<ui:FASettingsExpander.Footer>
|
|
<ComboBox Width="200"
|
|
ItemsSource="{Binding WallpaperPlacements}"
|
|
SelectedItem="{Binding SelectedWallpaperPlacement}">
|
|
<ComboBox.ItemTemplate>
|
|
<DataTemplate x:DataType="vm:SelectionOption">
|
|
<TextBlock Text="{Binding Label}" />
|
|
</DataTemplate>
|
|
</ComboBox.ItemTemplate>
|
|
</ComboBox>
|
|
</ui:FASettingsExpander.Footer>
|
|
</ui:FASettingsExpander>
|
|
</StackPanel>
|
|
</ScrollViewer>
|
|
</UserControl>
|