Resources/XAML/Protect.xaml

<UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        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"
        FontSize="16"
        ToolTipService.InitialShowDelay="1000"
        ToolTipService.ShowDuration="2147483647"
        ToolTipService.BetweenShowDelay="1000"
        ToolTipService.ShowOnDisabled="True">
    <TabControl x:Name="TabControl" Padding="30,30,30,0" VerticalAlignment="Top">
        <!-- Protection -->
        <TabItem>
            <TabItem.Header>
                <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
                    <TextBlock FontFamily="{DynamicResource SymbolThemeFontFamily}" VerticalAlignment="Center" FontSize="20" Text="&#xE83D;"/>
                    <TextBlock Text="Protection" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="8,0,8,0" FontWeight="Normal"/>
                </StackPanel>
            </TabItem.Header>
            <Grid x:Name="ProtectionParentGrid">
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto"/>
                    <RowDefinition Height="*"/>
                    <!-- Execute button Row -->
                    <RowDefinition Height="150"/>
                </Grid.RowDefinitions>
                <!-- ComboBox -->
                <ComboBox x:Name="ProtectionPresetComboBox" HorizontalAlignment="Center" VerticalAlignment="Center" Grid.Row="0"
       Width="200" Margin="0,0,20,0"
       ToolTip="Optionally choose a preset that automatically configures the categories and sub-categories for you"
       SelectedIndex="1">
                    <ComboBoxItem Content="Preset: Basic" />
                    <ComboBoxItem Content="Preset: Recommended" />
                    <ComboBoxItem Content="Preset: Complete" />
                </ComboBox>
                <Grid x:Name="Grid1" Margin="-2.3" Grid.Row="1">
                    <Grid.RowDefinitions>
                        <RowDefinition Height="25"/>
                        <RowDefinition Height="4*" MinHeight="100"/>
                        <RowDefinition Height="70"/>
                        <RowDefinition Height="30"/>
                    </Grid.RowDefinitions>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="*"/>
                        <ColumnDefinition Width="*"/>
                    </Grid.ColumnDefinitions>
                    <!-- Categories and Sub-Categories text blocks -->
                    <TextBlock x:Name="TextBlockCategories" Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="1" HorizontalAlignment="Center" VerticalAlignment="bottom" Text="Categories" FontSize="18" FontWeight="SemiBold" Foreground="{DynamicResource {x:Static SystemColors.AccentColorBrushKey}}"/>
                    <TextBlock x:Name="TextBlockSubCategories" Grid.Row="0" Grid.Column="1" Grid.ColumnSpan="1" HorizontalAlignment="Center" VerticalAlignment="bottom" Text="Sub-Categories" FontSize="18" FontWeight="SemiBold" Foreground="{DynamicResource {x:Static SystemColors.AccentColorBrushKey}}"/>
                    <Grid Name="InnerGrid1" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="1" Margin="10">
                        <Grid.RowDefinitions>
                            <RowDefinition Height="Auto"/>
                            <RowDefinition Height="*"/>
                        </Grid.RowDefinitions>
                        <CheckBox Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="1" Content="Select All" VerticalContentAlignment="Center" Margin="7,0,0,2" Padding="10,10,40,10" x:Name="SelectAllCategories"/>
                        <!-- ListViews for Categories -->
                        <ListView x:Name="Categories" BorderThickness="0" ToolTip="Select the hardening categories to run" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="1" VirtualizingPanel.ScrollUnit="Pixel" ScrollViewer.PanningMode="Both">
                            <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="Microsoft Security Baselines | This is the foundation of all policies and is highly recommended to be selected.">
                                <CheckBox x:Name="MicrosoftSecurityBaselines" Content="Microsoft Security Baselines" VerticalContentAlignment="Center" Padding="10,10,40,10" />
                            </ListViewItem>
                            <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="MSFT365 Apps Security Baselines | You can use it even if you don't have Office apps installed.">
                                <CheckBox x:Name="Microsoft365AppsSecurityBaselines" Content="MSFT365 Apps Security Baselines" VerticalContentAlignment="Center" Padding="10,10,40,10"/>
                            </ListViewItem>
                            <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="Microsoft Defender | Highly Recommended to apply">
                                <CheckBox x:Name="MicrosoftDefender" Content="Microsoft Defender" VerticalContentAlignment="Center" Padding="10,10,40,10"/>
                            </ListViewItem>
                            <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="Attack Surface Reduction Rules | Highly Recommended to apply">
                                <CheckBox x:Name="AttackSurfaceReductionRules" Content="Attack Surface Reduction Rules" VerticalContentAlignment="Center" Padding="10,10,40,10"/>
                            </ListViewItem>
                            <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="BitLocker Settings | Highly Recommended to apply">
                                <CheckBox x:Name="BitLockerSettings" Content="BitLocker Settings" VerticalContentAlignment="Center" Padding="10,10,40,10"/>
                            </ListViewItem>
                            <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="Device Guard | Highly Recommended to apply">
                                <CheckBox x:Name="DeviceGuard" Content="Device Guard" VerticalContentAlignment="Center" Padding="10,10,40,10"/>
                            </ListViewItem>
                            <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="TLS Security | Highly Recommended to apply">
                                <CheckBox x:Name="TLSSecurity" Content="TLS Security" VerticalContentAlignment="Center" Padding="10,10,40,10"/>
                            </ListViewItem>
                            <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="Lock Screen">
                                <CheckBox x:Name="LockScreen" Content="Lock Screen" VerticalContentAlignment="Center" Padding="10,10,40,10"/>
                            </ListViewItem>
                            <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="User Account Control | Highly Recommended to apply">
                                <CheckBox x:Name="UserAccountControl" Content="User Account Control" VerticalContentAlignment="Center" Padding="10,10,40,10"/>
                            </ListViewItem>
                            <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="Windows Firewall Category">
                                <CheckBox x:Name="WindowsFirewall" Content="Windows Firewall" VerticalContentAlignment="Center" Padding="10,10,40,10"/>
                            </ListViewItem>
                            <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="Optional Windows Features Category | Highly Recommended to apply">
                                <CheckBox x:Name="OptionalWindowsFeatures" Content="Optional Windows Features" VerticalContentAlignment="Center" Padding="10,10,40,10"/>
                            </ListViewItem>
                            <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="Windows Networking Category">
                                <CheckBox x:Name="WindowsNetworking" Content="Windows Networking" VerticalContentAlignment="Center" Padding="10,10,40,10"/>
                            </ListViewItem>
                            <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="Miscellaneous Configurations | Highly Recommended to apply">
                                <CheckBox x:Name="MiscellaneousConfigurations" Content="Miscellaneous Configurations" VerticalContentAlignment="Center" Padding="10,10,40,10"/>
                            </ListViewItem>
                            <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="Windows Update Configurations | Highly Recommended to apply">
                                <CheckBox x:Name="WindowsUpdateConfigurations" Content="Windows Update Configurations" VerticalContentAlignment="Center" Padding="10,10,40,10"/>
                            </ListViewItem>
                            <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="Edge Browser Configurations">
                                <CheckBox x:Name="EdgeBrowserConfigurations" Content="Edge Browser Configurations" VerticalContentAlignment="Center" Padding="10,10,40,10"/>
                            </ListViewItem>
                            <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="Certificate Checking Commands">
                                <CheckBox x:Name="CertificateCheckingCommands" Content="Certificate Checking Commands" VerticalContentAlignment="Center" Padding="10,10,40,10"/>
                            </ListViewItem>
                            <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="Country IP Blocking">
                                <CheckBox x:Name="CountryIPBlocking" Content="Country IP Blocking" VerticalContentAlignment="Center" Padding="10,10,40,10"/>
                            </ListViewItem>
                            <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="Downloads Defense Measures">
                                <CheckBox x:Name="DownloadsDefenseMeasures" Content="Downloads Defense Measures" VerticalContentAlignment="Center" Padding="10,10,40,10"/>
                            </ListViewItem>
                            <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="Non-Admin Commands">
                                <CheckBox x:Name="NonAdminCommands" Content="Non-Admin Commands" VerticalContentAlignment="Center" Padding="10,10,40,10"/>
                            </ListViewItem>
                        </ListView>
                    </Grid>
                    <Grid x:Name="InnerGrid2" Grid.Row="1" Grid.Column="1" Grid.ColumnSpan="1" Margin="10">
                        <Grid.RowDefinitions>
                            <RowDefinition Height="Auto"/>
                            <RowDefinition Height="*"/>
                        </Grid.RowDefinitions>
                        <CheckBox Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="1" Content="Select All" VerticalContentAlignment="Center" Margin="6,0,0,2" x:Name="SelectAllSubCategories"/>
                        <!-- ListViews for Sub-Categories -->
                        <ListView x:Name="SubCategories" BorderThickness="0" ToolTip="Select sub-categories" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="1" VirtualizingPanel.ScrollUnit="Pixel" ScrollViewer.PanningMode="Both">
                            <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="NOT Recommended to use!">
                                <CheckBox x:Name="SecBaselines_NoOverrides" Content="Security Baselines No Overrides" VerticalContentAlignment="Center" Padding="10,10,40,10"/>
                            </ListViewItem>
                            <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="Enables Smart App Control">
                                <CheckBox x:Name="MSFTDefender_SAC" Content="Smart App Control" VerticalContentAlignment="Center" Padding="10,10,40,10"/>
                            </ListViewItem>
                            <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="NOT Recommended to use!">
                                <CheckBox x:Name="MSFTDefender_NoDiagData" Content="Defender: No Diagnostics Data" VerticalContentAlignment="Center" Padding="10,10,40,10"/>
                            </ListViewItem>
                            <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="NOT Recommended to use!">
                                <CheckBox x:Name="MSFTDefender_NoScheduledTask" Content="Defender: No Scheduled Task" VerticalContentAlignment="Center" Padding="10,10,40,10"/>
                            </ListViewItem>
                            <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="Faster updates for Defender">
                                <CheckBox x:Name="MSFTDefender_BetaChannels" Content="Defender: Use Beta Update Channels" VerticalContentAlignment="Center" Padding="10,10,40,10"/>
                            </ListViewItem>
                            <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="More robust lock screen">
                                <CheckBox x:Name="LockScreen_CtrlAltDel" Content="Require CTRL + Alt + Del" VerticalContentAlignment="Center" Padding="10,10,40,10"/>
                            </ListViewItem>
                            <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="WILL PREVENT PIN RESET IF YOU FORGET YOUR PIN ON LOCK SCREEN!">
                                <CheckBox x:Name="LockScreen_NoLastSignedIn" Content="No Last Signed-In" VerticalContentAlignment="Center" Padding="10,10,40,10"/>
                            </ListViewItem>
                            <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="WILL PREVENT PIN RESET IF YOU FORGET YOUR PIN ON LOCK SCREEN!">
                                <CheckBox x:Name="UAC_NoFastSwitching" Content="No Fast User Switching" VerticalContentAlignment="Center" Padding="10,10,40,10"/>
                            </ListViewItem>
                            <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="Only Signed programs will be able to run as Admin!">
                                <CheckBox x:Name="UAC_OnlyElevateSigned" Content="Only Elevate Signed" VerticalContentAlignment="Center" Padding="10,10,40,10"/>
                            </ListViewItem>
                            <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="Block NTLM completely">
                                <CheckBox x:Name="WindowsNetworking_BlockNTLM" Content="Block NTLM" VerticalContentAlignment="Center" Padding="10,10,40,10"/>
                            </ListViewItem>
                            <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="If you use BattleNet client, make sure to select this item.">
                                <CheckBox x:Name="TLSSecurity_BattleNetClient" Content="TLS for BattleNet" VerticalContentAlignment="Center" Padding="10,10,40,10"/>
                            </ListViewItem>
                            <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="Special care should be used before enabling this mode, since, in case of any failure of the virtualization modules, the system will refuse to boot.">
                                <CheckBox x:Name="DeviceGuard_MandatoryVBS" Content="Mandatory Mode for VBS" VerticalContentAlignment="Center" Padding="10,10,40,10"/>
                            </ListViewItem>
                            <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="Recommended if you either don't connect to printers or your printers use modern secure drivers">
                                <CheckBox x:Name="Miscellaneous_WindowsProtectedPrint" Content="Enable Windows Protected Print" VerticalContentAlignment="Center" Padding="10,10,40,10"/>
                            </ListViewItem>
                            <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="Enables application that opt into long path support to be able to use the feature">
                                <CheckBox x:Name="MiscellaneousConfigurations_LongPathSupport" Content="Enable support for Long Paths" VerticalContentAlignment="Center" Padding="10,10,40,10"/>
                            </ListViewItem>
                            <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="System cryptography: Force strong key protection for user keys stored on the computer">
                                <CheckBox x:Name="MiscellaneousConfigurations_StrongKeyProtection" Content="Force strong key protection" VerticalContentAlignment="Center" Padding="10,10,40,10"/>
                            </ListViewItem>
                            <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="Applies the policies that reduce the telemetry in the OS">
                                <CheckBox x:Name="MiscellaneousConfigurations_ReducedTelemetry" Content="Reduced Telemetry" VerticalContentAlignment="Center" Padding="10,10,40,10"/>
                            </ListViewItem>
                            <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="Blocks OFAC sanctioned countries' IPs in Firewall.">
                                <CheckBox x:Name="CountryIPBlocking_OFAC" Content="Block OFAC Sanctions Countries" VerticalContentAlignment="Center" Padding="10,10,40,10"/>
                            </ListViewItem>
                            <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="Recommend to use">
                                <CheckBox x:Name="DangerousScriptHostsBlocking" Content="Block Dangerous Script Hosts" VerticalContentAlignment="Center" Padding="10,10,40,10"/>
                            </ListViewItem>
                        </ListView>
                    </Grid>
                    <StackPanel Orientation="Horizontal" Grid.Row="2" Grid.ColumnSpan="2" HorizontalAlignment="Center">
                        <!-- Enable Logging -->
                        <ToggleButton x:Name="Log" ToolTip="Enable logging to a file. Everything written in the Logs tab will be written to a file you select." Height="40" Width="170" FontSize="14" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="10,0,0,0">
                            <ToggleButton.Content>
                                <StackPanel Orientation="Horizontal">
                                    <TextBlock FontFamily="{DynamicResource SymbolThemeFontFamily}" VerticalAlignment="Center" FontSize="20" Text="&#xE8F2;"/>
                                    <TextBlock Text="Logging" VerticalAlignment="Center" Margin="8,0,8,0"/>
                                </StackPanel>
                            </ToggleButton.Content>
                        </ToggleButton>
                        <!-- Enable EventLogging -->
                        <ToggleButton x:Name="EventLogging" ToolTip="Enable Event logging, security events will be written to Windows event logs" Height="40" Width="200" FontSize="14" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="10,0,10,0">
                            <ToggleButton.Content>
                                <StackPanel Orientation="Horizontal">
                                    <TextBlock FontFamily="{DynamicResource SymbolThemeFontFamily}" VerticalAlignment="Center" FontSize="20" Text="&#xEF16;"/>
                                    <TextBlock Text="Event Logging" VerticalAlignment="Center" Margin="8,0,8,0"/>
                                </StackPanel>
                            </ToggleButton.Content>
                        </ToggleButton>
                        <!-- Log Path -->
                        <Button x:Name="LogPath" ToolTip="The path to save the log file to" Margin="0,0,10,0">
                            <StackPanel Orientation="Horizontal">
                                <TextBlock FontFamily="{DynamicResource SymbolThemeFontFamily}" VerticalAlignment="Center" FontSize="20" Text="&#xE8E5;"/>
                                <TextBlock Text="Log Path" VerticalAlignment="Center" Margin="8,0,8,0"/>
                            </StackPanel>
                        </Button>
                    </StackPanel>
                    <!-- File Path TextBox -->
                    <TextBox x:Name="txtFilePath" Grid.Row="3" Grid.ColumnSpan="2" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="30,0,30,0" BorderThickness="0" ToolTip="The selected log file path where logs will be written to." MaxWidth="700" />
                </Grid>
                <!-- Grid containing the Execute Button -->
                <Grid x:Name="ExecuteButtonGrid" Grid.Row="2" Height="150">
                    <Ellipse x:Name="EclipseForward1"
     Height="50"
     Width="50"
     HorizontalAlignment="Center"
     VerticalAlignment="Center">
                        <Ellipse.Fill>
                            <LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
                                <GradientStop Color="#ED4264" Offset="0.0" />
                                <GradientStop Color="#cbad6d" Offset="1.0" />
                            </LinearGradientBrush>
                        </Ellipse.Fill>
                    </Ellipse>
                    <Ellipse x:Name="EclipseForward2"
     Height="50"
     Width="50"
     HorizontalAlignment="Center"
     VerticalAlignment="Center">
                        <Ellipse.Fill>
                            <LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
                                <GradientStop Color="#ED4264" Offset="0.0" />
                                <GradientStop Color="#cbad6d" Offset="1.0" />
                            </LinearGradientBrush>
                        </Ellipse.Fill>
                    </Ellipse>
                    <Ellipse x:Name="EclipseForward3"
     Height="50"
     Width="50"
     HorizontalAlignment="Center"
     VerticalAlignment="Center">
                        <Ellipse.Fill>
                            <LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
                                <GradientStop Color="#ED4264" Offset="0.0" />
                                <GradientStop Color="#cbad6d" Offset="1.0" />
                            </LinearGradientBrush>
                        </Ellipse.Fill>
                    </Ellipse>
                    <Ellipse x:Name="EclipseBackward1"
     Height="50"
     Width="50"
     HorizontalAlignment="Center"
     VerticalAlignment="Center">
                        <Ellipse.Fill>
                            <LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
                                <GradientStop Color="#ef32d9" Offset="0.0" />
                                <GradientStop Color="#89fffd" Offset="1.0" />
                            </LinearGradientBrush>
                        </Ellipse.Fill>
                    </Ellipse>
                    <Ellipse x:Name="EclipseBackward2"
     Height="50"
     Width="50"
     HorizontalAlignment="Center"
     VerticalAlignment="Center">
                        <Ellipse.Fill>
                            <LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
                                <GradientStop Color="#ef32d9" Offset="0.0" />
                                <GradientStop Color="#89fffd" Offset="1.0" />
                            </LinearGradientBrush>
                        </Ellipse.Fill>
                    </Ellipse>
                    <Ellipse x:Name="EclipseBackward3"
     Height="50"
     Width="50"
     HorizontalAlignment="Center"
     VerticalAlignment="Center">
                        <Ellipse.Fill>
                            <LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
                                <GradientStop Color="#ef32d9" Offset="0.0" />
                                <GradientStop Color="#89fffd" Offset="1.0" />
                            </LinearGradientBrush>
                        </Ellipse.Fill>
                    </Ellipse>
                    <ToggleButton x:Name="Execute"
          Height="55"
          Width="55"
          HorizontalAlignment="Center"
          VerticalAlignment="Center" >
                        <ToggleButton.Template>
                            <ControlTemplate TargetType="ToggleButton">
                                <Border x:Name="border"
                Background="Transparent"
                CornerRadius="30">
                                    <TextBlock FontFamily="{DynamicResource SymbolThemeFontFamily}" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="24" FontWeight="UltraBold" Text="&#xE768;"/>
                                </Border>
                                <ControlTemplate.Triggers>
                                    <Trigger Property="IsMouseOver" Value="True">
                                        <Setter Property="Background" TargetName="border">
                                            <Setter.Value>
                                                <LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
                                                    <GradientStop Color="#ED4264" Offset="0.0" />
                                                    <GradientStop Color="#cbad6d" Offset="1.0" />
                                                </LinearGradientBrush>
                                            </Setter.Value>
                                        </Setter>
                                    </Trigger>
                                    <Trigger Property="IsChecked" Value="True">
                                        <Setter Property="Background" TargetName="border">
                                            <Setter.Value>
                                                <LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
                                                    <GradientStop Color="#ED4264" Offset="0.0" />
                                                    <GradientStop Color="#cbad6d" Offset="1.0" />
                                                </LinearGradientBrush>
                                            </Setter.Value>
                                        </Setter>
                                    </Trigger>
                                    <MultiTrigger>
                                        <MultiTrigger.Conditions>
                                            <Condition Property="IsMouseOver" Value="True" />
                                            <Condition Property="IsChecked" Value="False" />
                                        </MultiTrigger.Conditions>
                                        <Setter Property="Background" TargetName="border">
                                            <Setter.Value>
                                                <LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
                                                    <GradientStop Color="#ef32d9" Offset="0.0" />
                                                    <GradientStop Color="#89fffd" Offset="1.0" />
                                                </LinearGradientBrush>
                                            </Setter.Value>
                                        </Setter>
                                    </MultiTrigger>
                                </ControlTemplate.Triggers>
                            </ControlTemplate>
                        </ToggleButton.Template>
                        <ToggleButton.Triggers>
                            <EventTrigger RoutedEvent="ToggleButton.Checked">
                                <EventTrigger.Actions>
                                    <BeginStoryboard x:Name="Ellipse_Activated">
                                        <Storyboard>
                                            <DoubleAnimation BeginTime="00:00:00"
                                     Duration="00:00:01.5"
                                     From="50"
                                     To="150"
                                     Storyboard.TargetProperty="(Ellipse.Width)"
                                     Storyboard.TargetName="EclipseForward1"
                                     RepeatBehavior="Forever" />
                                            <DoubleAnimation BeginTime="00:00:00"
                                     Duration="00:00:01.5"
                                     From="50"
                                     To="150"
                                     Storyboard.TargetProperty="(Ellipse.Height)"
                                     Storyboard.TargetName="EclipseForward1"
                                     RepeatBehavior="Forever" />
                                            <DoubleAnimation Storyboard.TargetProperty="Opacity"
                                     Storyboard.TargetName="EclipseForward1"
                                     From="1.0"
                                     To="0.0"
                                     BeginTime="00:00:00"
                                     Duration="00:00:01.5"
                                     RepeatBehavior="Forever" />
                                            <DoubleAnimation BeginTime="00:00:00.5"
                                     Duration="00:00:01.5"
                                     From="50"
                                     To="150"
                                     Storyboard.TargetProperty="(Ellipse.Width)"
                                     Storyboard.TargetName="EclipseForward2"
                                     RepeatBehavior="Forever" />
                                            <DoubleAnimation BeginTime="00:00:00.5"
                                     Duration="00:00:01.5"
                                     From="50"
                                     To="150"
                                     Storyboard.TargetProperty="(Ellipse.Height)"
                                     Storyboard.TargetName="EclipseForward2"
                                     RepeatBehavior="Forever" />
                                            <DoubleAnimation Storyboard.TargetProperty="Opacity"
                                     Storyboard.TargetName="EclipseForward2"
                                     From="1.0"
                                     To="0.0"
                                     BeginTime="00:00:00.5"
                                     Duration="00:00:01.5"
                                     RepeatBehavior="Forever" />
                                            <DoubleAnimation BeginTime="00:00:01"
                                     Duration="00:00:01.5"
                                     From="50"
                                     To="150"
                                     Storyboard.TargetProperty="(Ellipse.Width)"
                                     Storyboard.TargetName="EclipseForward3"
                                     RepeatBehavior="Forever" />
                                            <DoubleAnimation BeginTime="00:00:01"
                                     Duration="00:00:01.5"
                                     From="50"
                                     To="150"
                                     Storyboard.TargetProperty="(Ellipse.Height)"
                                     Storyboard.TargetName="EclipseForward3"
                                     RepeatBehavior="Forever" />
                                            <DoubleAnimation Storyboard.TargetProperty="Opacity"
                                     Storyboard.TargetName="EclipseForward3"
                                     From="1.0"
                                     To="0.0"
                                     BeginTime="00:00:01"
                                     Duration="00:00:01.5"
                                     RepeatBehavior="Forever" />
                                        </Storyboard>
                                    </BeginStoryboard>
                                </EventTrigger.Actions>
                            </EventTrigger>
                            <EventTrigger RoutedEvent="ToggleButton.Unchecked">
                                <EventTrigger.Actions>
                                    <RemoveStoryboard BeginStoryboardName="Ellipse_Activated" />
                                    <BeginStoryboard x:Name="Ellipse_Deactivated">
                                        <Storyboard>
                                            <DoubleAnimation BeginTime="00:00:00"
                                     Duration="00:00:01.5"
                                     From="150"
                                     To="50"
                                     Storyboard.TargetProperty="(Ellipse.Width)"
                                     Storyboard.TargetName="EclipseBackward1" />
                                            <DoubleAnimation BeginTime="00:00:00"
                                     Duration="00:00:01.5"
                                     From="150"
                                     To="50"
                                     Storyboard.TargetProperty="(Ellipse.Height)"
                                     Storyboard.TargetName="EclipseBackward1" />
                                            <DoubleAnimation Storyboard.TargetProperty="Opacity"
                                     Storyboard.TargetName="EclipseBackward1"
                                     From="0.0"
                                     To="1.0"
                                     BeginTime="00:00:00"
                                     Duration="00:00:01.5" />
                                            <DoubleAnimation BeginTime="00:00:00"
                                     Duration="00:00:01"
                                     From="125"
                                     To="50"
                                     Storyboard.TargetProperty="(Ellipse.Width)"
                                     Storyboard.TargetName="EclipseBackward2" />
                                            <DoubleAnimation BeginTime="00:00:00"
                                     Duration="00:00:01"
                                     From="125"
                                     To="50"
                                     Storyboard.TargetProperty="(Ellipse.Height)"
                                     Storyboard.TargetName="EclipseBackward2" />
                                            <DoubleAnimation Storyboard.TargetProperty="Opacity"
                                     Storyboard.TargetName="EclipseBackward2"
                                     From="0.0"
                                     To="1.0"
                                     BeginTime="00:00:00"
                                     Duration="00:00:01" />
                                            <DoubleAnimation BeginTime="00:00:00"
                                     Duration="00:00:00.5"
                                     From="100"
                                     To="50"
                                     Storyboard.TargetProperty="(Ellipse.Width)"
                                     Storyboard.TargetName="EclipseBackward3" />
                                            <DoubleAnimation BeginTime="00:00:00"
                                     Duration="00:00:00.5"
                                     From="100"
                                     To="50"
                                     Storyboard.TargetProperty="(Ellipse.Height)"
                                     Storyboard.TargetName="EclipseBackward3" />
                                            <DoubleAnimation Storyboard.TargetProperty="Opacity"
                                     Storyboard.TargetName="EclipseBackward3"
                                     From="0.0"
                                     To="1.0"
                                     BeginTime="00:00:00"
                                     Duration="00:00:00.5" />
                                        </Storyboard>
                                    </BeginStoryboard>
                                </EventTrigger.Actions>
                            </EventTrigger>
                        </ToggleButton.Triggers>
                    </ToggleButton>
                </Grid>
                <!--End of Execute Button Grid-->
            </Grid>
        </TabItem>
        <!-- Offline Configurations -->
        <TabItem>
            <TabItem.Header>
                <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
                    <TextBlock FontFamily="{DynamicResource SymbolThemeFontFamily}" VerticalAlignment="Center" FontSize="20" Text="&#xF384;"/>
                    <TextBlock Text="Offline Configuration" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="8,0,8,0" FontWeight="Normal"/>
                </StackPanel>
            </TabItem.Header>
            <ScrollViewer HorizontalScrollBarVisibility="Auto">
                <Grid x:Name="OfflineConfigurationsGrid" Margin="-2.3">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="*"/>
                        <ColumnDefinition Width="*"/>
                    </Grid.ColumnDefinitions>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto"/>
                        <RowDefinition Height="60"/>
                        <RowDefinition Height="60"/>
                        <RowDefinition Height="60"/>
                        <RowDefinition Height="60"/>
                    </Grid.RowDefinitions>
                    <TextBlock x:Name="OfflineConfigurationsNoticeTextBlock" Text="To enable offline mode, use: Protect-WindowsSecurity -GUI -Offline" HorizontalAlignment="Center" VerticalAlignment="Top" Grid.Row="0" Grid.ColumnSpan="2" Visibility="Collapsed"/>
                    <!-- Enable Offline Mode CheckBox -->
                    <ToggleButton Grid.Row="1" Grid.ColumnSpan="2" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,20,0,0" x:Name="EnableOfflineMode" Content="Enable Offline Mode" ToolTip="Enables Offline Mode and will use the selected files instead of downloading them from the Microsoft servers" Height="40" Width="170" FontSize="16" />
                    <!-- Row 1 -->
                    <StackPanel Orientation="Horizontal" Grid.Row="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Margin="30,0,30,0">
                        <!-- LGPO Button -->
                        <Button x:Name="LGPOZipButton" Margin="0,0,0,0" ToolTip="Browse for the path to LGPO zip file">
                            <StackPanel Orientation="Horizontal">
                                <TextBlock FontFamily="{DynamicResource SymbolThemeFontFamily}" VerticalAlignment="Center" FontSize="20" Text="&#xE838;"/>
                                <TextBlock Text="LGPO" VerticalAlignment="Center" Margin="8,0,8,0"/>
                            </StackPanel>
                        </Button>
                        <!-- LGPO Path Text box -->
                        <TextBox x:Name="LGPOZipTextBox" Height="40" Margin="20,0,0,0" ToolTip="Selected path for the LGPO zip file" MinWidth="210" MaxWidth="700" />
                    </StackPanel>
                    <!-- Row 2 -->
                    <StackPanel Orientation="Horizontal" Grid.Row="3" Grid.ColumnSpan="2" HorizontalAlignment="Center" Margin="30,0,30,0">
                        <!-- Microsoft Security Baselines Button -->
                        <Button x:Name="MicrosoftSecurityBaselineZipButton" Margin="0,0,0,0" ToolTip="Browse for the path to Microsoft Security Baseline zip file">
                            <StackPanel Orientation="Horizontal">
                                <TextBlock FontFamily="{DynamicResource SymbolThemeFontFamily}" VerticalAlignment="Center" FontSize="20" Text="&#xE838;"/>
                                <TextBlock Text="Microsoft Security Baseline" VerticalAlignment="Center" Margin="8,0,8,0"/>
                            </StackPanel>
                        </Button>
                        <!-- Microsoft Security Baselines Text block -->
                        <TextBox x:Name="MicrosoftSecurityBaselineZipTextBox" Height="40" Margin="20,0,0,0" MinWidth="210" MaxWidth="700" ToolTip="Selected path for the Microsoft Security Baseline zip file" VerticalContentAlignment="Center" />
                    </StackPanel>
                    <!-- Row 3 -->
                    <StackPanel Orientation="Horizontal" Grid.Row="4" Grid.ColumnSpan="2" HorizontalAlignment="Center" Margin="30,0,30,0">
                        <!-- M365 apps security baselines button -->
                        <Button x:Name="Microsoft365AppsSecurityBaselineZipButton" Margin="0,0,0,0" ToolTip="Browse for the path to Microsoft 365 Apps Security Baseline zip file">
                            <StackPanel Orientation="Horizontal">
                                <TextBlock FontFamily="{DynamicResource SymbolThemeFontFamily}" VerticalAlignment="Center" FontSize="20" Text="&#xE838;"/>
                                <TextBlock Text="Microsoft 365 Apps Security Baseline" VerticalAlignment="Center" Margin="8,0,8,0"/>
                            </StackPanel>
                        </Button>
                        <!-- M365 apps security baselines text block -->
                        <TextBox x:Name="Microsoft365AppsSecurityBaselineZipTextBox" Height="40" Margin="20,0,0,0" MinWidth="210" MaxWidth="700" ToolTip="Selected path for the Microsoft 365 Apps Security Baseline zip file" VerticalContentAlignment="Center" />
                    </StackPanel>
                </Grid>
            </ScrollViewer>
        </TabItem>
    </TabControl>
</UserControl>