SHOW:
|
|
- or go back to the newest paste.
1 | #ERASE ALL THIS AND PUT XAML BELOW between the @" "@ | |
2 | $inputXML = @" | |
3 | ||
4 | - | <Window x:Class="stgmenu.MainWindow" |
4 | + | <Window |
5 | xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" | |
6 | xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" | |
7 | xmlns:d="http://schemas.microsoft.com/expression/blend/2008" | |
8 | xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" | |
9 | xmlns:local="clr-namespace:stgmenu" | |
10 | mc:Ignorable="d" | |
11 | Title="MainWindow" Height="665.799" Width="799.492"> | |
12 | <Grid> | |
13 | <TextBlock x:Name="textBlock" HorizontalAlignment="Left" Margin="14,9,0,0" TextWrapping="Wrap" VerticalAlignment="Top"><Run Text="Server"/><LineBreak/><Run/></TextBlock> | |
14 | <TextBox x:Name="textBox" HorizontalAlignment="Left" Height="23" Margin="13,31,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="120"/> | |
15 | <ListView x:Name="listView" HorizontalAlignment="Left" Height="600" Margin="372,14,0,0" VerticalAlignment="Top" Width="410"> | |
16 | <ListView.View> | |
17 | <GridView> | |
18 | <GridViewColumn/> | |
19 | </GridView> | |
20 | </ListView.View> | |
21 | </ListView> | |
22 | <Button x:Name="button" Content="keepalive" HorizontalAlignment="Left" Margin="20,82,0,0" VerticalAlignment="Top" Width="75" RenderTransformOrigin="0.42,0.162"/> | |
23 | ||
24 | </Grid> | |
25 | </Window> | |
26 | ||
27 | ||
28 | "@ | |
29 | ||
30 | $inputXML = $inputXML -replace 'mc:Ignorable="d"','' -replace "x:N",'N' -replace '^<Win.*', '<Window' | |
31 | ||
32 | ||
33 | [void][System.Reflection.Assembly]::LoadWithPartialName('presentationframework') | |
34 | [xml]$XAML = $inputXML | |
35 | #Read XAML | |
36 | ||
37 | - | $reader=(New-Object System.Xml.XmlNodeReader $xaml) |
37 | + | $reader=(New-Object System.Xml.XmlNodeReader $xaml) |
38 | - | try{$Form=[Windows.Markup.XamlReader]::Load( $reader )} |
38 | + | try{$Form=[Windows.Markup.XamlReader]::Load( $reader )} |
39 | - | catch{Write-Host "Unable to load Windows.Markup.XamlReader. Double-check syntax and ensure .net is installed."} |
39 | + | catch{return $Error[0]} |
40 | #=========================================================================== | |
41 | # Load XAML Objects In PowerShell | |
42 | #=========================================================================== | |
43 | ||
44 | $xaml.SelectNodes("//*[@Name]") | %{Set-Variable -Name "WPF$($_.Name)" -Value $Form.FindName($_.Name)} | |
45 | ||
46 | Function Get-FormVariables{ | |
47 | if ($global:ReadmeDisplay -ne $true){Write-host "If you need to reference this display again, run Get-FormVariables" -ForegroundColor Yellow;$global:ReadmeDisplay=$true} | |
48 | write-host "Found the following interactable elements from our form" -ForegroundColor Cyan | |
49 | get-variable WPF* | |
50 | } | |
51 | ||
52 | Get-FormVariables | |
53 | ||
54 | #=========================================================================== | |
55 | # Actually make the objects work | |
56 | #=========================================================================== | |
57 | ||
58 | ||
59 | #Sample entry of how to add data to a field | |
60 | ||
61 | #$vmpicklistView.items.Add([pscustomobject]@{'VMName'=($_).Name;Status=$_.Status;Other="Yes"}) | |
62 | ||
63 | #=========================================================================== | |
64 | # Shows the form | |
65 | #=========================================================================== | |
66 | write-host "To show the form, run the following" -ForegroundColor Cyan | |
67 | $Form.ShowDialog() | out-null |