我有一个非常基本的Powershell脚本,可以加载xaml布局。它抛出此错误:
我已经遍历了几次脚本和xaml文件,但是我没有看到问题出在哪里,而且我也没有完全理解我得到的错误意味着什么,这也无济于事。任何帮助将非常感激。谢谢你。
Powershell脚本:
Add-Type -AssemblyName presentationframework
$xaml = [xml](Get-Content MainWindow.xaml)
$reader = New-Object System.Xml.XmlNodeReader $xaml
$form = [Windows.Markup.XamlReader]::Load($reader)
$button = $form.FindName('testButton')
$button.Add_Click({
$s = $form.FindName('testBox').Text;
$form.FindName('testLabel').Content = $s;
})
$form.ShowDialog()
XAML文件:
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Name="Window"
Title="MainWindow"
Width="640" Height="480">
<Grid x:Name="LayoutRoot">
<TextBox x:Name="testBox" HorizontalAlignment="Left"
Margin="26.782,48.626,0,0" TextWrapping="Wrap"
Text="New label text" VerticalAlignment="Top" Width="130.22"/>
<Label x:Name="testLabel" Content="User Search" HorizontalAlignment="Left"
Margin="20.666,22.666,0,0" VerticalAlignment="Top"/>
<Button x:Name="testButton" Content="Change It!" HorizontalAlignment="Left"
Margin="26.782,85,0,0" VerticalAlignment="Top" Width="75"/>
</Grid>
</Window>
最佳答案
这个错误就是我所说的“因为我这么说是错误的”,它的意思恰恰是它所说的。
您不能在Powershell.exe中加载XAML,因为它是STA。而“许多”组件则需要这样做。我的很多人,我的意思是WPF。
幸运的是,每个PowerShell主机都支持STA
不过,在PowerShell中有许多更简单的方法来编写UI。您应该 checkout showui.codeplex.com。
希望这可以帮助,
关于wpf - 无法在Powershell中加载XAML,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6541313/