SHOW:
|
|
- or go back to the newest paste.
1 | - | #ERASE ALL THIS AND PUT XAML BELOW between the @" "@ |
1 | + | #ERASE ALL THIS AND PUT XAML BELOW between the @" "@ |
2 | $inputXML = @" | |
3 | - | <Window x:Class="WpfApp1.MainWindow" |
3 | + | <Window x:Class="WpfApplication2.MainWindow" |
4 | - | xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" |
4 | + | xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" |
5 | - | xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
5 | + | xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
6 | - | xmlns:d="http://schemas.microsoft.com/expression/blend/2008" |
6 | + | xmlns:d="http://schemas.microsoft.com/expression/blend/2008" |
7 | - | xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" |
7 | + | xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" |
8 | - | xmlns:local="clr-namespace:WpfApp1;assembly=WpfApp1Assembly" |
8 | + | xmlns:local="clr-namespace:WpfApplication2" |
9 | - | mc:Ignorable="d" |
9 | + | mc:Ignorable="d" |
10 | - | Title="HG Folder & Permission Deployment" Height="350" Width="525"> |
10 | + | Title="HG Folder Permission Deployment" Height="350" Width="525"> |
11 | - | <Grid RenderTransformOrigin="0.511,0.507" Background="{x:Null}"> |
11 | + | <Grid> |
12 | <Image HorizontalAlignment="Left" Height="100" Margin="10,10,0,0" Name="Image" VerticalAlignment="Top" Width="70" Source="C:\Users\jfitzgerald\Pictures\img1.jpg"/> | |
13 | <TextBlock HorizontalAlignment="Left" Margin="115,10,0,0" Name="TextBlock" TextWrapping="Wrap" Text="This useful tool is a front end for a powerful PowerShell script that will allow you to deploy a propertie's folder and subfolders, with the proper permissions, in the Review drive." VerticalAlignment="Top" Height="97" Width="392"/> | |
14 | <Button Content="OK" HorizontalAlignment="Left" Name="Button" Margin="432,289,0,0" VerticalAlignment="Top" Width="75"/> | |
15 | <Label Content="Username
" Name="Label" HorizontalAlignment="Left" Margin="81,172,0,0" VerticalAlignment="Top" RenderTransformOrigin="0.5,0.5" Width="63" Height="26"/> | |
16 | <TextBox HorizontalAlignment="Left" Name="TextBox" Height="23" Margin="158,175,0,0" TextWrapping="Wrap" Text="Enter Your Username" VerticalAlignment="Top" Width="120" RenderTransformOrigin="0.499,0.456"/> | |
17 | ||
18 | </Grid> | |
19 | </Window> | |
20 | - | "@ |
20 | + | |
21 | "@ | |
22 | ||
23 | $inputXML = $inputXML -replace 'mc:Ignorable="d"','' -replace "x:N",'N' -replace '^<Win.*', '<Window' | |
24 | [void][System.Reflection.Assembly]::LoadWithPartialName('presentationframework') | |
25 | [xml]$XAML = $inputXML | |
26 | #Read XAML | |
27 | ||
28 | $reader=(New-Object System.Xml.XmlNodeReader $xaml) | |
29 | try{$Form=[Windows.Markup.XamlReader]::Load( $reader )} | |
30 | catch{Write-Warning "Unable to parse XML, with error: $($Error[0])`n Ensure that there are NO SelectionChanged properties (PowerShell cannot process them)" | |
31 | throw} | |
32 | ||
33 | #=========================================================================== | |
34 | # Load XAML Objects In PowerShell | |
35 | #=========================================================================== | |
36 | ||
37 | $xaml.SelectNodes("//*[@Name]") | %{"trying item $($_.Name)"; | |
38 | try {Set-Variable -Name "WPF$($_.Name)" -Value $Form.FindName($_.Name) -ErrorAction Stop} | |
39 | catch{throw} | |
40 | } | |
41 | ||
42 | Function Get-FormVariables{ | |
43 | if ($global:ReadmeDisplay -ne $true){Write-host "If you need to reference this display again, run Get-FormVariables" -ForegroundColor Yellow;$global:ReadmeDisplay=$true} | |
44 | write-host "Found the following interactable elements from our form" -ForegroundColor Cyan | |
45 | get-variable WPF* | |
46 | } | |
47 | ||
48 | Get-FormVariables | |
49 | ||
50 | #=========================================================================== | |
51 | # Use this space to add code to the various form elements in your GUI | |
52 | - | # Actually make the objects work |
52 | + | #=========================================================================== |
53 | ||
54 | ||
55 | - | #Sample entry of how to add data to a field |
55 | + | #Reference |
56 | ||
57 | - | #$vmpicklistView.items.Add([pscustomobject]@{'VMName'=($_).Name;Status=$_.Status;Other="Yes"}) |
57 | + | #Adding items to a dropdown/combo box |
58 | #$vmpicklistView.items.Add([pscustomobject]@{'VMName'=($_).Name;Status=$_.Status;Other="Yes"}) | |
59 | ||
60 | - | # Shows the form |
60 | + | #Setting the text of a text box to the current PC name |
61 | #$WPFtextBox.Text = $env:COMPUTERNAME | |
62 | ||
63 | - | '$Form.ShowDialog() | out-null' |
63 | + | #Adding code to a button, so that when clicked, it pings a system |
64 | - | WARNING: Unable to parse XML, with error: Exception calling "Load" with "1" argument(s): "Cannot create unknown type '{http://schemas.microsoft.com/winfx/2006/xaml/presentation}Null'." |
64 | + | # $WPFbutton.Add_Click({ Test-connection -count 1 -ComputerName $WPFtextBox.Text |
65 | - | Ensure that there are NO SelectionChanged properties (PowerShell cannot process them) |
65 | + | # }) |
66 | - | Exception calling "Load" with "1" argument(s): "Cannot create unknown type '{http://schemas.microsoft.com/winfx/2006/xaml/presentation}Null'." |
66 | + | #=========================================================================== |
67 | - | At line:30 char:5 |
67 | + | # Shows the form |
68 | - | + try{$Form=[Windows.Markup.XamlReader]::Load( $reader )} |
68 | + | #=========================================================================== |
69 | - | + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
69 | + | |
70 | - | + CategoryInfo : NotSpecified: (:) [], ParentContainsErrorRecordException |
70 | + | $Form.ShowDialog() | out-null |