mirror of
https://github.com/achiez/NebulaAuth-Steam-Desktop-Authenticator-by-Achies.git
synced 2026-07-25 06:14:31 +00:00
Add SplashScreen base
This commit is contained in:
@@ -98,6 +98,7 @@
|
|||||||
<!--Theme-->
|
<!--Theme-->
|
||||||
|
|
||||||
<ResourceDictionary Source="Theme/WindowStyle/WindowStyle.xaml" />
|
<ResourceDictionary Source="Theme/WindowStyle/WindowStyle.xaml" />
|
||||||
|
<ResourceDictionary Source="Theme/WindowStyle/LoadingSplashScreenStyle.xaml" />
|
||||||
<ResourceDictionary Source="Theme/MaterialDesignThemes.Overrides.xaml" />
|
<ResourceDictionary Source="Theme/MaterialDesignThemes.Overrides.xaml" />
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -49,7 +49,7 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<SplashScreen Include="Theme\SplashScreen.png" />
|
<Resource Include="Theme\SplashScreen.png" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
@@ -0,0 +1,107 @@
|
|||||||
|
<ResourceDictionary x:Class="NebulaAuth.Theme.WindowStyle.LoadingSplashScreenStyle"
|
||||||
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
|
xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
|
||||||
|
xmlns:local="clr-namespace:NebulaAuth.Theme.WindowStyle">
|
||||||
|
|
||||||
|
<Style TargetType="Button" BasedOn="{StaticResource MaterialDesignFlatButton}">
|
||||||
|
<Setter Property="WindowChrome.IsHitTestVisibleInChrome" Value="True" />
|
||||||
|
</Style>
|
||||||
|
|
||||||
|
<ControlTemplate x:Key="WindowTemplate" TargetType="{x:Type Window}">
|
||||||
|
<!--<i:Interaction.Behaviors>
|
||||||
|
<local:WindowChromeLoadedBehavior />
|
||||||
|
</i:Interaction.Behaviors>-->
|
||||||
|
<Grid>
|
||||||
|
<Border x:Name="RootBorder"
|
||||||
|
Margin="{x:Static local:WindowChromeHelper.LayoutOffsetThickness}"
|
||||||
|
BorderBrush="Transparent"
|
||||||
|
BorderThickness="1"
|
||||||
|
Background="{DynamicResource BackgroundBrush}">
|
||||||
|
|
||||||
|
<Grid>
|
||||||
|
<Grid.RowDefinitions>
|
||||||
|
<RowDefinition Height="Auto" />
|
||||||
|
<RowDefinition Height="*" />
|
||||||
|
</Grid.RowDefinitions>
|
||||||
|
<!--<Grid x:Name="TitleBar"
|
||||||
|
Grid.Row="0"
|
||||||
|
Height="28"
|
||||||
|
Background="{DynamicResource Base100Brush}">
|
||||||
|
<TextBlock HorizontalAlignment="Center" VerticalAlignment="Center"
|
||||||
|
Foreground="{DynamicResource PrimaryBrush}"
|
||||||
|
Text="{Binding RelativeSource={RelativeSource AncestorType=Window}, Path=Title}"
|
||||||
|
FontSize="17" />
|
||||||
|
|
||||||
|
--><!-- Window Buttons --><!--
|
||||||
|
<StackPanel
|
||||||
|
HorizontalAlignment="Right"
|
||||||
|
Orientation="Horizontal">
|
||||||
|
<StackPanel.Resources>
|
||||||
|
<Style TargetType="materialDesign:PackIcon">
|
||||||
|
<Setter Property="HorizontalAlignment" Value="Center" />
|
||||||
|
<Setter Property="VerticalAlignment" Value="Center" />
|
||||||
|
</Style>
|
||||||
|
</StackPanel.Resources>
|
||||||
|
<Button x:Name="MinimizeButton"
|
||||||
|
Click="OnMinimizeClick">
|
||||||
|
<materialDesign:PackIcon Kind="WindowMinimize" />
|
||||||
|
</Button>
|
||||||
|
<Button x:Name="MaximizeRestoreButton"
|
||||||
|
Click="OnMaximizeRestoreClick">
|
||||||
|
<materialDesign:PackIcon Kind="WindowMaximize" />
|
||||||
|
</Button>
|
||||||
|
<Button x:Name="CloseButton"
|
||||||
|
Click="OnCloseClick">
|
||||||
|
<materialDesign:PackIcon Kind="WindowClose" />
|
||||||
|
</Button>
|
||||||
|
</StackPanel>
|
||||||
|
</Grid>-->
|
||||||
|
|
||||||
|
<!-- Main Window Content -->
|
||||||
|
<Grid x:Name="MainGrid"
|
||||||
|
Grid.Row="1"
|
||||||
|
Background="{DynamicResource MainBackgroundBrush}">
|
||||||
|
<AdornerDecorator>
|
||||||
|
<ContentPresenter />
|
||||||
|
</AdornerDecorator>
|
||||||
|
</Grid>
|
||||||
|
</Grid>
|
||||||
|
</Border>
|
||||||
|
</Grid>
|
||||||
|
<ControlTemplate.Triggers>
|
||||||
|
<Trigger Property="IsActive" Value="True">
|
||||||
|
<Setter TargetName="RootBorder" Property="BorderBrush" Value="#1e1e24" />
|
||||||
|
|
||||||
|
</Trigger>
|
||||||
|
<Trigger Property="WindowState" Value="Maximized">
|
||||||
|
<Setter TargetName="RootBorder" Property="BorderThickness"
|
||||||
|
Value="{Binding Source={x:Static local:WindowChromeHelper.WindowResizeBorderThickness}}" />
|
||||||
|
<Setter TargetName="RootBorder" Property="BorderBrush" Value="Transparent" />
|
||||||
|
<!--<Setter TargetName="MaximizeRestoreButton" Property="Content">
|
||||||
|
<Setter.Value>
|
||||||
|
<materialDesign:PackIcon Kind="WindowRestore" />
|
||||||
|
</Setter.Value>
|
||||||
|
</Setter>-->
|
||||||
|
</Trigger>
|
||||||
|
</ControlTemplate.Triggers>
|
||||||
|
</ControlTemplate>
|
||||||
|
|
||||||
|
<Style x:Key="LoadingSplashScreenStyle" TargetType="{x:Type Window}">
|
||||||
|
<Setter Property="UseLayoutRounding" Value="True" />
|
||||||
|
<Setter Property="TextOptions.TextFormattingMode" Value="Ideal" />
|
||||||
|
<Setter Property="TextOptions.TextRenderingMode" Value="ClearType" />
|
||||||
|
<Setter Property="WindowChrome.WindowChrome">
|
||||||
|
<Setter.Value>
|
||||||
|
<WindowChrome
|
||||||
|
CaptionHeight="38"
|
||||||
|
CornerRadius="0"
|
||||||
|
GlassFrameThickness="0"
|
||||||
|
NonClientFrameEdges="None"
|
||||||
|
ResizeBorderThickness="5"
|
||||||
|
UseAeroCaptionButtons="False" />
|
||||||
|
</Setter.Value>
|
||||||
|
</Setter>
|
||||||
|
<Setter Property="Template" Value="{StaticResource WindowTemplate}" />
|
||||||
|
</Style>
|
||||||
|
</ResourceDictionary>
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
using System.Windows;
|
||||||
|
|
||||||
|
namespace NebulaAuth.Theme.WindowStyle;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Логика взаимодействия для WindowStyle.xaml
|
||||||
|
/// </summary>
|
||||||
|
partial class LoadingSplashScreenStyle
|
||||||
|
{
|
||||||
|
public LoadingSplashScreenStyle()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnCloseClick(object sender, RoutedEventArgs e)
|
||||||
|
{
|
||||||
|
var window = (Window) ((FrameworkElement) sender).TemplatedParent;
|
||||||
|
|
||||||
|
window.Close();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnMaximizeRestoreClick(object sender, RoutedEventArgs e)
|
||||||
|
{
|
||||||
|
var window = (Window) ((FrameworkElement) sender).TemplatedParent;
|
||||||
|
|
||||||
|
window.WindowState = window.WindowState == WindowState.Normal ? WindowState.Maximized : WindowState.Normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void OnMinimizeClick(object sender, RoutedEventArgs e)
|
||||||
|
{
|
||||||
|
var window = (Window) ((FrameworkElement) sender).TemplatedParent;
|
||||||
|
|
||||||
|
window.WindowState = WindowState.Minimized;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
<theme:FontScaleWindow x:Class="NebulaAuth.View.LoadingSplashScreen"
|
||||||
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
|
xmlns:local="clr-namespace:NebulaAuth.View"
|
||||||
|
xmlns:theme="clr-namespace:NebulaAuth.Theme"
|
||||||
|
xmlns:b="http://schemas.microsoft.com/xaml/behaviors"
|
||||||
|
xmlns:windowStyle="clr-namespace:NebulaAuth.Theme.WindowStyle"
|
||||||
|
mc:Ignorable="d"
|
||||||
|
d:DesignHeight="512" d:DesignWidth="512"
|
||||||
|
SizeToContent="WidthAndHeight"
|
||||||
|
MaxWidth="512" MaxHeight="512"
|
||||||
|
WindowStartupLocation="CenterScreen"
|
||||||
|
WindowStyle="None"
|
||||||
|
AllowsTransparency="True"
|
||||||
|
Background="Transparent"
|
||||||
|
|
||||||
|
>
|
||||||
|
|
||||||
|
<Grid>
|
||||||
|
<Image Source="pack://application:,,,/Theme/SplashScreen.png"></Image>
|
||||||
|
</Grid>
|
||||||
|
</theme:FontScaleWindow>
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Windows;
|
||||||
|
using System.Windows.Controls;
|
||||||
|
using System.Windows.Data;
|
||||||
|
using System.Windows.Documents;
|
||||||
|
using System.Windows.Input;
|
||||||
|
using System.Windows.Media;
|
||||||
|
using System.Windows.Media.Imaging;
|
||||||
|
using System.Windows.Navigation;
|
||||||
|
using System.Windows.Shapes;
|
||||||
|
using NebulaAuth.Theme;
|
||||||
|
|
||||||
|
namespace NebulaAuth.View
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Логика взаимодействия для LoadingSplashScreen.xaml
|
||||||
|
/// </summary>
|
||||||
|
public partial class LoadingSplashScreen : FontScaleWindow
|
||||||
|
{
|
||||||
|
public LoadingSplashScreen()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user