WPF和Powershell-处理事件

问题描述 投票:3回答:3

任何人都可以为我提供一些有关在Powershell中处理WPF UI事件的文档的正确方向吗?

例如,我想知道在更改复选框或单选按钮时如何调用函数。

干杯!

wpf powershell wpf-controls
3个回答
7
投票

考虑WPF和PowerShell,请看Bernd的WPF Linkcollection for PowerShell。您会找到许多有趣的链接,它们将对您有所帮助。

考虑您的问题,只需使用模式

$control.Add_<someevent>({ what to do })

例如,someevent可能是按钮的Click

Click

您传入了处理事件的脚本块。


7
投票

迟到聚会(超过4年)。具体解决$button.Add_Click({ $global:clicked = $true }) 的评论。

但是如果有人像我一样通过Googling PowerShell WPF事件处理找到此帖子,想要获得Sender控件(发送者)和Event Args(e),这是...

C#版本(非特定模板)

jpierson

PowerShell版本

private void Handler(object sender, SomeEventArgs e)
{
  //do something with sender and/or e...
}

并进入特定的MouseWheelHandler事件处理程序

C#版本(其中MouseWheelHandler事件已绑定到控件)

$WPFControl.Add_Handler({
  $sender = $args[0]
  $e      = $args[1]
  #do something with sender and/or e...
})

PowerShell版本

private void ScrollViewer_PreviewMouseWheel(object sender, MouseWheelEventArgs e)
{
  ScrollViewer scv = (ScrollViewer)sender;
  //do something with sender and/or e...
}

在PowerShell中,要获取发送方和事件参数的类型,请使用以下内容

$ScrollViewer.Add_PreviewMouseWheel({
  $sender = [System.Windows.Controls.ScrollViewer]$args[0]
  $e      = [System.Windows.Input.MouseWheelEventArgs]$args[1]
  #do something with sender and/or e...
})

在上面的示例中,它将为您提供...

$ScrollViewer.Add_PreviewMouseWheel({
  Write-Host $args[0]
  Write-Host $args[1]
})

0
投票

好吧,这是一个远景,因为此帖子来自2015年,但我尝试过,但对我来说不起作用。它不会出现错误,但我无法访问发件人属性

System.Windows.Controls.ScrollViewer
System.Windows.Input.MouseWheelEventArgs

我试图为HMI制作通用导航系统

最好的问候,理查德

© www.soinside.com 2019 - 2024. All rights reserved.