Files

24 lines
959 B
PowerShell

# Menu icons load when a menu is built, not when the module is imported.
#
# ClassExtensions/IntuneCommonUIExtensions.ps1 attaches LoadIconImage/GetImage
# to every policy-type and group singleton at import time (the closures must
# capture the module-bound XAML loader then). It used to call LoadIconImage
# right away too, which parsed 82 icon files through XamlReader before Start.ps1
# had even reached Show-MainWindow - the whole pass ran before the splash
# existed. Show-ViewMenu calls this instead, once the splash is up and the menu
# actually needs the visuals. Each item keeps its own instance: a WPF visual can
# only have one parent.
function Initialize-MenuItemIcons
{
param($Items)
foreach($item in @($Items))
{
if($null -eq $item) { continue }
if($null -ne $item.IconImage) { continue }
if(-not $item.PSObject.Methods['LoadIconImage']) { continue }
try { $item.LoadIconImage() } catch { }
}
}