View difference between Paste ID: exGvTAVa and UQgWr41K
SHOW: | | - or go back to the newest paste.
1
#ERASE ALL THIS AND PUT XAML BELOW between the @" "@
2
$inputXML = @"
3
<Window x:Class="UserCreation.MainWindow"
4
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
5
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
6
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
7
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
8
        xmlns:local="clr-namespace:UserCreation"
9
        mc:Ignorable="d"
10
        Title="User Creation Tool" Height="445" Width="320">
11
    <Grid Margin="0,0,2,0">
12
        <TextBlock x:Name="textBlockTitle" HorizontalAlignment="Left" Height="20" Margin="10,10,0,0" TextWrapping="Wrap" Text="Use this tool to create new users!" VerticalAlignment="Top" Width="290" FontSize="16" TextAlignment="Center"/>
13
        <Button x:Name="buttonCreate" Content="Create!" HorizontalAlignment="Left" Height="35" Margin="125,350,0,0" VerticalAlignment="Top" Width="75" FontSize="16"/>
14
        <TextBox x:Name="textBoxLocationCode" HorizontalAlignment="Left" Height="25" Margin="125,90,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="150"/>
15
        <TextBox x:Name="textBoxFirstName" HorizontalAlignment="Left" Height="25" Margin="125,135,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="150"/>
16
        <TextBox x:Name="textBoxLastName" HorizontalAlignment="Left" Height="25" Margin="125,180,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="150"/>
17
        <TextBox x:Name="textBoxJobTitle" HorizontalAlignment="Left" Height="25" Margin="125,225,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="150"/>
18
        <TextBlock x:Name="textBlockLocationCode" HorizontalAlignment="Left" Height="25" Margin="25,90,0,0" TextWrapping="Wrap" Text="Location Code:" VerticalAlignment="Top"/>
19
        <TextBlock x:Name="textBlockFirstName" HorizontalAlignment="Left" Height="25" Margin="25,135,0,0" TextWrapping="Wrap" Text="First Name:" VerticalAlignment="Top"/>
20
        <TextBlock x:Name="textBlockLastName" HorizontalAlignment="Left" Height="25" Margin="25,180,0,0" TextWrapping="Wrap" Text="Last Name:" VerticalAlignment="Top"/>
21
        <TextBlock x:Name="textBlockJobTitle" HorizontalAlignment="Left" Height="25" Margin="25,225,0,0" TextWrapping="Wrap" Text="Job Title:" VerticalAlignment="Top"/>
22
        <Button x:Name="buttonVerify" Content="All Info Correct!" HorizontalAlignment="Left" Margin="112,295,0,0" VerticalAlignment="Top" Width="100" Height="25"/>
23
24
    </Grid>
25
</Window>
26
"@       
27
 
28
$inputXML = $inputXML -replace 'mc:Ignorable="d"','' -replace "x:N",'N'  -replace '^<Win.*', '<Window'
29
 
30
[void][System.Reflection.Assembly]::LoadWithPartialName('presentationframework')
31
[xml]$XAML = $inputXML
32
#Read XAML
33
 
34
    $reader=(New-Object System.Xml.XmlNodeReader $XAML)
35
  try{$Form=[Windows.Markup.XamlReader]::Load( $reader )}
36
catch{Write-Host "Unable to load Windows.Markup.XamlReader. Double-check syntax and ensure .net is installed."}
37
 
38
#===========================================================================
39
# Load XAML Objects In PowerShell
40
#===========================================================================
41
 
42
$XAML.SelectNodes("//*[@Name]") | %{Set-Variable -Name "WPF$($_.Name)" -Value $Form.FindName($_.Name)}
43
 
44
Function Get-FormVariables{
45
if ($global:ReadmeDisplay -ne $true){Write-Host "If you need to reference this display again, run Get-FormVariables" -ForegroundColor Yellow;$global:ReadmeDisplay=$true}
46
Write-Host "Found the following interactable elements from our form" -ForegroundColor Cyan
47
Get-Variable WPF*
48
}
49
 
50
Get-FormVariables
51
 
52
#===========================================================================
53
# Actually make the objects work
54
#===========================================================================
55
56
$WPFbuttonVerify.Add_Click(
57
    {
58
        If ($WPFbuttonCreate.Visibility -ne 'Visible'){$WPFbuttonCreate.Visibility = 'Visible'}
59
        Else {$WPFbuttonCreate.Visibility = 'Hidden'}
60
    }
61
)
62
63
$WPFbuttonCreate.Visibility = 'Hidden'
64
65
#Test Variables
66
#$LocationCode = "100"
67
#$FirstName = "Test"
68
#$LastName = "User"
69
#$JobTitle = "Manager"
70
71
$WPFbuttonCreate.Add_Click({
72
        Write-Host $LocationCode
73
    })
74-
$JobTitle = $WPFtextBoxJobTitle.Text
74+
75
#Sample entry of how to add data to a field
76
77
#$vmpicklistView.items.Add([pscustomobject]@{'VMName'=($_).Name;Status=$_.Status;Other="Yes"})
78
79
#===========================================================================
80
# Shows the form
81
#===========================================================================
82
83
Function Show-Form{
84
$Form.ShowDialog() | out-null
85
}
86
87
Show-Form
88
89
90
$LocationCode = $WPFtextBoxLocationCode.Text
91
$FirstName = $WPFtextBoxFirstName.Text
92-
Show-Form
92+
93
$JobTitle = $WPFtextBoxJobTitle.Text