我有一个更大的PowerShell脚本,它将XAML代码导入其中。这是代码的一部分:
XAML
<Menu x:Name="menu" DockPanel.Dock="Top">
<MenuItem x:Name="menuFile" Header="File">
<MenuItem x:Name="menuFile_History" Header="_History"/>
<MenuItem x:Name="menuFile_Recent" Header="_Recent">
<MenuItem x:Name="menuFile_Recent1"/>
<MenuItem x:Name="menuFile_Recent2"/>
<MenuItem x:Name="menuFile_Recent3"/>
<MenuItem x:Name="menuFile_Recent4"/>
<MenuItem x:Name="menuFile_Recent5"/>
</MenuItem>
<MenuItem x:Name="menuFile_ShowMore" Header="_Show More"/>
<MenuItem x:Name="menuFile_FlushDNS" Header="_Flush DNS"/>
<MenuItem x:Name="menuFile_KillProcess" Header="Kill Process"/>
<Separator/>
<MenuItem x:Name="menuFile_Close" Header="_Close"/>
</MenuItem>
<MenuItem x:Name="menuEdit" Header="Edit">
<MenuItem x:Name="menuEdit_ConvertIP" Header="Convert IP" IsCheckable="True" IsChecked="True"/>
</MenuItem>
<MenuItem x:Name="menuHelp" Header="Help">
<MenuItem x:Name="menuHelp_About" Header="About"/>
</MenuItem>
</Menu>
的PowerShell
$menuFile.Add_Click({
$txtInput.Text = "It worked!"
})
问题是上述PowerShell代码仅在单击其中一个子项时运行,而不是在单击$ menuFile时运行。我看了看,但我无法弄清楚为什么会发生这种情况以及如何解决它。
非常感谢。
答案 0 :(得分:1)
您正在寻找与Click不同的事件处理程序。你想要GotFocus或类似的东西。试试这个
$menuFile.Add_GotFocus({$txtInput.Text = "It worked!"})
您可以通过管道传输到Get-Member
来查看可以添加事件处理程序的所有事件:
$menuFile | Get-Member -MemberType Methods -force |?{$_.Name -like 'add*'}
然后只是寻找方法,我尝试了这个,它按预期工作:
$menuFile.Add_GotFocus({$menuFile.FontSize = 16})
$menuFile.Add_LostFocus({$menuFile.FontSize = 12})
然后,当我点击“文件”菜单时,它的字体大小及其子项变大,但当我移动到另一个菜单或点击时,字体大小缩小回字体大小为12。