mirror of
https://github.com/wwiinnddyy/LanMountainDesktop.git
synced 2026-06-20 23:54:26 +08:00
919 lines
43 KiB
XML
919 lines
43 KiB
XML
<Window xmlns="https://github.com/avaloniaui"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
|
xmlns:views="clr-namespace:LanMountainDesktop.Launcher.Views"
|
|
xmlns:ui="using:FluentAvalonia.UI.Controls"
|
|
xmlns:fi="using:FluentIcons.Avalonia"
|
|
xmlns:res="clr-namespace:LanMountainDesktop.Launcher.Resources"
|
|
mc:Ignorable="d"
|
|
d:DesignWidth="850"
|
|
d:DesignHeight="650"
|
|
x:Class="LanMountainDesktop.Launcher.Views.OobeWindow"
|
|
x:DataType="views:OobeWindow"
|
|
x:CompileBindings="False"
|
|
Title="{x:Static res:Strings.Oobe_Title}"
|
|
Width="850"
|
|
Height="650"
|
|
CanResize="False"
|
|
WindowStartupLocation="CenterScreen"
|
|
Background="{DynamicResource SolidBackgroundFillColorBaseBrush}"
|
|
TransparencyLevelHint="None"
|
|
Icon="/Assets/logo.ico">
|
|
<Design.DataContext>
|
|
<views:OobeWindow />
|
|
</Design.DataContext>
|
|
|
|
<Grid x:Name="ContentGrid">
|
|
<!-- 步骤 1: 打字机动画开场 -->
|
|
<Grid x:Name="TypingStep" Margin="60,80,60,60">
|
|
<!-- 主标题区域(左上角) -->
|
|
<StackPanel HorizontalAlignment="Left" VerticalAlignment="Top" Spacing="16">
|
|
<!-- 打字机文本区域 -->
|
|
<StackPanel Orientation="Horizontal">
|
|
<TextBlock x:Name="TypingTextBlock"
|
|
FontSize="28"
|
|
FontWeight="SemiBold"
|
|
Foreground="{DynamicResource TextFillColorPrimaryBrush}"
|
|
FontFamily="Consolas, Monaco, 'Courier New', monospace" />
|
|
<Border x:Name="CursorBorder"
|
|
Width="3"
|
|
Height="28"
|
|
Background="{DynamicResource TextFillColorPrimaryBrush}"
|
|
VerticalAlignment="Bottom"
|
|
Margin="4,0,0,4">
|
|
<Border.Styles>
|
|
<Style Selector="Border">
|
|
<Style.Animations>
|
|
<Animation Duration="0:0:0.8" IterationCount="INFINITE">
|
|
<KeyFrame Cue="0%">
|
|
<Setter Property="Opacity" Value="1" />
|
|
</KeyFrame>
|
|
<KeyFrame Cue="50%">
|
|
<Setter Property="Opacity" Value="1" />
|
|
</KeyFrame>
|
|
<KeyFrame Cue="51%">
|
|
<Setter Property="Opacity" Value="0" />
|
|
</KeyFrame>
|
|
<KeyFrame Cue="100%">
|
|
<Setter Property="Opacity" Value="0" />
|
|
</KeyFrame>
|
|
</Animation>
|
|
</Style.Animations>
|
|
</Style>
|
|
</Border.Styles>
|
|
</Border>
|
|
</StackPanel>
|
|
|
|
<!-- 副标题区域(流光渐变动画 + 打字机效果) -->
|
|
<StackPanel x:Name="SubtitlePanel" Opacity="0" IsVisible="False" Spacing="4">
|
|
<StackPanel Orientation="Horizontal">
|
|
<TextBlock x:Name="NextGenTextBlock"
|
|
FontSize="48"
|
|
FontWeight="Bold"
|
|
FontFamily="Consolas, Monaco, 'Courier New', monospace">
|
|
<TextBlock.Foreground>
|
|
<LinearGradientBrush StartPoint="0%,0%" EndPoint="100%,100%">
|
|
<GradientStop Offset="0.0" Color="#0078D4" />
|
|
<GradientStop Offset="0.33" Color="#7B68EE" />
|
|
<GradientStop Offset="0.66" Color="#FF8C00" />
|
|
<GradientStop Offset="1.0" Color="#107C10" />
|
|
</LinearGradientBrush>
|
|
</TextBlock.Foreground>
|
|
</TextBlock> <Border x:Name="SubtitleCursorBorder"
|
|
Width="4"
|
|
Height="48"
|
|
Background="{DynamicResource TextFillColorPrimaryBrush}"
|
|
VerticalAlignment="Bottom"
|
|
Margin="4,0,0,4"
|
|
IsVisible="False">
|
|
<Border.Styles>
|
|
<Style Selector="Border">
|
|
<Style.Animations>
|
|
<Animation Duration="0:0:0.8" IterationCount="INFINITE">
|
|
<KeyFrame Cue="0%">
|
|
<Setter Property="Opacity" Value="1" />
|
|
</KeyFrame>
|
|
<KeyFrame Cue="50%">
|
|
<Setter Property="Opacity" Value="1" />
|
|
</KeyFrame>
|
|
<KeyFrame Cue="51%">
|
|
<Setter Property="Opacity" Value="0" />
|
|
</KeyFrame>
|
|
<KeyFrame Cue="100%">
|
|
<Setter Property="Opacity" Value="0" />
|
|
</KeyFrame>
|
|
</Animation>
|
|
</Style.Animations>
|
|
</Style>
|
|
</Border.Styles>
|
|
</Border>
|
|
</StackPanel>
|
|
<TextBlock x:Name="DashboardTextBlock"
|
|
FontSize="48"
|
|
FontWeight="Bold"
|
|
FontFamily="Consolas, Monaco, 'Courier New', monospace"
|
|
Foreground="{DynamicResource TextFillColorPrimaryBrush}" />
|
|
</StackPanel>
|
|
</StackPanel>
|
|
|
|
<!-- 按钮动画区域(左下角) -->
|
|
<Grid x:Name="ButtonAnimationArea"
|
|
Width="280"
|
|
Height="80"
|
|
HorizontalAlignment="Left"
|
|
VerticalAlignment="Bottom"
|
|
Margin="0,0,0,40"
|
|
IsVisible="False">
|
|
|
|
<!-- 方框边框(由鼠标画出) -->
|
|
<Border x:Name="DrawnBorder"
|
|
Width="160"
|
|
Height="56"
|
|
HorizontalAlignment="Left"
|
|
VerticalAlignment="Top"
|
|
Background="Transparent"
|
|
BorderBrush="{DynamicResource AccentFillColorDefaultBrush}"
|
|
BorderThickness="0"
|
|
CornerRadius="{DynamicResource DesignCornerRadiusMd}">
|
|
</Border>
|
|
|
|
<!-- 开始按钮(从方框中弹出) -->
|
|
<Button x:Name="StartButton"
|
|
Width="160"
|
|
Height="56"
|
|
HorizontalAlignment="Left"
|
|
VerticalAlignment="Top"
|
|
Theme="{DynamicResource AccentButtonTheme}"
|
|
Opacity="0"
|
|
IsVisible="False"
|
|
RenderTransformOrigin="0.5,0.5">
|
|
<Button.RenderTransform>
|
|
<ScaleTransform ScaleX="0.1" ScaleY="0.1" />
|
|
</Button.RenderTransform>
|
|
<TextBlock Text="{x:Static res:Strings.Oobe_ButtonGetStarted}"
|
|
FontSize="16"
|
|
FontWeight="SemiBold" />
|
|
</Button>
|
|
|
|
<!-- 鼠标光标 -->
|
|
<Canvas x:Name="MouseCursor"
|
|
Width="24"
|
|
Height="24"
|
|
HorizontalAlignment="Left"
|
|
VerticalAlignment="Top"
|
|
Margin="-50,-50,0,0"
|
|
IsVisible="False">
|
|
<Path Data="M0,0 L0,18 L4,14 L7,20 L10,19 L7,13 L12,13 Z"
|
|
Fill="{DynamicResource TextFillColorPrimaryBrush}"
|
|
Stroke="{DynamicResource SolidBackgroundFillColorBaseBrush}"
|
|
StrokeThickness="1" />
|
|
</Canvas>
|
|
</Grid>
|
|
</Grid>
|
|
|
|
<!-- 步骤 2: 主题选择页面 -->
|
|
<Grid x:Name="ThemeStep" Margin="48" RowDefinitions="Auto,*,Auto" IsVisible="False">
|
|
<StackPanel Grid.Row="0" Spacing="8" Margin="0,0,0,24">
|
|
<TextBlock Text="{x:Static res:Strings.Oobe_AppearanceTitle}"
|
|
FontSize="24"
|
|
FontWeight="SemiBold"
|
|
Foreground="{DynamicResource TextFillColorPrimaryBrush}" />
|
|
<TextBlock Text="{x:Static res:Strings.Oobe_AppearanceDesc}"
|
|
FontSize="13"
|
|
Foreground="{DynamicResource TextFillColorSecondaryBrush}" />
|
|
</StackPanel>
|
|
|
|
<ScrollViewer Grid.Row="1" VerticalScrollBarVisibility="Auto">
|
|
<StackPanel Spacing="20">
|
|
<!-- 浅色/深色模式选择 -->
|
|
<Border Background="{DynamicResource CardBackgroundFillColorDefaultBrush}"
|
|
CornerRadius="{DynamicResource DesignCornerRadiusMd}"
|
|
Padding="16">
|
|
<StackPanel Spacing="12">
|
|
<TextBlock Text="{x:Static res:Strings.Oobe_AppearanceMode}"
|
|
FontSize="14"
|
|
FontWeight="SemiBold"
|
|
Foreground="{DynamicResource TextFillColorPrimaryBrush}" />
|
|
<Grid ColumnDefinitions="*,*" ColumnSpacing="12">
|
|
<Border x:Name="LightModeOption"
|
|
Grid.Column="0"
|
|
Background="{DynamicResource SolidBackgroundFillColorQuarternaryBrush}"
|
|
CornerRadius="{DynamicResource DesignCornerRadiusMd}"
|
|
BorderThickness="2"
|
|
BorderBrush="{DynamicResource AccentFillColorDefaultBrush}"
|
|
Padding="16"
|
|
Cursor="Hand">
|
|
<StackPanel Spacing="8" HorizontalAlignment="Center">
|
|
<Border Width="48"
|
|
Height="48"
|
|
Background="#F3F3F3"
|
|
CornerRadius="8"
|
|
BorderBrush="#E0E0E0"
|
|
BorderThickness="1">
|
|
<fi:SymbolIcon Symbol="WeatherSunny"
|
|
FontSize="24"
|
|
Foreground="#5F5F5F"
|
|
HorizontalAlignment="Center"
|
|
VerticalAlignment="Center"/>
|
|
</Border>
|
|
<TextBlock Text="{x:Static res:Strings.Oobe_LightMode}"
|
|
FontSize="13"
|
|
HorizontalAlignment="Center"
|
|
Foreground="{DynamicResource TextFillColorPrimaryBrush}" />
|
|
<RadioButton x:Name="LightModeRadio"
|
|
GroupName="ThemeMode"
|
|
IsChecked="True"
|
|
HorizontalAlignment="Center" />
|
|
</StackPanel>
|
|
</Border>
|
|
|
|
<Border x:Name="DarkModeOption"
|
|
Grid.Column="1"
|
|
Background="{DynamicResource SolidBackgroundFillColorQuarternaryBrush}"
|
|
CornerRadius="{DynamicResource DesignCornerRadiusMd}"
|
|
BorderThickness="1"
|
|
BorderBrush="{DynamicResource CardStrokeColorDefaultBrush}"
|
|
Padding="16"
|
|
Cursor="Hand">
|
|
<StackPanel Spacing="8" HorizontalAlignment="Center">
|
|
<Border Width="48"
|
|
Height="48"
|
|
Background="#1E1E1E"
|
|
CornerRadius="8"
|
|
BorderBrush="#333333"
|
|
BorderThickness="1">
|
|
<fi:SymbolIcon Symbol="WeatherMoon"
|
|
FontSize="24"
|
|
Foreground="#E0E0E0"
|
|
HorizontalAlignment="Center"
|
|
VerticalAlignment="Center"/>
|
|
</Border>
|
|
<TextBlock Text="{x:Static res:Strings.Oobe_DarkMode}"
|
|
FontSize="13"
|
|
HorizontalAlignment="Center"
|
|
Foreground="{DynamicResource TextFillColorPrimaryBrush}" />
|
|
<RadioButton x:Name="DarkModeRadio"
|
|
GroupName="ThemeMode"
|
|
HorizontalAlignment="Center" />
|
|
</StackPanel>
|
|
</Border>
|
|
</Grid>
|
|
</StackPanel>
|
|
</Border>
|
|
|
|
<!-- 主题色选择 -->
|
|
<Border Background="{DynamicResource CardBackgroundFillColorDefaultBrush}"
|
|
CornerRadius="{DynamicResource DesignCornerRadiusMd}"
|
|
Padding="16">
|
|
<StackPanel Spacing="12">
|
|
<TextBlock Text="{x:Static res:Strings.Oobe_ThemeColor}"
|
|
FontSize="14"
|
|
FontWeight="SemiBold"
|
|
Foreground="{DynamicResource TextFillColorPrimaryBrush}" />
|
|
<WrapPanel x:Name="AccentColorPanel" HorizontalAlignment="Left">
|
|
<!-- 预设颜色 -->
|
|
<Border x:Name="BlueColor"
|
|
Width="40"
|
|
Height="40"
|
|
Background="#0078D4"
|
|
CornerRadius="20"
|
|
BorderThickness="3"
|
|
BorderBrush="{DynamicResource AccentFillColorDefaultBrush}"
|
|
Margin="0,0,12,12"
|
|
Cursor="Hand">
|
|
<Border.Styles>
|
|
<Style Selector="Border:pointerover">
|
|
<Setter Property="RenderTransform" Value="scale(1.1)" />
|
|
</Style>
|
|
</Border.Styles>
|
|
</Border>
|
|
<Border x:Name="PurpleColor"
|
|
Width="40"
|
|
Height="40"
|
|
Background="#7B68EE"
|
|
CornerRadius="20"
|
|
BorderThickness="0"
|
|
Margin="0,0,12,12"
|
|
Cursor="Hand" />
|
|
<Border x:Name="GreenColor"
|
|
Width="40"
|
|
Height="40"
|
|
Background="#107C10"
|
|
CornerRadius="20"
|
|
BorderThickness="0"
|
|
Margin="0,0,12,12"
|
|
Cursor="Hand" />
|
|
<Border x:Name="OrangeColor"
|
|
Width="40"
|
|
Height="40"
|
|
Background="#D83B01"
|
|
CornerRadius="20"
|
|
BorderThickness="0"
|
|
Margin="0,0,12,12"
|
|
Cursor="Hand" />
|
|
<Border x:Name="PinkColor"
|
|
Width="40"
|
|
Height="40"
|
|
Background="#E3008C"
|
|
CornerRadius="20"
|
|
BorderThickness="0"
|
|
Margin="0,0,12,12"
|
|
Cursor="Hand" />
|
|
<Border x:Name="TealColor"
|
|
Width="40"
|
|
Height="40"
|
|
Background="#008080"
|
|
CornerRadius="20"
|
|
BorderThickness="0"
|
|
Margin="0,0,12,12"
|
|
Cursor="Hand" />
|
|
</WrapPanel>
|
|
</StackPanel>
|
|
</Border>
|
|
|
|
<!-- 莫奈取色来源 -->
|
|
<Border Background="{DynamicResource CardBackgroundFillColorDefaultBrush}"
|
|
CornerRadius="{DynamicResource DesignCornerRadiusMd}"
|
|
Padding="16">
|
|
<StackPanel Spacing="12">
|
|
<TextBlock Text="{x:Static res:Strings.Oobe_MonetSource}"
|
|
FontSize="14"
|
|
FontWeight="SemiBold"
|
|
Foreground="{DynamicResource TextFillColorPrimaryBrush}" />
|
|
<TextBlock Text="{x:Static res:Strings.Oobe_MonetDesc}"
|
|
FontSize="12"
|
|
Foreground="{DynamicResource TextFillColorSecondaryBrush}" />
|
|
|
|
<StackPanel Spacing="8">
|
|
<Border x:Name="MonetFromWallpaperOption"
|
|
Background="{DynamicResource SolidBackgroundFillColorQuarternaryBrush}"
|
|
CornerRadius="{DynamicResource DesignCornerRadiusMd}"
|
|
BorderThickness="2"
|
|
BorderBrush="{DynamicResource AccentFillColorDefaultBrush}"
|
|
Padding="12"
|
|
Cursor="Hand">
|
|
<Grid ColumnDefinitions="Auto,*">
|
|
<RadioButton x:Name="MonetFromWallpaperRadio"
|
|
Grid.Column="0"
|
|
GroupName="MonetSource"
|
|
IsChecked="True"
|
|
VerticalAlignment="Center"
|
|
Margin="0,0,12,0" />
|
|
<StackPanel Grid.Column="1" Spacing="4">
|
|
<TextBlock Text="{x:Static res:Strings.Oobe_MonetFromWallpaper}"
|
|
FontSize="13"
|
|
FontWeight="SemiBold"
|
|
Foreground="{DynamicResource TextFillColorPrimaryBrush}" />
|
|
<TextBlock Text="{x:Static res:Strings.Oobe_MonetFromWallpaperDesc}"
|
|
FontSize="11"
|
|
Foreground="{DynamicResource TextFillColorSecondaryBrush}" />
|
|
</StackPanel>
|
|
</Grid>
|
|
</Border>
|
|
|
|
<Border x:Name="MonetFromCustomOption"
|
|
Background="{DynamicResource SolidBackgroundFillColorQuarternaryBrush}"
|
|
CornerRadius="{DynamicResource DesignCornerRadiusMd}"
|
|
BorderThickness="1"
|
|
BorderBrush="{DynamicResource CardStrokeColorDefaultBrush}"
|
|
Padding="12"
|
|
Cursor="Hand">
|
|
<Grid ColumnDefinitions="Auto,*">
|
|
<RadioButton x:Name="MonetFromCustomRadio"
|
|
Grid.Column="0"
|
|
GroupName="MonetSource"
|
|
VerticalAlignment="Center"
|
|
Margin="0,0,12,0" />
|
|
<StackPanel Grid.Column="1" Spacing="4">
|
|
<TextBlock Text="{x:Static res:Strings.Oobe_MonetFromCustomImage}"
|
|
FontSize="13"
|
|
FontWeight="SemiBold"
|
|
Foreground="{DynamicResource TextFillColorPrimaryBrush}" />
|
|
<TextBlock Text="{x:Static res:Strings.Oobe_MonetFromCustomImageDesc}"
|
|
FontSize="11"
|
|
Foreground="{DynamicResource TextFillColorSecondaryBrush}" />
|
|
</StackPanel>
|
|
</Grid>
|
|
</Border>
|
|
|
|
<Border x:Name="MonetDisabledOption"
|
|
Background="{DynamicResource SolidBackgroundFillColorQuarternaryBrush}"
|
|
CornerRadius="{DynamicResource DesignCornerRadiusMd}"
|
|
BorderThickness="1"
|
|
BorderBrush="{DynamicResource CardStrokeColorDefaultBrush}"
|
|
Padding="12"
|
|
Cursor="Hand">
|
|
<Grid ColumnDefinitions="Auto,*">
|
|
<RadioButton x:Name="MonetDisabledRadio"
|
|
Grid.Column="0"
|
|
GroupName="MonetSource"
|
|
VerticalAlignment="Center"
|
|
Margin="0,0,12,0" />
|
|
<StackPanel Grid.Column="1" Spacing="4">
|
|
<TextBlock Text="{x:Static res:Strings.Oobe_MonetDisabled}"
|
|
FontSize="13"
|
|
FontWeight="SemiBold"
|
|
Foreground="{DynamicResource TextFillColorPrimaryBrush}" />
|
|
<TextBlock Text="{x:Static res:Strings.Oobe_MonetDisabledDesc}"
|
|
FontSize="11"
|
|
Foreground="{DynamicResource TextFillColorSecondaryBrush}" />
|
|
</StackPanel>
|
|
</Grid>
|
|
</Border>
|
|
</StackPanel>
|
|
</StackPanel>
|
|
</Border>
|
|
</StackPanel>
|
|
</ScrollViewer>
|
|
|
|
<StackPanel Grid.Row="2"
|
|
Orientation="Horizontal"
|
|
HorizontalAlignment="Right"
|
|
Spacing="12"
|
|
Margin="0,24,0,0">
|
|
<Button x:Name="ThemeBackButton"
|
|
Content="{x:Static res:Strings.Oobe_ButtonBack}"
|
|
Theme="{DynamicResource ButtonTheme}" />
|
|
<Button x:Name="ThemeNextButton"
|
|
Content="{x:Static res:Strings.Oobe_ButtonNext}"
|
|
Theme="{DynamicResource AccentButtonTheme}" />
|
|
</StackPanel>
|
|
</Grid>
|
|
|
|
<!-- 步骤 3: 数据位置选择页面 -->
|
|
<Grid x:Name="DataLocationStep" Margin="48" RowDefinitions="Auto,*,Auto" IsVisible="False">
|
|
<StackPanel Grid.Row="0" Spacing="8" Margin="0,0,0,32">
|
|
<TextBlock Text="{x:Static res:Strings.Oobe_DataLocationTitle}"
|
|
FontSize="28"
|
|
FontWeight="SemiBold"
|
|
Foreground="{DynamicResource TextFillColorPrimaryBrush}" />
|
|
<TextBlock Text="{x:Static res:Strings.Oobe_DataLocationDesc}"
|
|
FontSize="14"
|
|
Foreground="{DynamicResource TextFillColorSecondaryBrush}" />
|
|
</StackPanel>
|
|
|
|
<StackPanel Grid.Row="1" Spacing="20">
|
|
<Border x:Name="AdminWarningBanner"
|
|
Background="{DynamicResource SystemFillColorCriticalBackgroundBrush}"
|
|
CornerRadius="{DynamicResource DesignCornerRadiusMd}"
|
|
Padding="16,12"
|
|
IsVisible="False">
|
|
<StackPanel Spacing="6">
|
|
<StackPanel Orientation="Horizontal" Spacing="8">
|
|
<fi:SymbolIcon Symbol="ShieldError"
|
|
FontSize="20"
|
|
Foreground="{DynamicResource SystemFillColorCriticalBrush}" />
|
|
<TextBlock Text="{x:Static res:Strings.Oobe_NotWritable}"
|
|
FontWeight="SemiBold"
|
|
FontSize="14"
|
|
Foreground="{DynamicResource SystemFillColorCriticalBrush}" />
|
|
</StackPanel>
|
|
<TextBlock Text="{x:Static res:Strings.Oobe_NotWritableDesc}"
|
|
FontSize="13"
|
|
TextWrapping="Wrap"
|
|
Foreground="{DynamicResource SystemFillColorCriticalBrush}" />
|
|
</StackPanel>
|
|
</Border>
|
|
|
|
<!-- 系统用户目录选项 -->
|
|
<Border x:Name="SystemOptionBorder"
|
|
Background="{DynamicResource CardBackgroundFillColorDefaultBrush}"
|
|
CornerRadius="{DynamicResource DesignCornerRadiusMd}"
|
|
BorderThickness="2"
|
|
BorderBrush="{DynamicResource AccentFillColorDefaultBrush}"
|
|
Padding="20,18"
|
|
Cursor="Hand">
|
|
<Grid ColumnDefinitions="Auto,*">
|
|
<RadioButton x:Name="SystemRadio"
|
|
Grid.Column="0"
|
|
VerticalAlignment="Center"
|
|
Margin="0,0,16,0"
|
|
GroupName="DataLocation"
|
|
IsChecked="True" />
|
|
<StackPanel Grid.Column="1" Spacing="8">
|
|
<StackPanel Orientation="Horizontal" Spacing="8">
|
|
<fi:SymbolIcon Symbol="Folder"
|
|
FontSize="24"
|
|
Foreground="{DynamicResource AccentFillColorDefaultBrush}" />
|
|
<TextBlock Text="{x:Static res:Strings.Oobe_SystemProfile}"
|
|
FontSize="16"
|
|
FontWeight="SemiBold"
|
|
Foreground="{DynamicResource TextFillColorPrimaryBrush}" />
|
|
</StackPanel>
|
|
<TextBlock Text="{x:Static res:Strings.Oobe_SystemProfileDesc}"
|
|
FontSize="13"
|
|
TextWrapping="Wrap"
|
|
Foreground="{DynamicResource TextFillColorSecondaryBrush}" />
|
|
<Border Background="{DynamicResource SolidBackgroundFillColorQuarternaryBrush}"
|
|
CornerRadius="{DynamicResource DesignCornerRadiusSm}"
|
|
Padding="12,8"
|
|
Margin="0,4,0,0">
|
|
<TextBlock x:Name="SystemPathText"
|
|
FontSize="12"
|
|
TextWrapping="Wrap"
|
|
Foreground="{DynamicResource TextFillColorTertiaryBrush}"
|
|
FontFamily="Consolas, Monaco, monospace" />
|
|
</Border>
|
|
</StackPanel>
|
|
</Grid>
|
|
</Border>
|
|
|
|
<!-- 便携模式选项 -->
|
|
<Border x:Name="PortableOptionBorder"
|
|
Background="{DynamicResource CardBackgroundFillColorDefaultBrush}"
|
|
CornerRadius="{DynamicResource DesignCornerRadiusMd}"
|
|
BorderThickness="1"
|
|
BorderBrush="{DynamicResource CardStrokeColorDefaultBrush}"
|
|
Padding="20,18"
|
|
Cursor="Hand">
|
|
<Grid ColumnDefinitions="Auto,*">
|
|
<RadioButton x:Name="PortableRadio"
|
|
Grid.Column="0"
|
|
VerticalAlignment="Center"
|
|
Margin="0,0,16,0"
|
|
GroupName="DataLocation"
|
|
IsEnabled="False" />
|
|
<StackPanel Grid.Column="1" Spacing="8">
|
|
<StackPanel Orientation="Horizontal" Spacing="8">
|
|
<fi:SymbolIcon Symbol="Save"
|
|
FontSize="24"
|
|
Foreground="{DynamicResource TextFillColorSecondaryBrush}" />
|
|
<TextBlock Text="{x:Static res:Strings.Oobe_Portable}"
|
|
FontSize="16"
|
|
FontWeight="SemiBold"
|
|
Foreground="{DynamicResource TextFillColorPrimaryBrush}" />
|
|
</StackPanel>
|
|
<TextBlock Text="{x:Static res:Strings.Oobe_PortableDesc}"
|
|
FontSize="13"
|
|
TextWrapping="Wrap"
|
|
Foreground="{DynamicResource TextFillColorSecondaryBrush}" />
|
|
<Border Background="{DynamicResource SolidBackgroundFillColorQuarternaryBrush}"
|
|
CornerRadius="{DynamicResource DesignCornerRadiusSm}"
|
|
Padding="12,8"
|
|
Margin="0,4,0,0">
|
|
<TextBlock x:Name="PortablePathText"
|
|
FontSize="12"
|
|
TextWrapping="Wrap"
|
|
Foreground="{DynamicResource TextFillColorTertiaryBrush}"
|
|
FontFamily="Consolas, Monaco, monospace" />
|
|
</Border>
|
|
</StackPanel>
|
|
</Grid>
|
|
</Border>
|
|
|
|
<!-- 数据迁移提示 -->
|
|
<Border x:Name="MigrationInfoBorder"
|
|
Background="{DynamicResource SystemFillColorSuccessBackgroundBrush}"
|
|
CornerRadius="{DynamicResource DesignCornerRadiusMd}"
|
|
Padding="16,12"
|
|
IsVisible="False">
|
|
<StackPanel Orientation="Horizontal" Spacing="8">
|
|
<fi:SymbolIcon Symbol="Checkmark"
|
|
FontSize="20"
|
|
Foreground="{DynamicResource SystemFillColorSuccessBrush}" />
|
|
<TextBlock x:Name="MigrationInfoText"
|
|
FontSize="13"
|
|
TextWrapping="Wrap"
|
|
Foreground="{DynamicResource SystemFillColorSuccessBrush}" />
|
|
</StackPanel>
|
|
</Border>
|
|
</StackPanel>
|
|
|
|
<StackPanel Grid.Row="2"
|
|
Orientation="Horizontal"
|
|
HorizontalAlignment="Right"
|
|
Spacing="12"
|
|
Margin="0,32,0,0">
|
|
<Button x:Name="DataLocationBackButton"
|
|
Content="{x:Static res:Strings.Oobe_ButtonBack}"
|
|
Theme="{DynamicResource ButtonTheme}"
|
|
Width="100"
|
|
Height="36" />
|
|
<Button x:Name="DataLocationNextButton"
|
|
Content="{x:Static res:Strings.Oobe_ButtonNext}"
|
|
Theme="{DynamicResource AccentButtonTheme}"
|
|
Width="100"
|
|
Height="36" />
|
|
</StackPanel>
|
|
</Grid>
|
|
|
|
<!-- 步骤 4: 启动与展示(紧接数据保存位置) -->
|
|
<Grid x:Name="StartupPresentationStep" Margin="48" RowDefinitions="Auto,*,Auto" IsVisible="False">
|
|
<StackPanel Grid.Row="0" Spacing="8" Margin="0,0,0,16">
|
|
<TextBlock Text="{x:Static res:Strings.Oobe_StartupTitle}"
|
|
FontSize="24"
|
|
FontWeight="SemiBold"
|
|
Foreground="{DynamicResource TextFillColorPrimaryBrush}" />
|
|
<TextBlock Text="{x:Static res:Strings.Oobe_StartupDesc}"
|
|
FontSize="13"
|
|
TextWrapping="Wrap"
|
|
Foreground="{DynamicResource TextFillColorSecondaryBrush}" />
|
|
</StackPanel>
|
|
|
|
<ScrollViewer Grid.Row="1" VerticalScrollBarVisibility="Auto">
|
|
<StackPanel Spacing="14">
|
|
<Border Background="{DynamicResource CardBackgroundFillColorDefaultBrush}"
|
|
CornerRadius="{DynamicResource DesignCornerRadiusMd}"
|
|
Padding="16">
|
|
<Grid ColumnDefinitions="*,Auto">
|
|
<StackPanel Grid.Column="0" Spacing="4">
|
|
<TextBlock Text="{x:Static res:Strings.Oobe_ShowInTaskbar}"
|
|
FontSize="14"
|
|
FontWeight="SemiBold"
|
|
Foreground="{DynamicResource TextFillColorPrimaryBrush}" />
|
|
<TextBlock Text="{x:Static res:Strings.Oobe_ShowInTaskbarDesc}"
|
|
FontSize="12"
|
|
TextWrapping="Wrap"
|
|
Foreground="{DynamicResource TextFillColorSecondaryBrush}" />
|
|
</StackPanel>
|
|
<ToggleSwitch x:Name="OobeShowInTaskbarToggle"
|
|
Grid.Column="1"
|
|
VerticalAlignment="Center" />
|
|
</Grid>
|
|
</Border>
|
|
|
|
<Border x:Name="OobeSlideTransitionSection"
|
|
Background="{DynamicResource CardBackgroundFillColorDefaultBrush}"
|
|
CornerRadius="{DynamicResource DesignCornerRadiusMd}"
|
|
Padding="16">
|
|
<StackPanel Spacing="12">
|
|
<Grid ColumnDefinitions="*,Auto">
|
|
<StackPanel Grid.Column="0" Spacing="4">
|
|
<TextBlock Text="{x:Static res:Strings.Oobe_SlideTransition}"
|
|
FontSize="14"
|
|
FontWeight="SemiBold"
|
|
Foreground="{DynamicResource TextFillColorPrimaryBrush}" />
|
|
<TextBlock Text="{x:Static res:Strings.Oobe_SlideTransitionDesc}"
|
|
FontSize="12"
|
|
TextWrapping="Wrap"
|
|
Foreground="{DynamicResource TextFillColorSecondaryBrush}" />
|
|
</StackPanel>
|
|
<ToggleSwitch x:Name="OobeSlideTransitionToggle"
|
|
Grid.Column="1"
|
|
VerticalAlignment="Center" />
|
|
</Grid>
|
|
<Grid ColumnDefinitions="*,Auto">
|
|
<StackPanel Grid.Column="0" Spacing="4">
|
|
<TextBlock Text="{x:Static res:Strings.Oobe_FadeTransition}"
|
|
FontSize="14"
|
|
FontWeight="SemiBold"
|
|
Foreground="{DynamicResource TextFillColorPrimaryBrush}" />
|
|
<TextBlock Text="{x:Static res:Strings.Oobe_FadeTransitionDesc}"
|
|
FontSize="12"
|
|
TextWrapping="Wrap"
|
|
Foreground="{DynamicResource TextFillColorSecondaryBrush}" />
|
|
</StackPanel>
|
|
<ToggleSwitch x:Name="OobeFadeTransitionToggle"
|
|
Grid.Column="1"
|
|
VerticalAlignment="Center" />
|
|
</Grid>
|
|
</StackPanel>
|
|
</Border>
|
|
|
|
<Border Background="{DynamicResource CardBackgroundFillColorDefaultBrush}"
|
|
CornerRadius="{DynamicResource DesignCornerRadiusMd}"
|
|
Padding="16">
|
|
<Grid ColumnDefinitions="*,Auto">
|
|
<StackPanel Grid.Column="0" Spacing="4">
|
|
<StackPanel Orientation="Horizontal" Spacing="8">
|
|
<fi:SymbolIcon Symbol="SlideLayout"
|
|
FontSize="20"
|
|
Foreground="{DynamicResource AccentFillColorDefaultBrush}" />
|
|
<TextBlock Text="{x:Static res:Strings.Oobe_FusedDesktop}"
|
|
FontSize="14"
|
|
FontWeight="SemiBold"
|
|
Foreground="{DynamicResource TextFillColorPrimaryBrush}" />
|
|
</StackPanel>
|
|
<TextBlock Text="{x:Static res:Strings.Oobe_FusedDesktopDesc}"
|
|
FontSize="12"
|
|
TextWrapping="Wrap"
|
|
Foreground="{DynamicResource TextFillColorSecondaryBrush}" />
|
|
</StackPanel>
|
|
<ToggleSwitch x:Name="OobeFusedPopupToggle"
|
|
Grid.Column="1"
|
|
VerticalAlignment="Center" />
|
|
</Grid>
|
|
</Border>
|
|
|
|
<Border Background="{DynamicResource CardBackgroundFillColorDefaultBrush}"
|
|
CornerRadius="{DynamicResource DesignCornerRadiusMd}"
|
|
Padding="16">
|
|
<Grid ColumnDefinitions="*,Auto">
|
|
<StackPanel Grid.Column="0" Spacing="4">
|
|
<TextBlock Text="{x:Static res:Strings.Oobe_AutoStart}"
|
|
FontSize="14"
|
|
FontWeight="SemiBold"
|
|
Foreground="{DynamicResource TextFillColorPrimaryBrush}" />
|
|
<TextBlock x:Name="OobeAutoStartDescriptionText"
|
|
Text="{x:Static res:Strings.Oobe_AutoStartDesc}"
|
|
FontSize="12"
|
|
TextWrapping="Wrap"
|
|
Foreground="{DynamicResource TextFillColorSecondaryBrush}" />
|
|
</StackPanel>
|
|
<ToggleSwitch x:Name="OobeAutoStartToggle"
|
|
Grid.Column="1"
|
|
VerticalAlignment="Center" />
|
|
</Grid>
|
|
</Border>
|
|
</StackPanel>
|
|
</ScrollViewer>
|
|
|
|
<StackPanel Grid.Row="2"
|
|
Orientation="Horizontal"
|
|
HorizontalAlignment="Right"
|
|
Spacing="12"
|
|
Margin="0,24,0,0">
|
|
<Button x:Name="StartupPresentationBackButton"
|
|
Content="{x:Static res:Strings.Oobe_ButtonBack}"
|
|
Theme="{DynamicResource ButtonTheme}" />
|
|
<Button x:Name="StartupPresentationNextButton"
|
|
Content="{x:Static res:Strings.Oobe_ButtonNext}"
|
|
Theme="{DynamicResource AccentButtonTheme}" />
|
|
</StackPanel>
|
|
</Grid>
|
|
|
|
<!-- 步骤 5: 信息与隐私页面 -->
|
|
<Grid x:Name="PrivacyStep" Margin="48" RowDefinitions="Auto,*,Auto" IsVisible="False">
|
|
<StackPanel Grid.Row="0" Spacing="8" Margin="0,0,0,24">
|
|
<TextBlock Text="{x:Static res:Strings.Oobe_PrivacyTitle}"
|
|
FontSize="24"
|
|
FontWeight="SemiBold"
|
|
Foreground="{DynamicResource TextFillColorPrimaryBrush}" />
|
|
<TextBlock Text="{x:Static res:Strings.Oobe_PrivacyDesc}"
|
|
FontSize="13"
|
|
Foreground="{DynamicResource TextFillColorSecondaryBrush}" />
|
|
</StackPanel>
|
|
|
|
<StackPanel Grid.Row="1" Spacing="16">
|
|
<!-- 崩溃报告 -->
|
|
<Border Background="{DynamicResource CardBackgroundFillColorDefaultBrush}"
|
|
CornerRadius="{DynamicResource DesignCornerRadiusMd}"
|
|
Padding="16">
|
|
<Grid ColumnDefinitions="*,Auto">
|
|
<StackPanel Grid.Column="0" Spacing="4">
|
|
<TextBlock Text="{x:Static res:Strings.Oobe_CrashReports}"
|
|
FontSize="14"
|
|
FontWeight="SemiBold"
|
|
Foreground="{DynamicResource TextFillColorPrimaryBrush}" />
|
|
<TextBlock Text="{x:Static res:Strings.Oobe_CrashReportsDesc}"
|
|
FontSize="12"
|
|
TextWrapping="Wrap"
|
|
Foreground="{DynamicResource TextFillColorSecondaryBrush}" />
|
|
</StackPanel>
|
|
<ToggleSwitch x:Name="CrashTelemetryToggle"
|
|
Grid.Column="1"
|
|
IsChecked="False"
|
|
IsEnabled="False"
|
|
VerticalAlignment="Center" />
|
|
</Grid>
|
|
</Border>
|
|
|
|
<!-- 使用统计 -->
|
|
<Border Background="{DynamicResource CardBackgroundFillColorDefaultBrush}"
|
|
CornerRadius="{DynamicResource DesignCornerRadiusMd}"
|
|
Padding="16">
|
|
<Grid ColumnDefinitions="*,Auto">
|
|
<StackPanel Grid.Column="0" Spacing="4">
|
|
<TextBlock Text="{x:Static res:Strings.Oobe_UsageStats}"
|
|
FontSize="14"
|
|
FontWeight="SemiBold"
|
|
Foreground="{DynamicResource TextFillColorPrimaryBrush}" />
|
|
<TextBlock Text="{x:Static res:Strings.Oobe_UsageStatsDesc}"
|
|
FontSize="12"
|
|
TextWrapping="Wrap"
|
|
Foreground="{DynamicResource TextFillColorSecondaryBrush}" />
|
|
</StackPanel>
|
|
<ToggleSwitch x:Name="UsageTelemetryToggle"
|
|
Grid.Column="1"
|
|
IsChecked="False"
|
|
IsEnabled="False"
|
|
VerticalAlignment="Center" />
|
|
</Grid>
|
|
</Border>
|
|
|
|
<!-- 隐私追踪 ID -->
|
|
<Border Background="{DynamicResource CardBackgroundFillColorDefaultBrush}"
|
|
CornerRadius="{DynamicResource DesignCornerRadiusMd}"
|
|
Padding="16">
|
|
<StackPanel Spacing="8">
|
|
<TextBlock Text="{x:Static res:Strings.Oobe_PrivacyTrackingId}"
|
|
FontSize="14"
|
|
FontWeight="SemiBold"
|
|
Foreground="{DynamicResource TextFillColorPrimaryBrush}" />
|
|
<TextBlock Text="{x:Static res:Strings.Oobe_PrivacyTrackingIdDesc}"
|
|
FontSize="12"
|
|
TextWrapping="Wrap"
|
|
Foreground="{DynamicResource TextFillColorSecondaryBrush}" />
|
|
<TextBox x:Name="TelemetryIdTextBox"
|
|
Text=""
|
|
IsReadOnly="True"
|
|
FontFamily="Consolas, Monaco, monospace"
|
|
FontSize="12"
|
|
HorizontalAlignment="Stretch" />
|
|
</StackPanel>
|
|
</Border>
|
|
|
|
<!-- 隐私协议同意区域 -->
|
|
<Border Background="{DynamicResource CardBackgroundFillColorDefaultBrush}"
|
|
CornerRadius="{DynamicResource DesignCornerRadiusMd}"
|
|
Padding="16"
|
|
Margin="0,8,0,0">
|
|
<StackPanel Spacing="12">
|
|
<!-- 复选框和协议文本 -->
|
|
<StackPanel Orientation="Horizontal" Spacing="8">
|
|
<CheckBox x:Name="PrivacyAgreementCheckBox"
|
|
VerticalAlignment="Center" />
|
|
<StackPanel Orientation="Horizontal" Spacing="4" VerticalAlignment="Center">
|
|
<TextBlock Text="{x:Static res:Strings.Oobe_Agree}"
|
|
FontSize="13"
|
|
VerticalAlignment="Center"
|
|
Foreground="{DynamicResource TextFillColorPrimaryBrush}" />
|
|
<Button x:Name="ViewPrivacyPolicyButton"
|
|
Content="{x:Static res:Strings.Oobe_PrivacyPolicyLink}"
|
|
Background="Transparent"
|
|
BorderThickness="0"
|
|
Padding="0"
|
|
FontSize="13"
|
|
Foreground="{DynamicResource SystemAccentColor}">
|
|
<Button.Styles>
|
|
<Style Selector="Button:pointerover /template/ ContentPresenter">
|
|
<Setter Property="TextBlock.Foreground" Value="{DynamicResource SystemAccentColorDark1}" />
|
|
</Style>
|
|
</Button.Styles>
|
|
</Button>
|
|
</StackPanel>
|
|
</StackPanel>
|
|
|
|
<!-- 提示文本 -->
|
|
<TextBlock Text="{x:Static res:Strings.Oobe_PrivacyAgreementNote}"
|
|
FontSize="12"
|
|
TextWrapping="Wrap"
|
|
Foreground="{DynamicResource TextFillColorSecondaryBrush}" />
|
|
</StackPanel>
|
|
</Border>
|
|
</StackPanel>
|
|
|
|
<StackPanel Grid.Row="2"
|
|
Orientation="Horizontal"
|
|
HorizontalAlignment="Right"
|
|
Spacing="12"
|
|
Margin="0,24,0,0">
|
|
<Button x:Name="PrivacyBackButton"
|
|
Content="{x:Static res:Strings.Oobe_ButtonBack}"
|
|
Theme="{DynamicResource ButtonTheme}" />
|
|
<Button x:Name="PrivacyNextButton"
|
|
Content="{x:Static res:Strings.Oobe_ButtonNext}"
|
|
Theme="{DynamicResource AccentButtonTheme}" />
|
|
</StackPanel>
|
|
</Grid>
|
|
|
|
<!-- 步骤 6: 欢迎完成页面 -->
|
|
<Grid x:Name="WelcomeStep" Margin="48" RowDefinitions="*,Auto" IsVisible="False">
|
|
<StackPanel Grid.Row="0"
|
|
VerticalAlignment="Center"
|
|
HorizontalAlignment="Center"
|
|
Spacing="32">
|
|
|
|
<Border Width="96"
|
|
Height="96"
|
|
Background="{DynamicResource SystemFillColorSuccessBackgroundBrush}"
|
|
CornerRadius="48"
|
|
HorizontalAlignment="Center">
|
|
<PathIcon Data="M9,16.17 L4.83,12 L3.41,13.41 L9,19 L21,7 L19.59,5.59 Z"
|
|
Width="48"
|
|
Height="48"
|
|
Foreground="{DynamicResource SystemFillColorSuccessBrush}"
|
|
HorizontalAlignment="Center"
|
|
VerticalAlignment="Center"/>
|
|
</Border>
|
|
|
|
<StackPanel Spacing="12" HorizontalAlignment="Center">
|
|
<TextBlock Text="{x:Static res:Strings.Oobe_CompleteTitle}"
|
|
FontSize="32"
|
|
FontWeight="SemiBold"
|
|
Foreground="{DynamicResource TextFillColorPrimaryBrush}"
|
|
HorizontalAlignment="Center" />
|
|
<TextBlock Text="{x:Static res:Strings.Oobe_CompleteSubtitle}"
|
|
FontSize="16"
|
|
Foreground="{DynamicResource TextFillColorSecondaryBrush}"
|
|
HorizontalAlignment="Center" />
|
|
</StackPanel>
|
|
</StackPanel>
|
|
|
|
<Button Grid.Row="1"
|
|
x:Name="EnterButton"
|
|
HorizontalAlignment="Center"
|
|
Width="56"
|
|
Height="56"
|
|
Margin="0,0,0,24"
|
|
Theme="{DynamicResource AccentButtonTheme}"
|
|
CornerRadius="28">
|
|
<fi:SymbolIcon Symbol="ArrowRight"
|
|
FontSize="24"
|
|
Foreground="{DynamicResource TextFillColorPrimaryBrush}"/>
|
|
</Button>
|
|
</Grid>
|
|
</Grid>
|
|
</Window>
|