I often see a lot of unnecessary code in WPF demos in PowerShell, so I want to share the most barebone version that still works correctly.
You don’t need to use New-Object System.Xml.XmlNodeReader $xaml, and you don’t need [Windows.Markup.XamlReader]::Load($reader). Just use Parse.
You also don’t need the x and d namespaces (most of the time) so you can remove them as well.
Just make sure that the $xaml variable has type [string], and you can get a working app in just few lines of code.
Add-Type -AssemblyName PresentationFramework
[String]$xaml = @"
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<Grid>
<Label FontSize="100" Name="Text" />
</Grid>
</Window>
"@
$Window = [Windows.Markup.XamlReader]::Parse($xaml)
$Text = $Window.Content.FindName("Text")
$Text.Content = "👋, from WPF!"
$Window.ShowDialog()