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 |