Files
LanMountainDesktop/LanMountainDesktop.Launcher/Views/ErrorWindow.axaml
2026-05-12 16:46:49 +08:00

153 lines
5.6 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"
mc:Ignorable="d"
x:Class="LanMountainDesktop.Launcher.Views.ErrorWindow"
x:DataType="views:ErrorWindow"
Title="LanMountain Desktop"
Width="760"
Height="460"
MinWidth="640"
MinHeight="420"
CanResize="False"
WindowStartupLocation="CenterScreen"
Background="{DynamicResource SolidBackgroundFillColorBaseBrush}"
TransparencyLevelHint="Mica, AcrylicBlur, None"
Icon="/Assets/logo.ico">
<Design.DataContext>
<views:ErrorWindow />
</Design.DataContext>
<Grid RowDefinitions="*,Auto">
<Grid Grid.Row="0"
Margin="28,24,28,20"
RowDefinitions="Auto,Auto,*"
ColumnDefinitions="Auto,*">
<Border x:Name="ErrorIconBorder"
Grid.Column="0"
Width="56"
Height="56"
Margin="0,0,18,0"
Background="{DynamicResource SystemFillColorCriticalBackgroundBrush}"
CornerRadius="28"
VerticalAlignment="Top">
<fi:SymbolIcon Symbol="ErrorCircle"
IconVariant="Regular"
FontSize="28"
Foreground="{DynamicResource SystemFillColorCriticalBrush}"
HorizontalAlignment="Center"
VerticalAlignment="Center" />
</Border>
<StackPanel Grid.Column="1"
Spacing="8">
<TextBlock x:Name="TitleText"
Text="Launcher could not confirm startup"
FontSize="22"
FontWeight="SemiBold"
Foreground="{DynamicResource TextFillColorPrimaryBrush}"
TextWrapping="Wrap" />
<TextBlock x:Name="ErrorMessageText"
Text="LanMountain Desktop did not reach the expected startup state."
FontSize="14"
Foreground="{DynamicResource TextFillColorSecondaryBrush}"
TextWrapping="Wrap"
LineHeight="22" />
</StackPanel>
<ui:FAInfoBar x:Name="SuggestionInfoBar"
Grid.Row="1"
Grid.Column="0"
Grid.ColumnSpan="2"
Margin="0,20,0,14"
IsOpen="True"
IsClosable="False"
Severity="Warning"
Title="Startup recovery"
Message="You can inspect logs, wait for the current process, or activate the running desktop instance.">
<ui:FAInfoBar.IconSource>
<ui:FAFontIconSource Glyph="&#xF0288;"
FontFamily="avares://fluenticons.resources.avalonia/Assets#Seagull Fluent Icons" />
</ui:FAInfoBar.IconSource>
</ui:FAInfoBar>
<Expander Grid.Row="2"
Grid.Column="0"
Grid.ColumnSpan="2"
Header="Diagnostic details"
IsExpanded="True">
<TextBox x:Name="ErrorDetailsTextBox"
Margin="0,10,0,0"
MinHeight="150"
MaxHeight="190"
AcceptsReturn="True"
TextWrapping="Wrap"
IsReadOnly="True"
BorderThickness="0"
FontSize="12"
Text="Stage: launch&#x0a;Code: unknown"
VerticalContentAlignment="Top" />
</Expander>
</Grid>
<Border Grid.Row="1"
Padding="18,14"
Background="{DynamicResource LayerOnMicaBaseAltFillColorDefaultBrush}">
<Grid ColumnDefinitions="Auto,*,Auto"
ColumnSpacing="12">
<StackPanel Grid.Column="0"
Orientation="Horizontal"
Spacing="8">
<Button x:Name="OpenLogButton"
MinWidth="112"
Height="34">
<StackPanel Orientation="Horizontal" Spacing="6">
<fi:SymbolIcon Symbol="FolderOpen" IconVariant="Regular" FontSize="16"/>
<TextBlock Text="Open Logs"/>
</StackPanel>
</Button>
<Button x:Name="CopyDetailsButton"
MinWidth="100"
Height="34">
<StackPanel Orientation="Horizontal" Spacing="6">
<fi:SymbolIcon Symbol="Copy" IconVariant="Regular" FontSize="16"/>
<TextBlock Text="Copy"/>
</StackPanel>
</Button>
</StackPanel>
<StackPanel Grid.Column="2"
Orientation="Horizontal"
Spacing="8">
<Button x:Name="SecondaryActionButton"
Content="Wait"
MinWidth="96"
Height="34"
IsVisible="False" />
<Button x:Name="ExitButton"
MinWidth="92"
Height="34">
<StackPanel Orientation="Horizontal" Spacing="6">
<fi:SymbolIcon Symbol="Dismiss" IconVariant="Regular" FontSize="16"/>
<TextBlock Text="Exit"/>
</StackPanel>
</Button>
<Button x:Name="PrimaryActionButton"
Classes="accent"
Content="Retry"
MinWidth="112"
Height="34" />
</StackPanel>
</Grid>
</Border>
</Grid>
</Window>