2026-10-17 19:41:57 -07:00
<Window x:Class= "CapyLauncher.MainWindow"
xmlns= "http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x= "http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local= "clr-namespace:CapyLauncher"
Title= "CapySR" Width= "1180" Height= "780" MinWidth= "980" MinHeight= "680"
Background= "{StaticResource Bg}" Foreground= "{StaticResource Text}"
FontFamily= "Segoe UI Variable Text, Segoe UI" FontSize= "13.5"
WindowStartupLocation= "CenterScreen" UseLayoutRounding= "True" Icon= "capy.ico"
TextOptions.TextFormattingMode= "Display" >
<WindowChrome.WindowChrome>
<WindowChrome CaptionHeight= "52" ResizeBorderThickness= "6" GlassFrameThickness= "0" CornerRadius= "0" UseAeroCaptionButtons= "False" />
</WindowChrome.WindowChrome>
<Window.Triggers>
<EventTrigger RoutedEvent= "Window.Loaded" >
<BeginStoryboard>
2026-10-17 20:15:13 -07:00
<Storyboard Timeline.DesiredFrameRate= "30" >
<DoubleAnimation Storyboard.TargetName= "BlobPink" Storyboard.TargetProperty= "RenderTransform.X" From= "0" To= "300" Duration= "0:0:23" AutoReverse= "True" RepeatBehavior= "Forever" >
2026-10-17 19:41:57 -07:00
<DoubleAnimation.EasingFunction><SineEase EasingMode= "EaseInOut" /></DoubleAnimation.EasingFunction>
</DoubleAnimation>
2026-10-17 20:15:13 -07:00
<DoubleAnimation Storyboard.TargetName= "BlobPink" Storyboard.TargetProperty= "RenderTransform.Y" From= "0" To= "240" Duration= "0:0:17" AutoReverse= "True" RepeatBehavior= "Forever" >
2026-10-17 19:41:57 -07:00
<DoubleAnimation.EasingFunction><SineEase EasingMode= "EaseInOut" /></DoubleAnimation.EasingFunction>
</DoubleAnimation>
2026-10-17 20:15:13 -07:00
<DoubleAnimation Storyboard.TargetName= "BlobPurple" Storyboard.TargetProperty= "RenderTransform.X" From= "0" To= "340" Duration= "0:0:29" AutoReverse= "True" RepeatBehavior= "Forever" >
2026-10-17 19:41:57 -07:00
<DoubleAnimation.EasingFunction><SineEase EasingMode= "EaseInOut" /></DoubleAnimation.EasingFunction>
</DoubleAnimation>
2026-10-17 20:15:13 -07:00
<DoubleAnimation Storyboard.TargetName= "BlobPurple" Storyboard.TargetProperty= "RenderTransform.Y" From= "0" To= "-240" Duration= "0:0:21" AutoReverse= "True" RepeatBehavior= "Forever" >
2026-10-17 19:41:57 -07:00
<DoubleAnimation.EasingFunction><SineEase EasingMode= "EaseInOut" /></DoubleAnimation.EasingFunction>
</DoubleAnimation>
2026-10-17 20:15:13 -07:00
<DoubleAnimation Storyboard.TargetName= "BlobBlue" Storyboard.TargetProperty= "RenderTransform.X" From= "0" To= "-360" Duration= "0:0:26" AutoReverse= "True" RepeatBehavior= "Forever" >
2026-10-17 19:41:57 -07:00
<DoubleAnimation.EasingFunction><SineEase EasingMode= "EaseInOut" /></DoubleAnimation.EasingFunction>
</DoubleAnimation>
2026-10-17 20:15:13 -07:00
<DoubleAnimation Storyboard.TargetName= "BlobBlue" Storyboard.TargetProperty= "RenderTransform.Y" From= "0" To= "240" Duration= "0:0:19" AutoReverse= "True" RepeatBehavior= "Forever" >
2026-10-17 19:41:57 -07:00
<DoubleAnimation.EasingFunction><SineEase EasingMode= "EaseInOut" /></DoubleAnimation.EasingFunction>
</DoubleAnimation>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Window.Triggers>
<Grid>
<Canvas ClipToBounds= "True" IsHitTestVisible= "False" >
2026-10-17 20:15:13 -07:00
<Ellipse x:Name= "BlobPink" Width= "900" Height= "900" Canvas.Left= "-330" Canvas.Top= "-350" >
<Ellipse.Fill>
<RadialGradientBrush>
<GradientStop Color= "#2EFF9AA2" Offset= "0" />
<GradientStop Color= "#14FF9AA2" Offset= "0.45" />
<GradientStop Color= "#00FF9AA2" Offset= "1" />
</RadialGradientBrush>
</Ellipse.Fill>
<Ellipse.RenderTransform><TranslateTransform/></Ellipse.RenderTransform>
2026-10-17 19:41:57 -07:00
</Ellipse>
2026-10-17 20:15:13 -07:00
<Ellipse x:Name= "BlobPurple" Width= "980" Height= "980" Canvas.Left= "350" Canvas.Top= "210" >
<Ellipse.Fill>
<RadialGradientBrush>
<GradientStop Color= "#26D689FF" Offset= "0" />
<GradientStop Color= "#11D689FF" Offset= "0.45" />
<GradientStop Color= "#00D689FF" Offset= "1" />
</RadialGradientBrush>
</Ellipse.Fill>
<Ellipse.RenderTransform><TranslateTransform/></Ellipse.RenderTransform>
2026-10-17 19:41:57 -07:00
</Ellipse>
2026-10-17 20:15:13 -07:00
<Ellipse x:Name= "BlobBlue" Width= "860" Height= "860" Canvas.Left= "810" Canvas.Top= "-390" >
<Ellipse.Fill>
<RadialGradientBrush>
<GradientStop Color= "#227DC8FF" Offset= "0" />
<GradientStop Color= "#0F7DC8FF" Offset= "0.45" />
<GradientStop Color= "#007DC8FF" Offset= "1" />
</RadialGradientBrush>
</Ellipse.Fill>
<Ellipse.RenderTransform><TranslateTransform/></Ellipse.RenderTransform>
2026-10-17 19:41:57 -07:00
</Ellipse>
</Canvas>
<Grid x:Name= "Shell" >
<Grid.RowDefinitions>
<RowDefinition Height= "52" />
<RowDefinition Height= "*" />
</Grid.RowDefinitions>
<Grid Grid.Row= "0" Margin= "18,0,8,0" >
<StackPanel Orientation= "Horizontal" VerticalAlignment= "Center" >
<Image Source= "capy.png" Width= "26" Height= "26" RenderOptions.BitmapScalingMode= "NearestNeighbor" />
<TextBlock Text= "CapySR" FontSize= "15" FontWeight= "Bold" Foreground= "{StaticResource Capy}" Margin= "10,0,0,1" VerticalAlignment= "Center" />
<Border Background= "#1AFFFFFF" CornerRadius= "6" Padding= "7,1.5" Margin= "9,1,0,0" VerticalAlignment= "Center" >
<TextBlock Text= "launcher" FontSize= "11" Foreground= "{StaticResource Dim}" />
</Border>
</StackPanel>
<Border HorizontalAlignment= "Center" VerticalAlignment= "Center" Background= "#12FFFFFF" CornerRadius= "12" Padding= "3"
WindowChrome.IsHitTestVisibleInChrome= "True" >
<Grid>
<Border x:Name= "NavPill" HorizontalAlignment= "Left" CornerRadius= "9" Background= "{StaticResource Raised}" BorderBrush= "{StaticResource Line}" BorderThickness= "1" >
<Border.RenderTransform><TranslateTransform/></Border.RenderTransform>
<Border Height= "2" VerticalAlignment= "Bottom" Margin= "14,0,14,3" CornerRadius= "1" Background= "{StaticResource Capy}" />
</Border>
<StackPanel x:Name= "NavTabs" Orientation= "Horizontal" >
<RadioButton x:Name= "TabHome" Style= "{StaticResource NavTab}" Tag= "" Content= "Home" GroupName= "nav" IsChecked= "True" Checked= "Tab_Checked" />
<RadioButton x:Name= "TabBuilds" Style= "{StaticResource NavTab}" Tag= "" Content= "Builds" GroupName= "nav" Checked= "Tab_Checked" />
<RadioButton x:Name= "TabBattle" Style= "{StaticResource NavTab}" Tag= "" Content= "Battle" GroupName= "nav" Checked= "Tab_Checked" />
</StackPanel>
</Grid>
</Border>
<StackPanel Orientation= "Horizontal" HorizontalAlignment= "Right" VerticalAlignment= "Center" >
<Button Style= "{StaticResource Chrome}" Content= "" Click= "Minimize_Click" />
<Button x:Name= "MaxButton" Style= "{StaticResource Chrome}" Content= "" Margin= "2,0" Click= "Maximize_Click" />
<Button Style= "{StaticResource ChromeClose}" Content= "" Click= "Close_Click" />
</StackPanel>
</Grid>
<Grid x:Name= "BuildsHost" Grid.Row= "1" Margin= "18,2,18,18" Visibility= "Collapsed" >
<local:BuildsPage x:Name= "Builds" />
</Grid>
<Grid x:Name= "BattleHost" Grid.Row= "1" Margin= "18,2,18,18" Visibility= "Collapsed" >
<local:BattlePage x:Name= "BattleView" />
</Grid>
<Grid x:Name= "HomePage" Grid.Row= "1" Margin= "18,2,18,18" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width= "372" />
<ColumnDefinition Width= "16" />
<ColumnDefinition Width= "*" />
</Grid.ColumnDefinitions>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height= "Auto" />
<RowDefinition Height= "14" />
<RowDefinition Height= "Auto" />
<RowDefinition Height= "14" />
<RowDefinition Height= "*" />
</Grid.RowDefinitions>
<Border x:Name= "ServerCard" Style= "{StaticResource Card}" >
<StackPanel>
<Grid>
<TextBlock Style= "{StaticResource Caption}" Text= "SERVER" VerticalAlignment= "Center" />
<Border x:Name= "Pill" HorizontalAlignment= "Right" CornerRadius= "11" Padding= "9,3" Background= "#1AFFFFFF" >
<StackPanel Orientation= "Horizontal" >
<Grid Width= "8" Height= "8" VerticalAlignment= "Center" >
<Ellipse x:Name= "PulseRing" Fill= "{StaticResource Faint}" RenderTransformOrigin= "0.5,0.5" Opacity= "0" >
<Ellipse.RenderTransform><ScaleTransform/></Ellipse.RenderTransform>
</Ellipse>
<Ellipse x:Name= "PillDot" Fill= "{StaticResource Faint}" />
</Grid>
<TextBlock x:Name= "PillText" Text= "Offline" FontSize= "11.5" Margin= "7,0,0,0" Foreground= "{StaticResource Dim}" />
</StackPanel>
</Border>
</Grid>
<Grid Margin= "0,14,0,0" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width= "Auto" />
<ColumnDefinition Width= "*" />
</Grid.ColumnDefinitions>
<Border Width= "96" Height= "78" CornerRadius= "14" Background= "{StaticResource Field}" ClipToBounds= "True" >
<Grid>
<Border x:Name= "Water" VerticalAlignment= "Bottom" Height= "26" Opacity= "0.35" >
<Border.Background>
<LinearGradientBrush StartPoint= "0,0" EndPoint= "0,1" >
<GradientStop Color= "#007DC8FF" Offset= "0" />
<GradientStop Color= "#997DC8FF" Offset= "1" />
</LinearGradientBrush>
</Border.Background>
</Border>
<Image x:Name= "Capy" Width= "78" Height= "54" Margin= "0,8,0,0" RenderOptions.BitmapScalingMode= "NearestNeighbor" >
<Image.RenderTransform><TranslateTransform/></Image.RenderTransform>
</Image>
</Grid>
</Border>
<StackPanel Grid.Column= "1" Margin= "16,0,0,0" VerticalAlignment= "Center" >
<TextBlock x:Name= "StateTitle" Text= "Sleeping" FontSize= "25" FontWeight= "Bold" Foreground= "{StaticResource Text}"
FontFamily= "Segoe UI Variable Display, Segoe UI" />
<TextBlock x:Name= "StateSub" Text= "Start the server to wake capy up" Foreground= "{StaticResource Dim}"
TextWrapping= "Wrap" Margin= "0,2,0,0" FontSize= "12.5" />
</StackPanel>
</Grid>
<Grid Margin= "0,16,0,0" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width= "0.9*" />
<ColumnDefinition Width= "*" />
<ColumnDefinition Width= "1.25*" />
</Grid.ColumnDefinitions>
<Border Background= "{StaticResource Field}" CornerRadius= "10" Padding= "11,8" Margin= "0,0,4,0" >
<StackPanel>
<TextBlock Style= "{StaticResource Caption}" Text= "UPTIME" FontSize= "10" />
<TextBlock x:Name= "UptimeText" Text= "—" FontFamily= "{StaticResource Mono}" FontSize= "13" Margin= "0,3,0,0" />
</StackPanel>
</Border>
<Border Grid.Column= "1" Background= "{StaticResource Field}" CornerRadius= "10" Padding= "11,8" Margin= "4,0" >
<StackPanel>
<TextBlock Style= "{StaticResource Caption}" Text= "PLAYER" FontSize= "10" />
<TextBlock x:Name= "PlayerText" Text= "—" FontSize= "13" Margin= "0,3,0,0" TextTrimming= "CharacterEllipsis" />
</StackPanel>
</Border>
<Border Grid.Column= "2" Background= "{StaticResource Field}" CornerRadius= "10" Padding= "11,8" Margin= "4,0,0,0" >
<StackPanel>
<TextBlock Style= "{StaticResource Caption}" Text= "PORTS" FontSize= "10" />
<TextBlock x:Name= "PortsText" Text= "—" FontFamily= "{StaticResource Mono}" FontSize= "12.5" Margin= "0,3,0,0" TextTrimming= "CharacterEllipsis" />
</StackPanel>
</Border>
</Grid>
<Button x:Name= "ServerButton" Style= "{StaticResource Primary}" Margin= "0,16,0,0" Click= "Server_Click" >
<StackPanel Orientation= "Horizontal" >
<TextBlock x:Name= "ServerGlyph" Style= "{StaticResource Glyph}" Text= "" FontSize= "15" Margin= "0,1,10,0" />
<TextBlock x:Name= "ServerLabel" Text= "Start server" />
</StackPanel>
</Button>
</StackPanel>
</Border>
<Border x:Name= "GameCard" Grid.Row= "2" Style= "{StaticResource Card}" >
<StackPanel>
<Grid>
<TextBlock Style= "{StaticResource Caption}" Text= "GAME" VerticalAlignment= "Center" />
<Button HorizontalAlignment= "Right" Padding= "11,4" FontSize= "12" Click= "Browse_Click" >
<StackPanel Orientation= "Horizontal" >
<TextBlock Style= "{StaticResource Glyph}" Text= "" FontSize= "12" Margin= "0,1,7,0" />
<TextBlock Text= "Browse" />
</StackPanel>
</Button>
</Grid>
<Border Background= "{StaticResource Field}" CornerRadius= "10" Padding= "12,10" Margin= "0,10,0,0" >
<StackPanel>
<TextBlock x:Name= "ClientPath" Text= "Pick your client folder" TextTrimming= "CharacterEllipsis" Foreground= "{StaticResource Dim}" />
<StackPanel Orientation= "Horizontal" Margin= "0,7,0,0" >
<TextBlock x:Name= "ExeMark" Style= "{StaticResource Glyph}" Text= "" FontSize= "10" Foreground= "{StaticResource Faint}" />
<TextBlock x:Name= "ExeText" Text= "StarRail.exe" FontSize= "12" Foreground= "{StaticResource Faint}" Margin= "6,0,16,0" />
<TextBlock x:Name= "PatchMark" Style= "{StaticResource Glyph}" Text= "" FontSize= "10" Foreground= "{StaticResource Faint}" />
<TextBlock x:Name= "PatchText" Text= "Patch" FontSize= "12" Foreground= "{StaticResource Faint}" Margin= "6,0,0,0" />
</StackPanel>
</StackPanel>
</Border>
2026-10-17 20:53:14 -07:00
<StackPanel x:Name= "LanguageRow" Margin= "0,12,0,0" Visibility= "Collapsed" >
<DockPanel Margin= "1,0,0,7" >
<TextBlock x:Name= "LanguageNote" DockPanel.Dock= "Right" Foreground= "{StaticResource Warn}" FontSize= "11" Visibility= "Collapsed" VerticalAlignment= "Center" />
<TextBlock Style= "{StaticResource Caption}" Text= "TEXT LANGUAGE" VerticalAlignment= "Center" />
</DockPanel>
<ContentControl x:Name= "LanguagePicker" />
</StackPanel>
2026-10-17 19:41:57 -07:00
<Button x:Name= "PlayButton" Style= "{StaticResource Primary}" Margin= "0,14,0,0" Click= "Play_Click" >
<StackPanel Orientation= "Horizontal" >
<TextBlock Style= "{StaticResource Glyph}" Text= "" FontSize= "15" Margin= "0,1,10,0" />
<TextBlock x:Name= "PlayLabel" Text= "Play" />
</StackPanel>
</Button>
</StackPanel>
</Border>
<Border x:Name= "QuickCard" Grid.Row= "4" Style= "{StaticResource Card}" Padding= "16,16,16,14" >
<DockPanel>
<TextBlock DockPanel.Dock= "Top" Style= "{StaticResource Caption}" Text= "QUICK ACTIONS" Margin= "4,0,0,8" />
<UniformGrid Columns= "3" Rows= "2" VerticalAlignment= "Top" >
<Button Style= "{StaticResource Tile}" Tag= "" Content= "Config" ToolTip= "Open config/config.json" Click= "Config_Click" />
<Button Style= "{StaticResource Tile}" Tag= "" Content= "Data" ToolTip= "Open the data folder" Click= "Data_Click" />
<Button Style= "{StaticResource Tile}" Tag= "" Content= "Log file" ToolTip= "Open logs/capysr.log" Click= "LogFile_Click" />
<Button x:Name= "UnstickButton" Style= "{StaticResource Tile}" Tag= "" Content= "Unstick" ToolTip= "Black screen? This puts you back somewhere safe" Click= "Unstick_Click" />
<Button Style= "{StaticResource Tile}" Tag= "" Content= "srtools" ToolTip= "Build your characters on srtools" Click= "SrTools_Click" />
<Button x:Name= "FreshButton" Style= "{StaticResource Tile}" Tag= "" Content= "Fresh start" ToolTip= "Move data/player.json to the Recycle Bin" Click= "Fresh_Click" />
</UniformGrid>
</DockPanel>
</Border>
</Grid>
<Border x:Name= "ConsoleCard" Grid.Column= "2" Style= "{StaticResource Card}" Padding= "18,16,18,18" >
<DockPanel>
<Grid DockPanel.Dock= "Top" Margin= "0,0,0,12" >
<StackPanel Orientation= "Horizontal" VerticalAlignment= "Center" >
<TextBlock Style= "{StaticResource Caption}" Text= "CONSOLE" VerticalAlignment= "Center" />
<TextBlock x:Name= "LineCount" Foreground= "{StaticResource Faint}" FontSize= "11" Margin= "8,0,0,0" VerticalAlignment= "Center" />
</StackPanel>
<StackPanel Orientation= "Horizontal" HorizontalAlignment= "Right" VerticalAlignment= "Center" >
<ToggleButton x:Name= "ShowDebug" Style= "{StaticResource Chip}" Content= "Debug" Tag= "{StaticResource Faint}" Click= "Filter_Click" />
<ToggleButton x:Name= "ShowInfo" Style= "{StaticResource Chip}" Content= "Info" Tag= "{StaticResource Blue}" IsChecked= "True" Click= "Filter_Click" />
<ToggleButton x:Name= "ShowWarn" Style= "{StaticResource Chip}" Content= "Warn" Tag= "{StaticResource Warn}" IsChecked= "True" Click= "Filter_Click" />
<ToggleButton x:Name= "ShowError" Style= "{StaticResource Chip}" Content= "Error" Tag= "{StaticResource Fail}" IsChecked= "True" Click= "Filter_Click" Margin= "0,0,12,0" />
<TextBox x:Name= "SearchBox" Width= "170" Tag= "Search" Padding= "8,4" FontSize= "12" TextChanged= "Search_Changed" />
<Button Padding= "9,5" Margin= "8,0,0,0" ToolTip= "Copy what's shown" Click= "Copy_Click" >
<TextBlock Style= "{StaticResource Glyph}" Text= "" FontSize= "13" />
</Button>
<Button Padding= "9,5" Margin= "6,0,0,0" ToolTip= "Clear" Click= "Clear_Click" >
<TextBlock Style= "{StaticResource Glyph}" Text= "" FontSize= "13" />
</Button>
</StackPanel>
</Grid>
<Grid DockPanel.Dock= "Bottom" Margin= "2,10,0,0" >
<CheckBox x:Name= "AutoScroll" Content= "Follow new lines" IsChecked= "True" />
<TextBlock x:Name= "Hint" HorizontalAlignment= "Right" Foreground= "{StaticResource Faint}" FontSize= "11.5" VerticalAlignment= "Center" />
</Grid>
<Border Background= "{StaticResource Field}" CornerRadius= "12" Padding= "6" >
<Grid>
<ListBox x:Name= "LogList" Background= "Transparent" BorderThickness= "0" Foreground= "{StaticResource Text}"
ItemContainerStyle= "{StaticResource LogItem}" SelectionMode= "Extended"
VirtualizingPanel.IsVirtualizing= "True" VirtualizingPanel.VirtualizationMode= "Recycling"
VirtualizingPanel.ScrollUnit= "Pixel" ScrollViewer.HorizontalScrollBarVisibility= "Disabled"
FontFamily= "{StaticResource Mono}" FontSize= "12" >
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width= "92" />
<ColumnDefinition Width= "54" />
<ColumnDefinition Width= "72" />
<ColumnDefinition Width= "*" />
</Grid.ColumnDefinitions>
<TextBlock Text= "{Binding Time}" Foreground= "{StaticResource Faint}" />
<Border Grid.Column= "1" Background= "{Binding LevelBack}" CornerRadius= "4" HorizontalAlignment= "Left" VerticalAlignment= "Top" Margin= "0,1,0,0" Padding= "5,0" Visibility= "{Binding LevelVisibility}" >
<TextBlock Text= "{Binding LevelName}" Foreground= "{Binding LevelBrush}" FontSize= "10.5" FontWeight= "SemiBold" VerticalAlignment= "Center" />
</Border>
<TextBlock Grid.Column= "2" Text= "{Binding Tag}" Foreground= "{Binding TagBrush}" TextTrimming= "CharacterEllipsis" />
<TextBlock Grid.Column= "3" TextWrapping= "Wrap" >
<Run Text= "{Binding Arrow, Mode=OneWay}" Foreground= "{Binding ArrowBrush, Mode=OneWay}" /><Run Text= "{Binding Message, Mode=OneWay}" Foreground= "{Binding MessageBrush, Mode=OneWay}" />
</TextBlock>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<StackPanel x:Name= "EmptyState" VerticalAlignment= "Center" HorizontalAlignment= "Center" IsHitTestVisible= "False" >
<Image x:Name= "EmptyCapy" Width= "104" Height= "72" RenderOptions.BitmapScalingMode= "NearestNeighbor" Opacity= "0.85" />
<TextBlock Text= "Nothing here yet" HorizontalAlignment= "Center" FontSize= "15" FontWeight= "SemiBold" Margin= "0,14,0,0" />
<TextBlock Text= "The server's log shows up here once it starts." HorizontalAlignment= "Center" Foreground= "{StaticResource Dim}" Margin= "0,4,0,0" />
</StackPanel>
</Grid>
</Border>
</DockPanel>
</Border>
</Grid>
</Grid>
<Border x:Name= "SaveBar" HorizontalAlignment= "Center" VerticalAlignment= "Bottom" Margin= "0,0,0,28" CornerRadius= "14"
Background= "#F22C2440" BorderBrush= "{StaticResource Line}" BorderThickness= "1" Padding= "18,8,8,8"
Opacity= "0" IsHitTestVisible= "False" >
<Border.RenderTransform><TranslateTransform Y= "30" /></Border.RenderTransform>
<Border.Effect>
<DropShadowEffect BlurRadius= "30" ShadowDepth= "8" Opacity= "0.5" Color= "#000000" />
</Border.Effect>
<StackPanel Orientation= "Horizontal" >
<Ellipse Width= "8" Height= "8" Fill= "{StaticResource Warn}" VerticalAlignment= "Center" />
<TextBlock x:Name= "SaveText" Text= "Unsaved changes" Margin= "10,0,18,0" VerticalAlignment= "Center" />
<Button Content= "Revert" Padding= "14,7" Click= "Revert_Click" />
<Button x:Name= "SaveButton" Style= "{StaticResource Primary}" Padding= "18,8" FontSize= "13.5" Margin= "8,0,0,0" Click= "Save_Click" >
<StackPanel Orientation= "Horizontal" >
<TextBlock Style= "{StaticResource Glyph}" Text= "" FontSize= "13" Margin= "0,1,8,0" />
<TextBlock Text= "Save" />
</StackPanel>
</Button>
</StackPanel>
</Border>
<Grid x:Name= "Overlay" Background= "#9917131F" Visibility= "Collapsed" Opacity= "0" >
<Border x:Name= "Dialog" Style= "{StaticResource Card}" Background= "#F21E1929" HorizontalAlignment= "Center" VerticalAlignment= "Center"
MaxWidth= "460" Padding= "26,24" RenderTransformOrigin= "0.5,0.5" >
<Border.RenderTransform><ScaleTransform/></Border.RenderTransform>
<Border.Effect>
<DropShadowEffect BlurRadius= "40" ShadowDepth= "10" Opacity= "0.5" Color= "#000000" />
</Border.Effect>
<StackPanel>
<TextBlock x:Name= "DialogTitle" FontSize= "18" FontWeight= "Bold" FontFamily= "Segoe UI Variable Display, Segoe UI" />
<TextBlock x:Name= "DialogText" TextWrapping= "Wrap" Foreground= "{StaticResource Dim}" Margin= "0,8,0,0" LineHeight= "20" />
<StackPanel x:Name= "DialogButtons" Orientation= "Horizontal" HorizontalAlignment= "Right" Margin= "0,22,0,0" >
<Button x:Name= "DialogNo" Content= "Cancel" MinWidth= "92" Click= "DialogNo_Click" />
<Button x:Name= "DialogYes" MinWidth= "92" Margin= "8,0,0,0" Style= "{StaticResource Primary}" Padding= "16,8" FontSize= "13.5" Click= "DialogYes_Click" />
</StackPanel>
</StackPanel>
</Border>
</Grid>
<Border x:Name= "ToastCard" HorizontalAlignment= "Center" VerticalAlignment= "Bottom" Margin= "0,0,0,30" CornerRadius= "12"
Background= "#F22C2440" BorderBrush= "{StaticResource Line}" BorderThickness= "1" Padding= "16,10"
Opacity= "0" IsHitTestVisible= "False" >
<Border.RenderTransform><TranslateTransform Y= "16" /></Border.RenderTransform>
<Border.Effect>
<DropShadowEffect BlurRadius= "24" ShadowDepth= "6" Opacity= "0.45" Color= "#000000" />
</Border.Effect>
<StackPanel Orientation= "Horizontal" >
<TextBlock x:Name= "ToastGlyph" Style= "{StaticResource Glyph}" Text= "" FontSize= "13" Foreground= "{StaticResource Ok}" Margin= "0,1,10,0" />
<TextBlock x:Name= "ToastText" FontSize= "13" />
</StackPanel>
</Border>
</Grid>
</Window>