public/controls/status/Hide-UiStatusBar.ps1
|
function Hide-UiStatusBar { <# .SYNOPSIS Collapses a status bar from view without removing it. .DESCRIPTION Sets Visibility to Collapsed so the bar takes no space and disappears. Safe to call from any thread. State is preserved - Show-UiStatusBar restores it. .PARAMETER Variable Optional session variable name. When omitted, the registered status bar is resolved automatically (window bars win over inline ones). .EXAMPLE Hide-UiStatusBar .EXAMPLE Hide-UiStatusBar -Variable 'mainBar' #> [CmdletBinding()] param( [string]$Variable ) $session = Get-UiSession if (!$session) { return } $outcome = Invoke-OnUIThread -ArgumentList $session, $Variable -ScriptBlock { param($session, $Variable) $bar = Resolve-UiStatusBar -Session $session -Variable $Variable if (!$bar) { return 'NoBar' } $bar.Visibility = [System.Windows.Visibility]::Collapsed } if ($outcome -eq 'NoBar') { $hint = if ($Variable) { "no control registered as '$Variable'" } else { "no status bar registered in this session" } Write-Warning "Hide-UiStatusBar: $hint" } } |