不可错过的MSDN TV —— IronPython: Python on the .NET Framework (下)
在去年的Post中,介绍了Demo中有关WinFX的内容。那么今年呢,我们继续把这件做了一年的事情给做完。IronPython 1.0都赶在2005年的最后一天发布了,而这个系列的最后一篇Post竟然难产,成为2006年的新生儿,也真够FT的~~Demo 6 与C#之间的互协作:Demo中使用ImageView的Sample来自Windows SDK中WinFX SDK的部分,由于WinFX SDK并没有单独发布的,因此要把WinFX SDK安装上去还是得把整个Window SDK装上。而Windows SDK是以DVD Image的形式发布的,通常是需要刻录成DVD,或者使用解压缩工具打开的,MS也提供了一个很小巧的工具(在下载页面的Instruction部分有介绍):Virtual CD-ROM Control Panel for Windows XP帮助你创建一个虚拟DVD光驱,利用它可以轻松地打开下载的Image文件。在安装了Windows SDK之后,你可以在帮助文档中使用"ImageView Sample"作为关键字进行搜索,即可找到Demo中的ImageView这个Sample。为了能够在VS 2005正确地运行这个Sample,还得把WinFX Development Tools For VS 2005装上去。万事俱备之后,将这个Sample运行起来已经不成问题了。
Demo 6.1 在C#中执行简单的IronPython代码:运行了原装正版的WinFX ImageView Sample之后,我们接下来就要根据Demo的演示,对这个Sample进行一些小改动,增加新的功能以体现IronPython与C#之间的协作性。首先是在default.xaml中增加一个新的Button并设置Click的属性,然后在default.xaml.cs中增加相应的事件处理函数:RunScript。代码分析如下:
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee;">http://www.agoit.com/Images/OutliningIndicators/None.gif1. PythonEngine engine = new PythonEngine(); 创建一个PythonEngine实例,通过该实例的方法可以执行IronPython的代码;
http://www.agoit.com/Images/OutliningIndicators/None.gif2. engine.SetVariable("win", this); 设置IronPython代码执行所需要的变量,这段代码实质就是对应:win = this。而this指的就是ImageViewExample的实例,而ImageViewExample则是继承于System.Windows.Window类;
http://www.agoit.com/Images/OutliningIndicators/None.gif3. engine.Execute("win.SetImage('c:/images/itrun.jpg')"); 执行一行简单的IronPython代码:win.SetImage('c:/images/itrun.jpg')。
页:
[1]