Files
EngineeringSync/EngineeringSync.Setup/Views/WizardWindow.xaml

252 lines
13 KiB
Plaintext
Raw Normal View History

<Window x:Class="EngineeringSync.Setup.Views.WizardWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vm="clr-namespace:EngineeringSync.Setup.ViewModels"
Title="EngineeringSync Setup"
Width="860" Height="580"
WindowStartupLocation="CenterScreen"
ResizeMode="NoResize"
WindowStyle="None"
AllowsTransparency="True"
Background="Transparent">
<Window.DataContext>
<vm:WizardViewModel/>
</Window.DataContext>
<!-- Äußerer Schatten-Container -->
<Border CornerRadius="10"
Background="White">
<Border.Effect>
<DropShadowEffect Color="#40000000" BlurRadius="30" ShadowDepth="0" Opacity="0.4"/>
</Border.Effect>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="260"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<!-- ═══════════════════════════════
LINKE SIDEBAR
═══════════════════════════════ -->
<Border Grid.Column="0"
Background="{StaticResource SidebarGradient}"
CornerRadius="10,0,0,10">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<!-- Logo-Bereich -->
<StackPanel Grid.Row="0" Margin="24,32,24,32">
<!-- App-Icon (Segoe MDL2 Gear-ähnliches Symbol) -->
<Border Width="52" Height="52"
CornerRadius="12"
HorizontalAlignment="Left"
Margin="0,0,0,16">
<Border.Background>
<LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
<GradientStop Color="#0078D4" Offset="0"/>
<GradientStop Color="#00B4FF" Offset="1"/>
</LinearGradientBrush>
</Border.Background>
<TextBlock Text="&#xE8B7;"
FontFamily="Segoe MDL2 Assets"
FontSize="26"
Foreground="White"
HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</Border>
<TextBlock Text="EngineeringSync"
FontFamily="Segoe UI"
FontSize="16"
FontWeight="SemiBold"
Foreground="White"/>
<TextBlock Text="Setup-Assistent"
FontFamily="Segoe UI"
FontSize="11"
Foreground="#7788AA"/>
</StackPanel>
<!-- Schritt-Indikatoren -->
<ItemsControl Grid.Row="1"
ItemsSource="{Binding Steps}"
Margin="20,0,20,0">
<ItemsControl.ItemTemplate>
<DataTemplate>
<ContentControl Style="{StaticResource StepItemStyle}"
Content="{Binding}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<!-- Version -->
<TextBlock Grid.Row="2"
Text="Version 1.0.0"
FontFamily="Segoe UI"
FontSize="10"
Foreground="#445566"
Margin="24,0,24,20"
HorizontalAlignment="Left"/>
</Grid>
</Border>
<!-- ═══════════════════════════════
RECHTE INHALTSSEITE + NAVIGATION
═══════════════════════════════ -->
<Grid Grid.Column="1">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/> <!-- Custom Title Bar -->
<RowDefinition Height="*"/> <!-- Page Content -->
<RowDefinition Height="Auto"/> <!-- Navigation Bar -->
</Grid.RowDefinitions>
<!-- Custom Title Bar (Drag + Schließen) -->
<Border Grid.Row="0"
Height="40"
CornerRadius="0,10,0,0"
MouseLeftButtonDown="TitleBar_MouseDown">
<Grid>
<TextBlock Text="EngineeringSync Setup"
FontFamily="Segoe UI"
FontSize="12"
Foreground="#888888"
VerticalAlignment="Center"
Margin="16,0,0,0"/>
<Button Content="&#xE8BB;"
FontFamily="Segoe MDL2 Assets"
FontSize="12"
HorizontalAlignment="Right"
VerticalAlignment="Center"
Width="40" Height="40"
Background="Transparent"
BorderThickness="0"
Foreground="#888888"
Cursor="Hand"
Click="CloseButton_Click"
ToolTip="Schließen">
<Button.Style>
<Style TargetType="Button">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border x:Name="bg"
Background="Transparent"
CornerRadius="0,10,0,0">
<ContentPresenter HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="bg" Property="Background" Value="#FFE81123"/>
<Setter Property="Foreground" Value="White"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Button.Style>
</Button>
</Grid>
</Border>
<!-- ── Separator ── -->
<Border Grid.Row="0" Height="1" Background="{StaticResource BorderBrush}"
VerticalAlignment="Bottom"/>
<!-- Seiten-Content mit Animation -->
<ContentPresenter Grid.Row="1"
Content="{Binding CurrentPage}"
Margin="0"/>
<!-- ── Separator ── -->
<Border Grid.Row="2" Height="1" Background="{StaticResource BorderBrush}"
VerticalAlignment="Top"/>
<!-- Navigation Bar -->
<Border Grid.Row="2"
Background="#FAFAFA"
CornerRadius="0,0,10,0"
Padding="24,12">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<!-- Abbrechen (links) -->
<Button Grid.Column="0"
Content="Abbrechen"
HorizontalAlignment="Left"
Style="{StaticResource SecondaryButtonStyle}"
Command="{Binding CancelCommand}"
Visibility="{Binding IsCompleted,
Converter={StaticResource BoolToInvVisConverter}}"/>
<!-- Zurück -->
<Button Grid.Column="1"
Style="{StaticResource SecondaryButtonStyle}"
Margin="0,0,8,0"
Command="{Binding GoBackCommand}"
Visibility="{Binding CanGoBack,
Converter={StaticResource BoolToVisConverter}}">
<Button.Content>
<StackPanel Orientation="Horizontal">
<TextBlock Text="&#xE72B;"
FontFamily="Segoe MDL2 Assets"
Margin="0,0,6,0"/>
<TextBlock Text="Zurück"
FontFamily="Segoe UI"/>
</StackPanel>
</Button.Content>
</Button>
<!-- Weiter / Installieren -->
<Button Grid.Column="2"
Style="{StaticResource PrimaryButtonStyle}"
Command="{Binding GoNextCommand}"
Visibility="{Binding ShowNextButton,
Converter={StaticResource BoolToVisConverter}}">
<Button.Content>
<StackPanel Orientation="Horizontal">
<TextBlock x:Name="nextLabel"
Text="{Binding IsLastStep,
Converter={StaticResource LastStepLabelConverter}}"/>
<TextBlock Text=" &#xE72A;"
FontFamily="Segoe MDL2 Assets"
Visibility="{Binding IsLastStep,
Converter={StaticResource BoolToInvVisConverter}}"/>
</StackPanel>
</Button.Content>
</Button>
<!-- Fertig-Button -->
<Button Grid.Column="3"
Style="{StaticResource PrimaryButtonStyle}"
Command="{Binding FinishCommand}"
Visibility="{Binding IsCompleted,
Converter={StaticResource BoolToVisConverter}}">
<Button.Content>
<StackPanel Orientation="Horizontal">
<TextBlock Text="&#xE73E;"
FontFamily="Segoe MDL2 Assets"
Margin="0,0,6,0"/>
<TextBlock Text="Schließen"
FontFamily="Segoe UI"/>
</StackPanel>
</Button.Content>
</Button>
</Grid>
</Border>
</Grid>
</Grid>
</Border>
</Window>