function Invoke-WPFTab { <# .SYNOPSIS Sets the selected tab to the tab that was clicked .PARAMETER ClickedTab The name of the tab that was clicked #> Param ( [Parameter(Mandatory,position=0)] [string]$ClickedTab ) $tabNav = Get-WinUtilVariables | Where-Object {$psitem -like "WPFTabNav"} $tabNumber = [int]($ClickedTab -replace "WPFTab","" -replace "BT","") - 1 $filter = Get-WinUtilVariables -Type ToggleButton | Where-Object {$psitem -like "WPFTab?BT"} ($sync.GetEnumerator()).where{$psitem.Key -in $filter} | ForEach-Object { if ($ClickedTab -ne $PSItem.name) { $sync[$PSItem.Name].IsChecked = $false } else { $sync["$ClickedTab"].IsChecked = $true $tabNumber = [int]($ClickedTab-replace "WPFTab","" -replace "BT","") - 1 $sync.$tabNav.Items[$tabNumber].IsSelected = $true } } $sync.currentTab = $sync.$tabNav.Items[$tabNumber].Header # Always reset the filter for the current tab if ($sync.currentTab -eq "Install") { # Reset Install tab filter Find-AppsByNameOrDescription -SearchString "" } elseif ($sync.currentTab -eq "Tweaks") { # Reset Tweaks tab filter Find-TweaksByNameOrDescription -SearchString "" } # Show search bar in Install and Tweaks tabs if ($tabNumber -eq 0 -or $tabNumber -eq 1) { $sync.SearchBar.Visibility = "Visible" $searchIcon = ($sync.Form.FindName("SearchBar").Parent.Children | Where-Object { $_ -is [System.Windows.Controls.TextBlock] -and $_.Text -eq [char]0xE721 })[0] if ($searchIcon) { $searchIcon.Visibility = "Visible" } } else { $sync.SearchBar.Visibility = "Collapsed" $searchIcon = ($sync.Form.FindName("SearchBar").Parent.Children | Where-Object { $_ -is [System.Windows.Controls.TextBlock] -and $_.Text -eq [char]0xE721 })[0] if ($searchIcon) { $searchIcon.Visibility = "Collapsed" } # Hide the clear button if it's visible $sync.SearchBarClearButton.Visibility = "Collapsed" } }