将IronPython与WPF链接
我刚刚安装了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中注册。这个注册是通过常见的 +=
语法来完成的,前提是你已经获取了想要注册事件的控件。
另外,可以看看 这个示例,里面有一些帮助工具,可能会让这个过程更简单。