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"
             Style="{StaticResource Page_Style}" Background="Transparent" FontFamily="Trebuchet MS" FontSize="16"
        ToolTipService.InitialShowDelay="500"
        ToolTipService.ShowDuration="2147483647"
        ToolTipService.BetweenShowDelay="0"
        ToolTipService.ShowOnDisabled="True">
 
    <!-- The UserControl's 4 tooltip related elements are necessary for the style to appear properly and they only appear to this User Control/View -->
    <!-- Grid for Online Mode Tab - Removing the white border with negative margins -->
    <Grid x:Name="ParentGrid" Margin="-2.3,-2.3,-2.3,-2.3">
        <!-- Row definitions for the grid -->
        <Grid.RowDefinitions>
            <!-- Progress Bar Row -->
            <RowDefinition Height="20"/>
            <!-- Main Toggle Button Row -->
            <RowDefinition Height="Auto"/>
            <!-- Main Content Control for all other elements Row -->
            <RowDefinition Height="*"/>
            <!-- Execute button Row -->
            <RowDefinition Height="150"/>
        </Grid.RowDefinitions>
        <!-- Column definitions for the grid -->
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>
        <ProgressBar x:Name="MainProgressBar"
           Grid.Row="0"
           IsIndeterminate="True"
           Height="5"
           Background="Transparent"
           Foreground="DeepPink"
           Margin="0,0,0,10"
           Grid.ColumnSpan="2"
           BorderThickness="0" />
 
        <StackPanel Margin="0" Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center" Grid.Row="1" Grid.ColumnSpan="2">
 
            <!-- ComboBox -->
            <ComboBox x:Name="ProtectionPresetComboBox"
              Width="200" Margin="0,0,20,0"
              HorizontalAlignment="Center"
              VerticalAlignment="Center"
              Style="{StaticResource ModernComboBoxStyle}"
              ItemContainerStyle="{StaticResource ModernComboBoxItemStyle}"
              SelectedIndex="1">
                <ComboBoxItem Content="Preset: Basic" />
                <ComboBoxItem Content="Preset: Recommended" />
                <ComboBoxItem Content="Preset: Complete" />
            </ComboBox>
 
            <!-- ToggleButton -->
            <ToggleButton HorizontalAlignment="Center"
                  Margin="20,0,0,0"
                  x:Name="MainTabControlToggle"
                  ToolTip="Choose between Online or Offline modes"
                  Foreground="White"
                  Height="40"
                  Width="170"
                  FontSize="18">
                <ToggleButton.Template>
                    <ControlTemplate TargetType="ToggleButton">
                        <Border x:Name="Button1" Background="{StaticResource PinkGradient}" CornerRadius="20" Padding="1">
                            <Border x:Name="Button2" Background="{StaticResource GradientBLK}" Width="80" CornerRadius="20" HorizontalAlignment="Left">
                                <TextBlock x:Name="TextBlock1" Text="Online" HorizontalAlignment="Center" VerticalAlignment="Center" TextAlignment="Center"/>
                            </Border>
                        </Border>
                        <ControlTemplate.Triggers>
                            <Trigger Property="IsChecked" Value="True">
                                <Setter TargetName="Button2" Property="HorizontalAlignment" Value="Right"/>
                                <!-- The color can be changed to be different when the button is toggled vs when it's not -->
                                <Setter TargetName="Button1" Property="Background" Value="{StaticResource PinkGradient}"/>
                                <Setter TargetName="TextBlock1" Property="Text" Value="Offline"/>
                            </Trigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </ToggleButton.Template>
            </ToggleButton>
 
        </StackPanel>
 
        <!-- ContentControl to display content based on the ToggleButton's state -->
        <ContentControl Grid.Row="2" Grid.ColumnSpan="2" x:Name="MainContentControl">
            <ContentControl.Style>
                <Style TargetType="ContentControl" x:Name="MainContentControlStyle">
                    <Style.Triggers>
                        <DataTrigger Binding="{Binding ElementName=MainTabControlToggle, Path=IsChecked}" Value="False">
                            <Setter Property="Content">
                                <Setter.Value>
                                    <!-- Online Tab/Grid -->
                                    <Grid x:Name="Grid1" Margin="-2.3,-2.3,-2.3,-2.3">
                                        <!-- Row and Column definitions for the grid -->
                                        <Grid.RowDefinitions>
                                            <!-- This is for row 0 -->
                                            <RowDefinition Height="25"/>
                                            <!-- This is for row 1 -->
                                            <RowDefinition Height="4*" MinHeight="100"/>
                                            <!-- This is for row 2 -->
                                            <RowDefinition Height="70"/>
                                            <!-- This is for row 3 -->
                                            <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" Foreground="#FFFA00FF" FontSize="18">
                                            <TextBlock.Effect>
                                                <DropShadowEffect ShadowDepth="6" Direction="320" Color="#FFF485F0" Opacity="100" BlurRadius="10" RenderingBias="Quality"/>
                                            </TextBlock.Effect>
                                        </TextBlock>
                                        <TextBlock x:Name="TextBlockSubCategories" Grid.Row="0" Grid.Column="1" Grid.ColumnSpan="1" HorizontalAlignment="Center" VerticalAlignment="bottom" Text="Sub-Categories" Foreground="#FFFA00FF" FontSize="18">
                                            <TextBlock.Effect>
                                                <DropShadowEffect ShadowDepth="6" Direction="320" Color="#FFF485F0" Opacity="100" BlurRadius="10" RenderingBias="Quality"/>
                                            </TextBlock.Effect>
                                        </TextBlock>
                                        <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" Template="{StaticResource CustomCheckBoxTemplate}"/>
                                            <!-- 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">
                                                <!-- Background color for the ListView -->
                                                <ListView.Background>
                                                    <SolidColorBrush Color="transparent"/>
                                                </ListView.Background>
                                                <ListViewItem ToolTipService.InitialShowDelay="500" 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" Template="{StaticResource CustomCheckBoxTemplate}" />
                                                </ListViewItem>
                                                <ListViewItem ToolTipService.InitialShowDelay="500" 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" Template="{StaticResource CustomCheckBoxTemplate}"/>
                                                </ListViewItem>
                                                <ListViewItem ToolTipService.InitialShowDelay="500" ToolTip="Microsoft Defender | Highly Recommended to apply">
                                                    <CheckBox x:Name="MicrosoftDefender" Content="Microsoft Defender" VerticalContentAlignment="Center" Padding="10,10,40,10" Template="{StaticResource CustomCheckBoxTemplate}"/>
                                                </ListViewItem>
                                                <ListViewItem ToolTipService.InitialShowDelay="500" 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" Template="{StaticResource CustomCheckBoxTemplate}"/>
                                                </ListViewItem>
                                                <ListViewItem ToolTipService.InitialShowDelay="500" ToolTip="BitLocker Settings | Highly Recommended to apply">
                                                    <CheckBox x:Name="BitLockerSettings" Content="BitLocker Settings" VerticalContentAlignment="Center" Padding="10,10,40,10" Template="{StaticResource CustomCheckBoxTemplate}"/>
                                                </ListViewItem>
                                                <ListViewItem ToolTipService.InitialShowDelay="500" ToolTip="TLS Security | Highly Recommended to apply">
                                                    <CheckBox x:Name="TLSSecurity" Content="TLS Security" VerticalContentAlignment="Center" Padding="10,10,40,10" Template="{StaticResource CustomCheckBoxTemplate}"/>
                                                </ListViewItem>
                                                <ListViewItem ToolTipService.InitialShowDelay="500" ToolTip="Lock Screen">
                                                    <CheckBox x:Name="LockScreen" Content="Lock Screen" VerticalContentAlignment="Center" Padding="10,10,40,10" Template="{StaticResource CustomCheckBoxTemplate}"/>
                                                </ListViewItem>
                                                <ListViewItem ToolTipService.InitialShowDelay="500" ToolTip="User Account Control | Highly Recommended to apply">
                                                    <CheckBox x:Name="UserAccountControl" Content="User Account Control" VerticalContentAlignment="Center" Padding="10,10,40,10" Template="{StaticResource CustomCheckBoxTemplate}"/>
                                                </ListViewItem>
                                                <ListViewItem ToolTipService.InitialShowDelay="500" ToolTip="Windows Firewall Category">
                                                    <CheckBox x:Name="WindowsFirewall" Content="Windows Firewall" VerticalContentAlignment="Center" Padding="10,10,40,10" Template="{StaticResource CustomCheckBoxTemplate}"/>
                                                </ListViewItem>
                                                <ListViewItem ToolTipService.InitialShowDelay="500" ToolTip="Optional Windows Features Category | Highly Recommended to apply">
                                                    <CheckBox x:Name="OptionalWindowsFeatures" Content="Optional Windows Features" VerticalContentAlignment="Center" Padding="10,10,40,10" Template="{StaticResource CustomCheckBoxTemplate}"/>
                                                </ListViewItem>
                                                <ListViewItem ToolTipService.InitialShowDelay="500" ToolTip="Windows Networking Category">
                                                    <CheckBox x:Name="WindowsNetworking" Content="Windows Networking" VerticalContentAlignment="Center" Padding="10,10,40,10" Template="{StaticResource CustomCheckBoxTemplate}"/>
                                                </ListViewItem>
                                                <ListViewItem ToolTipService.InitialShowDelay="500" ToolTip="Miscellaneous Configurations | Highly Recommended to apply">
                                                    <CheckBox x:Name="MiscellaneousConfigurations" Content="Miscellaneous Configurations" VerticalContentAlignment="Center" Padding="10,10,40,10" Template="{StaticResource CustomCheckBoxTemplate}"/>
                                                </ListViewItem>
                                                <ListViewItem ToolTipService.InitialShowDelay="500" ToolTip="Windows Update Configurations | Highly Recommended to apply">
                                                    <CheckBox x:Name="WindowsUpdateConfigurations" Content="Windows Update Configurations" VerticalContentAlignment="Center" Padding="10,10,40,10" Template="{StaticResource CustomCheckBoxTemplate}"/>
                                                </ListViewItem>
                                                <ListViewItem ToolTipService.InitialShowDelay="500" ToolTip="Edge Browser Configurations">
                                                    <CheckBox x:Name="EdgeBrowserConfigurations" Content="Edge Browser Configurations" VerticalContentAlignment="Center" Padding="10,10,40,10" Template="{StaticResource CustomCheckBoxTemplate}"/>
                                                </ListViewItem>
                                                <ListViewItem ToolTipService.InitialShowDelay="500" ToolTip="Certificate Checking Commands">
                                                    <CheckBox x:Name="CertificateCheckingCommands" Content="Certificate Checking Commands" VerticalContentAlignment="Center" Padding="10,10,40,10" Template="{StaticResource CustomCheckBoxTemplate}"/>
                                                </ListViewItem>
                                                <ListViewItem ToolTipService.InitialShowDelay="500" ToolTip="Country IP Blocking">
                                                    <CheckBox x:Name="CountryIPBlocking" Content="Country IP Blocking" VerticalContentAlignment="Center" Padding="10,10,40,10" Template="{StaticResource CustomCheckBoxTemplate}"/>
                                                </ListViewItem>
                                                <ListViewItem ToolTipService.InitialShowDelay="500" ToolTip="Downloads Defense Measures">
                                                    <CheckBox x:Name="DownloadsDefenseMeasures" Content="Downloads Defense Measures" VerticalContentAlignment="Center" Padding="10,10,40,10" Template="{StaticResource CustomCheckBoxTemplate}"/>
                                                </ListViewItem>
                                                <ListViewItem ToolTipService.InitialShowDelay="500" ToolTip="Non-Admin Commands">
                                                    <CheckBox x:Name="NonAdminCommands" Content="Non-Admin Commands" VerticalContentAlignment="Center" Padding="10,10,40,10" Template="{StaticResource CustomCheckBoxTemplate}"/>
                                                </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" Template="{StaticResource CustomCheckBoxTemplate}"/>
                                            <!-- 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">
                                                <ListView.Background>
                                                    <SolidColorBrush Color="transparent"/>
                                                </ListView.Background>
                                                <ListViewItem ToolTipService.InitialShowDelay="500" ToolTip="NOT Recommended to use!">
                                                    <CheckBox x:Name="SecBaselines_NoOverrides" Content="Security Baselines No Overrides" VerticalContentAlignment="Center" Padding="10,10,40,10" Template="{StaticResource CustomCheckBoxTemplate}"/>
                                                </ListViewItem>
                                                <ListViewItem ToolTipService.InitialShowDelay="500" ToolTip="Enables Smart App Control">
                                                    <CheckBox x:Name="MSFTDefender_SAC" Content="Smart App Control" VerticalContentAlignment="Center" Padding="10,10,40,10" Template="{StaticResource CustomCheckBoxTemplate}"/>
                                                </ListViewItem>
                                                <ListViewItem ToolTipService.InitialShowDelay="500" ToolTip="NOT Recommended to use!">
                                                    <CheckBox x:Name="MSFTDefender_NoDiagData" Content="Defender: No Diagnostics Data" VerticalContentAlignment="Center" Padding="10,10,40,10" Template="{StaticResource CustomCheckBoxTemplate}"/>
                                                </ListViewItem>
                                                <ListViewItem ToolTipService.InitialShowDelay="500" ToolTip="NOT Recommended to use!">
                                                    <CheckBox x:Name="MSFTDefender_NoScheduledTask" Content="Defender: No Scheduled Task" VerticalContentAlignment="Center" Padding="10,10,40,10" Template="{StaticResource CustomCheckBoxTemplate}"/>
                                                </ListViewItem>
                                                <ListViewItem ToolTipService.InitialShowDelay="500" ToolTip="Faster updates for Defender">
                                                    <CheckBox x:Name="MSFTDefender_BetaChannels" Content="Defender: Use Beta Update Channels" VerticalContentAlignment="Center" Padding="10,10,40,10" Template="{StaticResource CustomCheckBoxTemplate}"/>
                                                </ListViewItem>
                                                <ListViewItem ToolTipService.InitialShowDelay="500" ToolTip="More robust lock screen">
                                                    <CheckBox x:Name="LockScreen_CtrlAltDel" Content="Require CTRL + Alt + Del" VerticalContentAlignment="Center" Padding="10,10,40,10" Template="{StaticResource CustomCheckBoxTemplate}"/>
                                                </ListViewItem>
                                                <ListViewItem ToolTipService.InitialShowDelay="500" 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" Template="{StaticResource CustomCheckBoxTemplate}"/>
                                                </ListViewItem>
                                                <ListViewItem ToolTipService.InitialShowDelay="500" 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" Template="{StaticResource CustomCheckBoxTemplate}"/>
                                                </ListViewItem>
                                                <ListViewItem ToolTipService.InitialShowDelay="500" ToolTip="Only Signed programs will be able to run as Admin!">
                                                    <CheckBox x:Name="UAC_OnlyElevateSigned" Content="Only Elevated Signed" VerticalContentAlignment="Center" Padding="10,10,40,10" Template="{StaticResource CustomCheckBoxTemplate}"/>
                                                </ListViewItem>
                                                <ListViewItem ToolTipService.InitialShowDelay="500" 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" Template="{StaticResource CustomCheckBoxTemplate}"/>
                                                </ListViewItem>
                                                <ListViewItem ToolTipService.InitialShowDelay="500" ToolTip="Recommend to use">
                                                    <CheckBox x:Name="DangerousScriptHostsBlocking" Content="Block Dangerous Script Hosts" VerticalContentAlignment="Center" Padding="10,10,40,10" Template="{StaticResource CustomCheckBoxTemplate}"/>
                                                </ListViewItem>
                                                <ListViewItem ToolTipService.InitialShowDelay="500" ToolTip="Optional">
                                                    <CheckBox x:Name="ClipboardSync" Content="Enable Clipboard Sync" VerticalContentAlignment="Center" Padding="10,10,40,10" Template="{StaticResource CustomCheckBoxTemplate}"/>
                                                </ListViewItem>
                                            </ListView>
                                        </Grid>
                                        <!-- Enable Logging CheckBox -->
                                        <Viewbox x:Name="LoggingViewBox" Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="1" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="14">
                                            <ToggleButton x:Name="Log" ToolTip="Enable logging" Foreground="White" Height="40" Width="170" FontSize="16">
                                                <ToggleButton.Template>
                                                    <ControlTemplate TargetType="ToggleButton">
                                                        <Border x:Name="Button11" Background="LightGray" CornerRadius="10" Padding="3">
                                                            <Border x:Name="Button22" Background="Black" Width="100" CornerRadius="10" HorizontalAlignment="Left">
                                                                <TextBlock x:Name="TextBlock11" Text="Logging Off" HorizontalAlignment="Center" VerticalAlignment="Center" TextAlignment="Center"/>
                                                            </Border>
                                                        </Border>
                                                        <ControlTemplate.Triggers>
                                                            <Trigger Property="IsChecked" Value="True">
                                                                <Setter TargetName="Button22" Property="HorizontalAlignment" Value="Right"/>
                                                                <Setter TargetName="Button11" Property="Background" Value="#FFF485F0"/>
                                                                <Setter TargetName="TextBlock11" Property="Text" Value="Logging On"/>
                                                            </Trigger>
                                                        </ControlTemplate.Triggers>
                                                    </ControlTemplate>
                                                </ToggleButton.Template>
                                            </ToggleButton>
                                        </Viewbox>
                                        <!-- Log Path TextBox -->
                                        <Button x:Name="LogPath" Grid.Row="2" Grid.Column="1" Width="150" Height="40" FontSize="16" FontWeight="Bold" Background="{StaticResource PinkGradient}" ToolTip="The path to save the log file to">
                                            <Button.Template>
                                                <ControlTemplate TargetType="Button">
                                                    <Border x:Name="border" BorderThickness="3" Width="{TemplateBinding Width}" Height="{TemplateBinding Height}" Background="{TemplateBinding Background}" CornerRadius="6" BorderBrush="MediumPurple">
                                                        <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
                                                    </Border>
                                                    <ControlTemplate.Triggers>
                                                        <Trigger Property="IsMouseOver" Value="true">
                                                            <Trigger.EnterActions>
                                                                <BeginStoryboard>
                                                                    <Storyboard>
                                                                        <DoubleAnimation To="160" Storyboard.TargetProperty="Width" Duration="0:0:0.3"/>
                                                                        <DoubleAnimation To="45" Storyboard.TargetProperty="Height" Duration="0:0:0.3"/>
                                                                        <ColorAnimation To="Coral" Storyboard.TargetProperty="Background.(SolidColorBrush.Color)" Duration="0:0:0.3"/>
                                                                    </Storyboard>
                                                                </BeginStoryboard>
                                                            </Trigger.EnterActions>
                                                            <Trigger.ExitActions>
                                                                <BeginStoryboard>
                                                                    <Storyboard>
                                                                        <DoubleAnimation To="150" Storyboard.TargetProperty="Width" Duration="0:0:0.3"/>
                                                                        <DoubleAnimation To="40" Storyboard.TargetProperty="Height" Duration="0:0:0.3"/>
                                                                        <ColorAnimation To="White" Storyboard.TargetProperty="Background.(SolidColorBrush.Color)" Duration="0:0:0.3"/>
                                                                    </Storyboard>
                                                                </BeginStoryboard>
                                                            </Trigger.ExitActions>
                                                        </Trigger>
                                                        <Trigger Property="IsPressed" Value="true">
                                                            <Setter TargetName="border" Property="Background">
                                                                <Setter.Value>
                                                                    <LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
                                                                        <GradientStop Color="#eaafc8" Offset="0.0"/>
                                                                        <GradientStop Color="#e1eec3" Offset="1.0"/>
                                                                    </LinearGradientBrush>
                                                                </Setter.Value>
                                                            </Setter>
                                                        </Trigger>
                                                    </ControlTemplate.Triggers>
                                                </ControlTemplate>
                                            </Button.Template>
                                            <StackPanel Orientation="Horizontal">
                                                <Image x:Name="LogButtonIcon" Width="40" Height="30"/>
                                                <TextBlock Text="Log Path" VerticalAlignment="Center"/>
                                            </StackPanel>
                                        </Button>
                                        <!-- File Path TextBox which is dynamic -->
                                        <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" MaxWidth="700">
                                            <TextBox.Style>
                                                <Style TargetType="{x:Type TextBox}">
                                                    <Setter Property="VerticalContentAlignment" Value="Center"/>
                                                    <Setter Property="Template">
                                                        <Setter.Value>
                                                            <ControlTemplate TargetType="{x:Type TextBox}">
                                                                <Border CornerRadius="10" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}">
                                                                    <ScrollViewer x:Name="PART_ContentHost" Margin="0"/>
                                                                </Border>
                                                            </ControlTemplate>
                                                        </Setter.Value>
                                                    </Setter>
                                                    <Setter Property="Effect">
                                                        <Setter.Value>
                                                            <DropShadowEffect ShadowDepth="0" Direction="0" Color="#FFF485F0" Opacity="1" BlurRadius="10" RenderingBias="Quality"/>
                                                        </Setter.Value>
                                                    </Setter>
                                                    <Style.Triggers>
                                                        <!-- Trigger to apply blur when the TextBox is disabled -->
                                                        <Trigger Property="IsEnabled" Value="False">
                                                            <Setter Property="Effect">
                                                                <Setter.Value>
                                                                    <BlurEffect Radius="5"/>
                                                                </Setter.Value>
                                                            </Setter>
                                                            <!-- Optional: Reduce opacity to further indicate that the TextBox is disabled -->
                                                            <Setter Property="Opacity" Value="0.7"/>
                                                        </Trigger>
                                                    </Style.Triggers>
                                                </Style>
                                            </TextBox.Style>
                                        </TextBox>
                                    </Grid>
                                </Setter.Value>
                            </Setter>
                        </DataTrigger>
                        <DataTrigger Binding="{Binding ElementName=MainTabControlToggle, Path=IsChecked}" Value="True">
                            <Setter Property="Content">
                                <Setter.Value>
                                    <!-- Offline Tab/Grid -->
                                    <Grid x:Name="Grid2" Margin="-2.3,-2.3,-2.3,-2.3">
                                        <Grid.ColumnDefinitions>
                                            <ColumnDefinition Width="*"/>
                                            <!-- Button column -->
                                            <ColumnDefinition Width="*"/>
                                            <!-- Text area column -->
                                        </Grid.ColumnDefinitions>
                                        <Grid.RowDefinitions>
                                            <!-- This is for row 0 -->
                                            <RowDefinition Height="60"/>
                                            <!-- This is for row 1 -->
                                            <RowDefinition Height="60"/>
                                            <!-- This is for row 2 -->
                                            <RowDefinition Height="60"/>
                                            <!-- This is for row 3 -->
                                            <RowDefinition Height="60"/>
                                        </Grid.RowDefinitions>
                                        <!-- Row 0 -->
                                        <!-- Enable Offline Mode CheckBox -->
                                        <Viewbox Grid.Row="0" Grid.ColumnSpan="2" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,20,0,0">
                                            <ToggleButton x:Name="EnableOfflineMode" ToolTip="Enables Offline Mode and will use the selected files instead of downloading them from the Microsoft servers" Foreground="White" Height="40" Width="170" FontSize="16">
                                                <ToggleButton.Template>
                                                    <ControlTemplate TargetType="ToggleButton">
                                                        <Border x:Name="Button111" Background="LightGray" CornerRadius="10" Padding="3">
                                                            <Border x:Name="Button222" Background="Black" Width="100" CornerRadius="10" HorizontalAlignment="Left">
                                                                <TextBlock x:Name="TextBlock111" Text="Disabled" HorizontalAlignment="Center" VerticalAlignment="Center" TextAlignment="Center"/>
                                                            </Border>
                                                        </Border>
                                                        <ControlTemplate.Triggers>
                                                            <Trigger Property="IsChecked" Value="True">
                                                                <Setter TargetName="Button222" Property="HorizontalAlignment" Value="Right"/>
                                                                <Setter TargetName="Button111" Property="Background" Value="#04C8F9"/>
                                                                <Setter TargetName="TextBlock111" Property="Text" Value="Enabled"/>
                                                            </Trigger>
                                                        </ControlTemplate.Triggers>
                                                    </ControlTemplate>
                                                </ToggleButton.Template>
                                            </ToggleButton>
                                        </Viewbox>
                                        <!-- Row 1 -->
                                        <StackPanel Orientation="Horizontal" Grid.Row="1" Grid.ColumnSpan="2" HorizontalAlignment="Center" Margin="30,0,30,0">
                                            <!-- LGPO Button -->
                                            <Button x:Name="LGPOZipButton" Width="100" Height="40" FontSize="15" FontWeight="Bold" Background="{StaticResource PinkGradient}" Margin="0,0,0,0" ToolTip="Browse for the path to LGPO zip file">
                                                <Button.Template>
                                                    <ControlTemplate TargetType="Button">
                                                        <Border x:Name="border" BorderThickness="3" Width="{TemplateBinding Width}" Height="{TemplateBinding Height}" Background="{TemplateBinding Background}" CornerRadius="6" BorderBrush="MediumPurple">
                                                            <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
                                                        </Border>
                                                        <ControlTemplate.Triggers>
                                                            <Trigger Property="IsMouseOver" Value="true">
                                                                <Trigger.EnterActions>
                                                                    <BeginStoryboard>
                                                                        <Storyboard>
                                                                            <DoubleAnimation To="115" Storyboard.TargetProperty="Width" Duration="0:0:0.3"/>
                                                                            <DoubleAnimation To="45" Storyboard.TargetProperty="Height" Duration="0:0:0.3"/>
                                                                            <ColorAnimation To="Coral" Storyboard.TargetProperty="Background.(SolidColorBrush.Color)" Duration="0:0:0.3"/>
                                                                        </Storyboard>
                                                                    </BeginStoryboard>
                                                                </Trigger.EnterActions>
                                                                <Trigger.ExitActions>
                                                                    <BeginStoryboard>
                                                                        <Storyboard>
                                                                            <DoubleAnimation To="100" Storyboard.TargetProperty="Width" Duration="0:0:0.3"/>
                                                                            <DoubleAnimation To="40" Storyboard.TargetProperty="Height" Duration="0:0:0.3"/>
                                                                            <ColorAnimation To="White" Storyboard.TargetProperty="Background.(SolidColorBrush.Color)" Duration="0:0:0.3"/>
                                                                        </Storyboard>
                                                                    </BeginStoryboard>
                                                                </Trigger.ExitActions>
                                                            </Trigger>
                                                            <Trigger Property="IsPressed" Value="true">
                                                                <Setter TargetName="border" Property="Background">
                                                                    <Setter.Value>
                                                                        <LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
                                                                            <GradientStop Color="#eaafc8" Offset="0.0"/>
                                                                            <GradientStop Color="#e1eec3" Offset="1.0"/>
                                                                        </LinearGradientBrush>
                                                                    </Setter.Value>
                                                                </Setter>
                                                            </Trigger>
                                                        </ControlTemplate.Triggers>
                                                    </ControlTemplate>
                                                </Button.Template>
                                                <StackPanel Orientation="Horizontal">
                                                    <Image x:Name="PathIcon3" Width="40" Height="30"/>
                                                    <TextBlock Text="LGPO" VerticalAlignment="Center"/>
                                                </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">
                                                <TextBox.Style>
                                                    <Style TargetType="{x:Type TextBox}">
                                                        <Setter Property="VerticalContentAlignment" Value="Center"/>
                                                        <Setter Property="Foreground" Value="Black"/>
                                                        <Setter Property="Effect">
                                                            <Setter.Value>
                                                                <DropShadowEffect ShadowDepth="0" Direction="0" Color="#FFF485F0" Opacity="1" BlurRadius="10" RenderingBias="Quality"/>
                                                            </Setter.Value>
                                                        </Setter>
                                                        <Setter Property="Template">
                                                            <Setter.Value>
                                                                <ControlTemplate TargetType="{x:Type TextBox}">
                                                                    <Grid>
                                                                        <Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}"/>
                                                                        <ScrollViewer x:Name="PART_ContentHost" Margin="5,0"/>
                                                                        <TextBlock x:Name="PART_Watermark" Text="Selected Path will be displayed here..." Foreground="Gray" IsHitTestVisible="False" Margin="5,0" VerticalAlignment="Center" Visibility="Collapsed"/>
                                                                    </Grid>
                                                                    <ControlTemplate.Triggers>
                                                                        <Trigger Property="Text" Value="">
                                                                            <Setter TargetName="PART_Watermark" Property="Visibility" Value="Visible"/>
                                                                        </Trigger>
                                                                        <Trigger Property="Text" Value="{x:Null}">
                                                                            <Setter TargetName="PART_Watermark" Property="Visibility" Value="Visible"/>
                                                                        </Trigger>
                                                                    </ControlTemplate.Triggers>
                                                                </ControlTemplate>
                                                            </Setter.Value>
                                                        </Setter>
                                                    </Style>
                                                </TextBox.Style>
                                            </TextBox>
                                        </StackPanel>
                                        <!-- Row 2 -->
                                        <StackPanel Orientation="Horizontal" Grid.Row="2" Grid.ColumnSpan="2" HorizontalAlignment="Center" Margin="30,0,30,0">
                                            <!-- Microsoft Security Baselines Button -->
                                            <Button x:Name="MicrosoftSecurityBaselineZipButton" Width="270" Height="40" FontSize="15" FontWeight="Bold" Background="{StaticResource PinkGradient}" Margin="0,0,0,0" ToolTip="Browse for the path to Microsoft Security Baseline zip file">
                                                <Button.Template>
                                                    <ControlTemplate TargetType="Button">
                                                        <Border x:Name="border" BorderThickness="3" Width="{TemplateBinding Width}" Height="{TemplateBinding Height}" Background="{TemplateBinding Background}" CornerRadius="6" BorderBrush="MediumPurple">
                                                            <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
                                                        </Border>
                                                        <ControlTemplate.Triggers>
                                                            <Trigger Property="IsMouseOver" Value="true">
                                                                <Trigger.EnterActions>
                                                                    <BeginStoryboard>
                                                                        <Storyboard>
                                                                            <DoubleAnimation To="280" Storyboard.TargetProperty="Width" Duration="0:0:0.3"/>
                                                                            <DoubleAnimation To="45" Storyboard.TargetProperty="Height" Duration="0:0:0.3"/>
                                                                            <ColorAnimation To="Coral" Storyboard.TargetProperty="Background.(SolidColorBrush.Color)" Duration="0:0:0.3"/>
                                                                        </Storyboard>
                                                                    </BeginStoryboard>
                                                                </Trigger.EnterActions>
                                                                <Trigger.ExitActions>
                                                                    <BeginStoryboard>
                                                                        <Storyboard>
                                                                            <DoubleAnimation To="270" Storyboard.TargetProperty="Width" Duration="0:0:0.3"/>
                                                                            <DoubleAnimation To="40" Storyboard.TargetProperty="Height" Duration="0:0:0.3"/>
                                                                            <ColorAnimation To="White" Storyboard.TargetProperty="Background.(SolidColorBrush.Color)" Duration="0:0:0.3"/>
                                                                        </Storyboard>
                                                                    </BeginStoryboard>
                                                                </Trigger.ExitActions>
                                                            </Trigger>
                                                            <Trigger Property="IsPressed" Value="true">
                                                                <Setter TargetName="border" Property="Background">
                                                                    <Setter.Value>
                                                                        <LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
                                                                            <GradientStop Color="#eaafc8" Offset="0.0"/>
                                                                            <GradientStop Color="#e1eec3" Offset="1.0"/>
                                                                        </LinearGradientBrush>
                                                                    </Setter.Value>
                                                                </Setter>
                                                            </Trigger>
                                                        </ControlTemplate.Triggers>
                                                    </ControlTemplate>
                                                </Button.Template>
                                                <StackPanel Orientation="Horizontal">
                                                    <Image x:Name="PathIcon1" Width="40" Height="30"/>
                                                    <TextBlock Text="Microsoft Security Baseline" VerticalAlignment="Center"/>
                                                </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">
                                                <TextBox.Style>
                                                    <Style TargetType="{x:Type TextBox}">
                                                        <Setter Property="Foreground" Value="Black"/>
                                                        <Setter Property="Effect">
                                                            <Setter.Value>
                                                                <DropShadowEffect ShadowDepth="0" Direction="0" Color="#FFF485F0" Opacity="1" BlurRadius="10" RenderingBias="Quality"/>
                                                            </Setter.Value>
                                                        </Setter>
                                                        <Setter Property="Template">
                                                            <Setter.Value>
                                                                <ControlTemplate TargetType="{x:Type TextBox}">
                                                                    <Grid>
                                                                        <Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}"/>
                                                                        <!-- Adjust the ScrollViewer's VerticalAlignment to Center -->
                                                                        <ScrollViewer x:Name="PART_ContentHost" Margin="5,0" VerticalAlignment="Center"/>
                                                                        <TextBlock x:Name="PART_Watermark" Text="Selected Path will be displayed here..." Foreground="Gray" IsHitTestVisible="False" Margin="5,0" VerticalAlignment="Center" Visibility="Collapsed"/>
                                                                    </Grid>
                                                                    <ControlTemplate.Triggers>
                                                                        <Trigger Property="Text" Value="">
                                                                            <Setter TargetName="PART_Watermark" Property="Visibility" Value="Visible"/>
                                                                        </Trigger>
                                                                        <Trigger Property="Text" Value="{x:Null}">
                                                                            <Setter TargetName="PART_Watermark" Property="Visibility" Value="Visible"/>
                                                                        </Trigger>
                                                                    </ControlTemplate.Triggers>
                                                                </ControlTemplate>
                                                            </Setter.Value>
                                                        </Setter>
                                                    </Style>
                                                </TextBox.Style>
                                            </TextBox>
                                        </StackPanel>
                                        <!-- Row 3 -->
                                        <StackPanel Orientation="Horizontal" Grid.Row="3" Grid.ColumnSpan="2" HorizontalAlignment="Center" Margin="30,0,30,0">
                                            <!-- M365 apps security baselines button -->
                                            <Button x:Name="Microsoft365AppsSecurityBaselineZipButton" Width="320" Height="40" FontSize="15" FontWeight="Bold" Background="{StaticResource PinkGradient}" Margin="0,0,0,0" ToolTip="Browse for the path to Microsoft 365 Apps Security Baseline zip file">
                                                <Button.Template>
                                                    <ControlTemplate TargetType="Button">
                                                        <Border x:Name="border" BorderThickness="3" Width="{TemplateBinding Width}" Height="{TemplateBinding Height}" Background="{TemplateBinding Background}" CornerRadius="6" BorderBrush="MediumPurple">
                                                            <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"/>
                                                        </Border>
                                                        <ControlTemplate.Triggers>
                                                            <Trigger Property="IsMouseOver" Value="true">
                                                                <Trigger.EnterActions>
                                                                    <BeginStoryboard>
                                                                        <Storyboard>
                                                                            <DoubleAnimation To="345" Storyboard.TargetProperty="Width" Duration="0:0:0.3"/>
                                                                            <DoubleAnimation To="45" Storyboard.TargetProperty="Height" Duration="0:0:0.3"/>
                                                                            <ColorAnimation To="Coral" Storyboard.TargetProperty="Background.(SolidColorBrush.Color)" Duration="0:0:0.3"/>
                                                                        </Storyboard>
                                                                    </BeginStoryboard>
                                                                </Trigger.EnterActions>
                                                                <Trigger.ExitActions>
                                                                    <BeginStoryboard>
                                                                        <Storyboard>
                                                                            <DoubleAnimation To="320" Storyboard.TargetProperty="Width" Duration="0:0:0.3"/>
                                                                            <DoubleAnimation To="40" Storyboard.TargetProperty="Height" Duration="0:0:0.3"/>
                                                                            <ColorAnimation To="White" Storyboard.TargetProperty="Background.(SolidColorBrush.Color)" Duration="0:0:0.3"/>
                                                                        </Storyboard>
                                                                    </BeginStoryboard>
                                                                </Trigger.ExitActions>
                                                            </Trigger>
                                                            <Trigger Property="IsPressed" Value="true">
                                                                <Setter TargetName="border" Property="Background">
                                                                    <Setter.Value>
                                                                        <LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
                                                                            <GradientStop Color="#eaafc8" Offset="0.0"/>
                                                                            <GradientStop Color="#e1eec3" Offset="1.0"/>
                                                                        </LinearGradientBrush>
                                                                    </Setter.Value>
                                                                </Setter>
                                                            </Trigger>
                                                        </ControlTemplate.Triggers>
                                                    </ControlTemplate>
                                                </Button.Template>
                                                <StackPanel Orientation="Horizontal">
                                                    <Image x:Name="PathIcon2" Width="40" Height="30"/>
                                                    <TextBlock Text="Microsoft 365 Apps Security Baseline" VerticalAlignment="Center"/>
                                                </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">
                                                <TextBox.Style>
                                                    <Style TargetType="{x:Type TextBox}">
                                                        <Setter Property="Foreground" Value="Black"/>
                                                        <Setter Property="Effect">
                                                            <Setter.Value>
                                                                <DropShadowEffect ShadowDepth="0" Direction="0" Color="#FFF485F0" Opacity="1" BlurRadius="10" RenderingBias="Quality"/>
                                                            </Setter.Value>
                                                        </Setter>
                                                        <Setter Property="Template">
                                                            <Setter.Value>
                                                                <ControlTemplate TargetType="{x:Type TextBox}">
                                                                    <Grid>
                                                                        <Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}"/>
                                                                        <!-- Adjust the ScrollViewer's VerticalAlignment to Center -->
                                                                        <ScrollViewer x:Name="PART_ContentHost" Margin="5,0" VerticalAlignment="Center"/>
                                                                        <TextBlock x:Name="PART_Watermark" Text="Selected Path will be displayed here..." Foreground="Gray" IsHitTestVisible="False" Margin="5,0" VerticalAlignment="Center" Visibility="Collapsed"/>
                                                                    </Grid>
                                                                    <ControlTemplate.Triggers>
                                                                        <Trigger Property="Text" Value="">
                                                                            <Setter TargetName="PART_Watermark" Property="Visibility" Value="Visible"/>
                                                                        </Trigger>
                                                                        <Trigger Property="Text" Value="{x:Null}">
                                                                            <Setter TargetName="PART_Watermark" Property="Visibility" Value="Visible"/>
                                                                        </Trigger>
                                                                    </ControlTemplate.Triggers>
                                                                </ControlTemplate>
                                                            </Setter.Value>
                                                        </Setter>
                                                    </Style>
                                                </TextBox.Style>
                                            </TextBox>
                                        </StackPanel>
                                    </Grid>
                                </Setter.Value>
                            </Setter>
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </ContentControl.Style>
        </ContentControl>
        <!-- Grid containing the Execute Button -->
        <Grid x:Name="ExecuteButtonGrid" Grid.Row="3" Grid.ColumnSpan="2" Height="150">
            <!-- First Ellipse (Forward1) - Represents the outermost expanding ellipse when the button is clicked -->
            <!-- Initial height and Width of the Ellipse -->
            <Ellipse x:Name="EclipseForward1"
           Height="50"
           Width="50"
           HorizontalAlignment="Center"
           VerticalAlignment="Center">
                <!-- Ellipse Fill with a gradient from #ED4264 to #cbad6d -->
                <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>
            <!-- Second Ellipse (Forward2) - Another expanding ellipse, but starts later than Forward1 -->
            <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>
            <!-- Third Ellipse (Forward3) - Another expanding ellipse, starts even later -->
            <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>
            <!-- First Ellipse (Backward1) - Represents the outermost contracting ellipse when the button is unchecked -->
            <Ellipse x:Name="EclipseBackward1"
           Height="50"
           Width="50"
           HorizontalAlignment="Center"
           VerticalAlignment="Center">
                <!-- Ellipse Fill with a gradient from #ef32d9 to #89fffd -->
                <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>
            <!-- Second Ellipse (Backward2) - Another contracting ellipse, starts later than Backward1 -->
            <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>
            <!-- Third Ellipse (Backward3) - Another contracting ellipse, starts even later -->
            <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>
            <!-- Execute Toggle Button - The main button in the center -->
            <ToggleButton x:Name="Execute"
                Height="55"
                Width="55"
                HorizontalAlignment="Center"
                VerticalAlignment="Center" >
                <ToggleButton.Template>
                    <ControlTemplate TargetType="ToggleButton">
                        <!-- Border around the button with rounded corners -->
                        <Border x:Name="border"
                      Background="Transparent"
                      CornerRadius="30">
                            <Grid x:Name="ExecuteButtonIconImageGrid">
                                <!-- Button icon image centered inside the button -->
                                <Image x:Name="ExecuteIconImage" Source="icon.png"
                             Stretch="None" HorizontalAlignment="Center" VerticalAlignment="Center" />
                            </Grid>
                        </Border>
                        <!-- Triggers for visual states (hover, checked) -->
                        <ControlTemplate.Triggers>
                            <!-- Mouse hover trigger -->
                            <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>
                            <!-- Button checked 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: Hovering while the button is unchecked -->
                            <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>
                <!-- Triggers for button actions (Checked, Unchecked) -->
                <ToggleButton.Triggers>
                    <!-- When the button is checked (clicked) -->
                    <EventTrigger RoutedEvent="ToggleButton.Checked">
                        <EventTrigger.Actions>
                            <!-- Start the forward expanding animations -->
                            <BeginStoryboard x:Name="Ellipse_Activated">
                                <Storyboard>
                                    <!-- Forward1 Animation (Expanding and fading out) -->
                                    <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" />
                                    <!-- Forward2 Animation (Starts 1 second later) -->
                                    <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" />
                                    <!-- Forward3 Animation (Starts 2 seconds later) -->
                                    <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>
                    <!-- When the button is unchecked -->
                    <EventTrigger RoutedEvent="ToggleButton.Unchecked">
                        <EventTrigger.Actions>
                            <!-- Stop the forward animation -->
                            <RemoveStoryboard BeginStoryboardName="Ellipse_Activated" />
                            <!-- Start the backward contracting animations -->
                            <BeginStoryboard x:Name="Ellipse_Deactivated">
                                <Storyboard>
                                    <!-- Backward1 Animation (Contracting and fading in) -->
                                    <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" />
                                    <!-- Backward2 Animation (Starts 1 second later) -->
                                    <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" />
                                    <!-- Backward3 Animation (Starts 2 seconds later) -->
                                    <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>
    <!--End of the main grid-->
</UserControl>