将IronPython与WPF链接

2 投票
1 回答
2652 浏览
提问于 2025-04-16 00:04

我刚刚安装了VS2010和一个很棒的新扩展——IronPython Tools目前这个扩展在双击WPF可视化控件时,还不能自动生成事件处理程序。有没有人能提供一个示例,或者告诉我怎么手动用Python编写WPF事件处理程序?我找了很久都没找到,而且我对Visual Studio还很陌生。

在生成一个新的ipython WPF项目时,自动生成的代码是:

import clr
clr.AddReference('PresentationFramework')

from System.Windows.Markup import XamlReader
from System.Windows import Application
from System.IO import FileStream, FileMode

app = Application()
app.Run(XamlReader.Load(FileStream('WpfApplication7.xaml', FileMode.Open)))

而XAML代码是:

<Window 
       xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
       Title="WpfApplication7" Height="300" Width="300"> 
       <Button>Click Me</Button>
</Window> 

任何帮助都将不胜感激。

1 个回答

5

你不能像这样使用 <Button Click="Foo">,因为你的窗口没有对应的代码类,而且你也无法获取一个,因为IronPython的类和CLR的类并不是直接对应的。此外,这里用来加载XAML文件的 XamlReader 也不支持事件的连接。如果你需要处理事件,你必须在Python代码中注册事件处理程序,而不是在XAML中注册。这个注册是通过常见的 += 语法来完成的,前提是你已经获取了想要注册事件的控件。

另外,可以看看 这个示例,里面有一些帮助工具,可能会让这个过程更简单。

撰写回答