WEB开发网
开发学院WEB开发ASP.NET 用IronRuby创建WPF应用程序 阅读

用IronRuby创建WPF应用程序

 2010-10-09 08:15:31 来源:WEB开发网   
核心提示: 注:Window、StackPanel、TextBlock、SolidColorBrush和Rectangle 都是WPF类,XAML代码可以轻松地用C#、VB或者IronRuby编程实现,用IronRuby创建WPF应用程序(4),以上代码会显示一个中等尺寸的独立窗体,该窗体中有StackPa

注:Window、StackPanel、TextBlock、SolidColorBrush和Rectangle 都是WPF类。XAML代码可以轻松地用C#、VB或者IronRuby编程实现。

以上代码会显示一个中等尺寸的独立窗体。该窗体中有StackPanel对象,它是WPF控件,用于定义其子控件采取流布局样式。在 StackPanel中有两个不同对象:一个文本框和一个矩形。在XAML定义的对象皆可被命名以供后续引用亦可匿名(我们的Rectangle对象就命名为mySquare,尽管TextBlock未被命名)。这些对象的属性可以通过两种方式进行赋值:利用XML元素属性(例如:Width="50"),或者所期望的值非初级类型它们的子元素(例如:预期<Rectangle.Fill> 为Brush或者派生自Brush)。

不要陷入WPF和XAML的谜团当中,因为任何人都可以轻松地编写大量代码,让我们用IronRuby运行这些代码。

require 'PresentationFramework' 
require 'PresentationCore' 
 
@window = System::Windows::Markup::XamlReader.parse(File.open('my_xaml.xaml', 'r').read) 
System::Windows::Application.new.run(@window)

WPF方法Application.Run需要Window作为其中一个参数。如果我们回头看之前的XAML代码,就会发现根元素其实就是 Window,那也是语法分析后所返回的对象。所有在XAML中定义的控件都会作为反射XAML文档结构的控件树返回,Window是根元素,StackPanel作为Window的唯一子元素,Rectangle和TextBlock则作为StackPanel的子元素等等。我们可以通过以下方式添加控件:

@window.find_name("mySquare").class # => "System::Windows::Shapes::Rectangle"

关于CLR类继承的解析

我们提到兼容性、互操作性却忽略了可扩展性。我已经清楚解释了IronRuby与.NET间如何无缝继承,甚至你可以用继承来扩展CLR类。以下是一个示例,让我们再来看一看之前写的文章中用C#创建的Person类。

上一页  1 2 3 4 5  下一页

Tags:IronRuby 创建 WPF

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接