Resources/XAML/OptionalFeatures.xaml

<UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" FontSize="16">
    <Grid x:Name="ParentGrid">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="3*" />
            <RowDefinition Height="Auto" />
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*" />
            <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>
 
        <TextBlock Grid.Row="0" Grid.ColumnSpan="2" Text="Use this page to remove optional Windows features, capabilities, and pre-installed apps. Click the 'Retrieve' buttons to update the lists based on the system's current status. The 'Retrieve Optional Features Status' button refreshes the status of features on the system, graying out those that do not require any changes."
            FontSize="14"
       Margin="20,10,20,15"
       FontWeight="Normal"
       VerticalAlignment="Center"
       HorizontalAlignment="Center" TextWrapping="Wrap"/>
 
        <Grid Grid.Row="1" Margin="10" Grid.Column="0" Grid.ColumnSpan="1">
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="*"/>
            </Grid.RowDefinitions>
 
            <TextBlock Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="1" Margin="0,0,0,15" HorizontalAlignment="Center" VerticalAlignment="bottom" Text="Optional Features" FontSize="18" FontWeight="SemiBold" Foreground="{DynamicResource {x:Static SystemColors.AccentColorBrushKey}}"/>
 
            <CheckBox Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="1" Content="Select All" VerticalContentAlignment="Center" Margin="7,0,0,2" Padding="10,10,40,10" x:Name="SelectAllOptionalFeatures"/>
            <!-- ListViews for Optional Features -->
            <ListView x:Name="OptionalFeatures" BorderThickness="0" ToolTip="Select the optional features to add and remove" Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="1" VirtualizingPanel.ScrollUnit="Pixel" ScrollViewer.PanningMode="Both">
                <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="Remove PowerShell v2">
                    <CheckBox x:Name="RemovePowerShellV2" Content="Remove PowerShell v2" VerticalContentAlignment="Center" Padding="10,10,40,10" />
                </ListViewItem>
                <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="Remove Work Folders">
                    <CheckBox x:Name="RemoveWorkFolders" Content="Remove Work Folders" VerticalContentAlignment="Center" Padding="10,10,40,10"/>
                </ListViewItem>
                <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="Remove Internet Printing Client">
                    <CheckBox x:Name="RemoveInternetPrintingClient" Content="Remove Internet Printing Client" VerticalContentAlignment="Center" Padding="10,10,40,10"/>
                </ListViewItem>
                <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="Remove Legacy Windows Media Player">
                    <CheckBox x:Name="RemoveLegacyWindowsMediaPlayer" Content="Remove Legacy Windows Media Player" VerticalContentAlignment="Center" Padding="10,10,40,10"/>
                </ListViewItem>
                <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="Remove Microsoft Defender Application Guard">
                    <CheckBox x:Name="RemoveMicrosoftDefenderApplicationGuard" Content="Remove Microsoft Defender Application Guard" VerticalContentAlignment="Center" Padding="10,10,40,10"/>
                </ListViewItem>
                <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="Remove Legacy Notepad">
                    <CheckBox x:Name="RemoveLegacyNotepad" Content="Remove Legacy Notepad" VerticalContentAlignment="Center" Padding="10,10,40,10"/>
                </ListViewItem>
                <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="Remove VBSCRIPT">
                    <CheckBox x:Name="RemoveVBSCRIPT" Content="Remove VBSCRIPT" VerticalContentAlignment="Center" Padding="10,10,40,10"/>
                </ListViewItem>
                <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="Remove Internet Explorer Mode For Edge">
                    <CheckBox x:Name="RemoveInternetExplorerModeForEdge" Content="Remove Internet Explorer Mode For Edge" VerticalContentAlignment="Center" Padding="10,10,40,10"/>
                </ListViewItem>
                <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="Remove WMIC, unsafe and deprecated">
                    <CheckBox x:Name="RemoveWMIC" Content="Remove WMIC" VerticalContentAlignment="Center" Padding="10,10,40,10"/>
                </ListViewItem>
                <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="Remove WordPad, it's deprecated">
                    <CheckBox x:Name="RemoveWordPad" Content="Remove WordPad" VerticalContentAlignment="Center" Padding="10,10,40,10"/>
                </ListViewItem>
                <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="Remove PowerShell ISE">
                    <CheckBox x:Name="RemovePowerShellISE" Content="Remove PowerShell ISE" VerticalContentAlignment="Center" Padding="10,10,40,10"/>
                </ListViewItem>
                <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="Remove Steps Recorder">
                    <CheckBox x:Name="RemoveStepsRecorder" Content="Remove Steps Recorder" VerticalContentAlignment="Center" Padding="10,10,40,10"/>
                </ListViewItem>
                <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="Remove Math Recognizer if you don't need it">
                    <CheckBox x:Name="RemoveMathRecognizer" Content="Remove Math Recognizer" VerticalContentAlignment="Center" Padding="10,10,40,10"/>
                </ListViewItem>
                <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="Remove Print Management if you don't use printers">
                    <CheckBox x:Name="RemovePrintManagement" Content="Remove Print Management" VerticalContentAlignment="Center" Padding="10,10,40,10"/>
                </ListViewItem>
                <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="Remove OpenSSH Client if you don't use SSH">
                    <CheckBox x:Name="RemoveOpenSSHClient" Content="Remove OpenSSH Client" VerticalContentAlignment="Center" Padding="10,10,40,10"/>
                </ListViewItem>
                <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="Remove Facial Recognition if your device doesn't have a webcam and you do not use Windows Hello facial recognition for login">
                    <CheckBox x:Name="RemoveFacialRecognition" Content="Remove Facial Recognition" VerticalContentAlignment="Center" Padding="10,10,40,10"/>
                </ListViewItem>
                <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="Remove Extended Theme Content">
                    <CheckBox x:Name="RemoveExtendedThemeContent" Content="Remove Extended Theme Content" VerticalContentAlignment="Center" Padding="10,10,40,10"/>
                </ListViewItem>
                <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="Enable Windows Sandbox - Great feature for testing unsafe software or temporarily installing a program">
                    <CheckBox x:Name="EnableWindowsSandbox" Content="Enable Windows Sandbox" VerticalContentAlignment="Center" Padding="10,10,40,10"/>
                </ListViewItem>
                <ListViewItem ToolTipService.InitialShowDelay="1000" ToolTip="Enable Hyper-V">
                    <CheckBox x:Name="EnableHyperV" Content="Enable Hyper-V" VerticalContentAlignment="Center" Padding="10,10,40,10"/>
                </ListViewItem>
            </ListView>
        </Grid>
 
        <StackPanel Orientation="Vertical" Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="1" Margin="0,15,0,0" HorizontalAlignment="Center">
 
            <Button HorizontalAlignment="Center" x:Name="RetrieveOptionalFeaturesStatus" Margin="0,0,0,10" ToolTipService.InitialShowDelay="1000" ToolTip="Using this button will retrieve the latest status of the optional features displayed in this page">
                <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
                    <TextBlock FontFamily="{DynamicResource SymbolThemeFontFamily}" VerticalAlignment="Center" FontSize="20" Text="&#xE72C;"/>
                    <TextBlock Text="Retrieve Optional Features Status" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="8,0,8,0" FontWeight="SemiBold"/>
                </StackPanel>
            </Button>
 
            <Button HorizontalAlignment="Center" x:Name="ApplyOptionalFeaturesButton" ToolTipService.InitialShowDelay="1000" ToolTip="Apply the selected optional features">
                <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
                    <TextBlock FontFamily="{DynamicResource SymbolThemeFontFamily}" VerticalAlignment="Center" FontSize="20" Text="&#xE945;"/>
                    <TextBlock Text="Apply Optional Features" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="8,0,8,0" FontWeight="SemiBold"/>
                </StackPanel>
            </Button>
 
        </StackPanel>
 
        <Grid Grid.Row="1" Margin="10" Grid.Column="1" Grid.ColumnSpan="1">
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="*"/>
            </Grid.RowDefinitions>
 
            <TextBlock Grid.Row="0" Grid.Column="1" Grid.ColumnSpan="1" Margin="0,0,0,15" HorizontalAlignment="Center" VerticalAlignment="bottom" Text="Installed Apps" FontSize="18" FontWeight="SemiBold" Foreground="{DynamicResource {x:Static SystemColors.AccentColorBrushKey}}"/>
 
            <CheckBox Grid.Row="1" Grid.Column="1" Grid.ColumnSpan="1" Content="Select All" VerticalContentAlignment="Center" Margin="7,0,0,2" Padding="10,10,40,10" x:Name="SelectAllApps"/>
            <!-- ListViews for Optional Features -->
            <ListView x:Name="Apps" BorderThickness="0" ToolTip="Select the optional features to add and remove" Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="1" VirtualizingPanel.ScrollUnit="Pixel" ScrollViewer.PanningMode="Both"/>
 
        </Grid>
 
        <StackPanel Orientation="Vertical" Grid.Row="2" Grid.Column="1" Grid.ColumnSpan="1" Margin="0,15,0,0" HorizontalAlignment="Center">
 
            <Button HorizontalAlignment="Center" x:Name="RetrieveRemovableApps" Margin="0,0,0,10" ToolTipService.InitialShowDelay="1000" ToolTip="Using this button will retrieve the latest list of the removable apps on the system">
                <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
                    <TextBlock FontFamily="{DynamicResource SymbolThemeFontFamily}" VerticalAlignment="Center" FontSize="20" Text="&#xE72C;"/>
                    <TextBlock Text="Retrieve Removable Apps" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="8,0,8,0" FontWeight="SemiBold"/>
                </StackPanel>
            </Button>
 
            <Button HorizontalAlignment="Center" x:Name="RemoveApps" ToolTipService.InitialShowDelay="1000" ToolTip="Remove the selected apps from the system for all users">
                <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
                    <TextBlock FontFamily="{DynamicResource SymbolThemeFontFamily}" VerticalAlignment="Center" FontSize="20" Text="&#xECC9;"/>
                    <TextBlock Text="Remove Apps For All Users" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="8,0,8,0" FontWeight="SemiBold"/>
                </StackPanel>
            </Button>
 
        </StackPanel>
 
        <StackPanel Grid.Row="3" Grid.ColumnSpan="2" Orientation="Horizontal" Margin="0,30,0,20" HorizontalAlignment="Center"
                    ToolTipService.ToolTip="Windows has certain pre-installed network adapter drivers by default. You can remove them if you do not need them or you install your own drivers. This can save disk space.">
 
            <Label Content="Built-in Network Adapter Drivers Removal" VerticalAlignment="Center" Margin="0,0,10,0"/>
            <ComboBox x:Name="NetworkAdaptersCompanyListComboBox" VerticalAlignment="Center"
                Width="130" Margin="10,0,10,0"
                SelectedIndex="0">
                <ComboBoxItem Content="Intel" />
                <ComboBoxItem Content="Broadcom" />
                <ComboBoxItem Content="Marvel" />
                <ComboBoxItem Content="Qualcomm" />
                <ComboBoxItem Content="Ralink" />
                <ComboBoxItem Content="Realtek" />
            </ComboBox>
 
            <Button x:Name="RemoveNetworkAdapters" VerticalAlignment="Center" ToolTipService.InitialShowDelay="1000" ToolTip="Remove all pre-installed network adapters that belong to the selected company">
                <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
                    <TextBlock FontFamily="{DynamicResource SymbolThemeFontFamily}" VerticalAlignment="Center" FontSize="20" Text="&#xECC9;"/>
                    <TextBlock Text="Remove" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="8,0,8,0" FontWeight="SemiBold"/>
                </StackPanel>
            </Button>
 
        </StackPanel>
 
    </Grid>
</UserControl>