WorkInProgress/Form.ps1
$inputXML = @"
<Window x:Class="Profile_Removal_Form.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:Profile_Removal_Form" mc:Ignorable="d" Title="MainWindow" Height="450" Width="800" ResizeMode="NoResize" WindowStyle="None" Background="#181735" WindowStartupLocation="CenterScreen"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="25"/> <RowDefinition Height="50"/> <RowDefinition Height="50"/> <RowDefinition Height="50"/> <RowDefinition Height="50"/> <RowDefinition Height="50"/> <RowDefinition Height="50"/> <RowDefinition Height="50"/> <RowDefinition Height="auto"/> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition/> <ColumnDefinition/> </Grid.ColumnDefinitions> <Grid Background="#0F0F2D" Grid.ColumnSpan="2"> <Grid.ColumnDefinitions> <ColumnDefinition Width="auto"/> <ColumnDefinition/> <ColumnDefinition/> <ColumnDefinition/> <ColumnDefinition/> <ColumnDefinition/> <ColumnDefinition/> <ColumnDefinition/> <ColumnDefinition/> <ColumnDefinition/> <ColumnDefinition/> <ColumnDefinition/> <ColumnDefinition/> <ColumnDefinition/> </Grid.ColumnDefinitions> <TextBlock Text="Users Being Removed" Grid.Column="2" Grid.ColumnSpan="5" Grid.RowSpan="3" VerticalAlignment="Center" HorizontalAlignment="Center" Margin="0,0,30,0" FontFamily="Fonts/#Dosis" FontWeight="Medium" FontSize="20" Foreground="White" /> <TextBlock Text="Users To Keep" Margin="15,0,0,0" Foreground="White" Grid.Column="9" Grid.ColumnSpan="3" VerticalAlignment="Center" HorizontalAlignment="Center" FontFamily="Fonts/#Dosis" FontWeight="Medium" FontSize="20" /> </Grid> <ListBox x:Name="ListBoxLeft" Grid.Row="1" Grid.RowSpan="6" Margin="0,20,0,0" Width="300" BorderBrush="Black" Background="#FF040303" SelectionMode="Multiple" Foreground="#FF0BE2F1" FontSize="18" FontFamily="Font/#Dosis" /> <ListBox x:Name="ListBoxRight" Grid.Row="1" Grid.Column="1" Grid.RowSpan="6" Margin="0,20,0,0" Width="300" BorderBrush="Black" Background="#FF040303" Foreground="#FF0BE2F1" FontSize="18" FontFamily="Font/#Dosis"/> <Button x:Name="GetObjectsBtN" Content="Get Profiles" Foreground="White" Grid.Row="2" Background="#FE6584" Margin="360,0,360,20" Grid.ColumnSpan="2" FontWeight="Medium"> <Button.Resources> <Style TargetType="Border"> <Setter Property="CornerRadius" Value="5"/> </Style> </Button.Resources> </Button> <Button x:Name="MoveLeftBtN" Content="<--" FontSize="18" Foreground="White" Grid.Row="4" Background="#FE6584" Margin="360,0,360,20" Grid.ColumnSpan="2" FontWeight="Medium"> <Button.Resources> <Style TargetType="Border"> <Setter Property="CornerRadius" Value="5"/> </Style> </Button.Resources> </Button> <Button x:Name="MoveRightBtN" Content="-->" FontSize="18" Foreground="White" Grid.Row="3" Background="#FE6584" Margin="360,0,360,20" Grid.ColumnSpan="2" FontWeight="Medium"> <Button.Resources> <Style TargetType="Border"> <Setter Property="CornerRadius" Value="5"/> </Style> </Button.Resources> </Button> <Button x:Name="ClearBtN" Content="Clear" Foreground="White" Grid.Row="5" Grid.ColumnSpan="2" Background="#FE6584" Margin="360,0,360,20" FontWeight="Medium"> <Button.Resources> <Style TargetType="Border"> <Setter Property="CornerRadius" Value="5"/> </Style> </Button.Resources> </Button> <Button x:Name="ActionBtN" Content="Submit" Foreground="White" Grid.Row="8" Background="#FE6584" Margin="310,20,10,-22" FontWeight="Medium"> <Button.Resources> <Style TargetType="Border"> <Setter Property="CornerRadius" Value="5"/> </Style> </Button.Resources> </Button> <Button x:Name="CancelBtN" Content="Cancel" Foreground="White" Grid.Row="8" Background="#FE6584" Margin="21,20,299,-22" FontWeight="Medium" Grid.Column="1" IsCancel="True"> <Button.Resources> <Style TargetType="Border"> <Setter Property="CornerRadius" Value="5"/> </Style> </Button.Resources> </Button> </Grid> </Window> "@ #Region "Xaml to Powershell code" Add-Type -AssemblyName PresentationFramework $InputXML = $InputXML -replace 'mc:Ignorable="d"', '' -replace "x:N", 'N' -replace '^<Win.*', '<Window' [void][System.Reflection.Assembly]::LoadWithPartialName('presentationframework') [xml]$XAML = $InputXML #Read XAML $Reader = (New-Object System.Xml.XmlNodeReader $Xaml) $Form = [Windows.Markup.XamlReader]::Load( $Reader ) $Xaml.SelectNodes("//*[@Name]") | % { Set-Variable -Name "WPF$($_.Name)" -Value $Form.FindName($_.Name) } $Form.ShowDialog() |