0
スクリプトはPowershell V2.0 ISEで動作しますが、Powershellスクリプトでは実行されません。どうしてこれなの?ここで変数をnullにすることはできないと私は理解していますが、XAMLからこれらの変数を読み、ボタンのクリックは機能します。私は次のエラーを取得する:変数としてXAML要素が見つかりません - Powershell 2.0
You cannot call a method on a null-valued expression,
At C:\Program Files (x86)\Novertz\Main Script\Novertz.ps1 char:7
+ $FEL_CP6K01_button.add.click <<<< <<
+Category Info :InvalidOperation
私は次のようにXAMLをお読みください。
[CmdletBinding()]
Param(
[Parameter(Mandatory=$True,Position=1)]
[string]$XamlPath
)
[xml]$Global:xmlWPF = Get-Content -Path $XamlPath
#Add WPF and Windows Forms assemblies
try{
Add-Type -AssemblyName PresentationCore,PresentationFramework,WindowsBase,system.windows.forms
} catch {
Throw "Failed to load Windows Presentation Framework assemblies."
}
#Create the XAML reader using a new XML node reader
$Global:xamGUI = [Windows.Markup.XamlReader]::Load((new-object System.Xml.XmlNodeReader $xmlWPF))
#Create hooks to each named object in the XAML
$xmlWPF.SelectNodes("//*[@Name]") | %{
Set-Variable -Name ($_.Name) -Value $xamGUI.FindName($_.Name) -Scope Global
}
そして、PowerShellスクリプト:
#Required to load the XAML form and create the PowerShell Variables
cd "C:\Users\Leeds TX 12\Desktop\Novertz\GUI"
./LoadDialog.ps1 -XamlPath 'C:\Users\Leeds TX 12\Desktop\Novertz\GUI\myform.xaml'
$FEL_CP6K01_button.add_Click({#powershell script#})
$xamGUI.ShowDialog() | out-null
XAML:
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="No-Vertz" Height="1080" Width="1920">
<Grid Margin="0,0,-233,-101"> <Grid.Effect> <DropShadowEffect/> </Grid.Effect>
<Button Name="FEL_CP6K01_button" Content="FEL_CP6K_CH01" HorizontalAlignment="Left" Margin="23,69,0,0" VerticalAlignment="Top" Width="99" Height="59"/>