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
You also don’t need the
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()