Resources/XAML/Exclusions.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}">
    <Grid x:Name="ParentGrid">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
            <RowDefinition Height="*" />
            <RowDefinition Height="Auto" />
        </Grid.RowDefinitions>
        <StackPanel Orientation="Vertical" Grid.Row="0" Margin="0,30,0,20" HorizontalAlignment="Center" VerticalAlignment="Center">
            <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0,0,0,20">
                <TextBlock x:Name="MicrosoftDefender" Text="Microsoft Defender"
               FontSize="15" FontWeight="SemiBold" Foreground="#121518"
               HorizontalAlignment="Left" VerticalAlignment="Center" Margin="0,0,10,0" />
                <ToggleButton x:Name="MicrosoftDefenderToggleButton" VerticalAlignment="Center"
                HorizontalAlignment="Right"
                Width="75" Height="27.5"
                Template="{DynamicResource ConfirmationPageToggleButtonStyle}"/>
            </StackPanel>
            <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0,0,0,20">
                <TextBlock x:Name="ControlledFolderAccess" Text="Controlled Folder Access"
    FontSize="15" FontWeight="SemiBold" Foreground="#121518"
    HorizontalAlignment="Left" VerticalAlignment="Center" Margin="0,0,10,0" />
                <ToggleButton x:Name="ControlledFolderAccessToggleButton" VerticalAlignment="Center"
     HorizontalAlignment="Right"
     Width="75" Height="27.5"
     Template="{DynamicResource ConfirmationPageToggleButtonStyle}"/>
            </StackPanel>
            <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0,0,0,20">
                <TextBlock x:Name="AttackSurfaceReductionRules" Text="Attack Surface Reduction Rules"
    FontSize="15" FontWeight="SemiBold" Foreground="#121518"
    HorizontalAlignment="Left" VerticalAlignment="Center" Margin="0,0,10,0" />
                <ToggleButton x:Name="AttackSurfaceReductionRulesToggleButton" VerticalAlignment="Center"
     HorizontalAlignment="Right"
     Width="75" Height="27.5"
     Template="{DynamicResource ConfirmationPageToggleButtonStyle}"/>
            </StackPanel>
        </StackPanel>
        <Button x:Name="BrowseForFilesButton" Grid.Row="1" Style="{StaticResource CustomButtonStyle2}" ToolTip="Browse for files to exclude" Margin="0,0,0,20">
            <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
                <Image x:Name="BrowseButtonIcon" Width="40" Height="30"/>
                <TextBlock Text="Browse For Files" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="0,0,8,0"/>
            </StackPanel>
        </Button>
        <TextBox x:Name="SelectedFilePaths" Grid.Row="2" HorizontalAlignment="Stretch"
         VerticalAlignment="Stretch" Margin="30,0,30,0"
         BorderThickness="0"
         IsReadOnly="True"
         TextWrapping="Wrap"
         ScrollViewer.HorizontalScrollBarVisibility="Auto"
         ScrollViewer.VerticalScrollBarVisibility="Auto" Cursor="Arrow"
        VerticalContentAlignment="Top" HorizontalContentAlignment="Left" Background="Transparent">
            <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>
                            <!-- Reduce opacity to further indicate that the TextBox is disabled -->
                            <Setter Property="Opacity" Value="0.7"/>
                        </Trigger>
                    </Style.Triggers>
                </Style>
            </TextBox.Style>
        </TextBox>
        <!-- Grid containing the Execute Button -->
        <Grid x:Name="ExecuteButtonGrid" Height="150" Grid.Row="3" Margin="0,0,0,0">
            <!-- 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>
            <!-- Refresh Toggle Button - The main button in the center -->
            <ToggleButton x:Name="ExecuteButton"
     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="RefreshButtonIconImageGrid">
                                <!-- Button icon image centered inside the button -->
                                <Image x:Name="RefreshIconImage" 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 Refresh Button Grid-->
    </Grid>
</UserControl>