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

用IronRuby创建WPF应用程序

 2010-10-09 08:15:31 来源:WEB开发网   
核心提示: 注:和我之前说的稍有不同,时钟的运行是可预期的,用IronRuby创建WPF应用程序(3),然而我们仍使用Timer事件进行更新,这是在主线程之外完成任务的众多方式的一种,我不准备深入探讨XAML的架构,如果你有任何使用基于 XML语言的经验的话,接下来,你会看到为处理事件所需编写的代码仅是向C

注:和我之前说的稍有不同,时钟的运行是可预期的,然而我们仍使用Timer事件进行更新,这是在主线程之外完成任务的众多方式的一种。

接下来,你会看到为处理事件所需编写的代码仅是向CLR提供处理事件的函数名。这种方式的缺点在于它对每个事件仅允许委托一个代码块。我们需要使用add方法让该事件订阅多个处理程序,即把处理函数放到队列的末端。如下所示:

def tick 
  puts "tick tock" 
end 
 
timer.elapsed.add method(:tick) 
timer.elapsed.add proc { puts "tick tock" } 
tick_handler = lambda { puts "tick tock" } 
timer.elapsed.add(tick_handler)

创建代码块作为事件处理程序的能力使得IronRuby向优秀的动态语言又迈进了一步。小写规范减少了样板代码的数量。当然,匿名方法在其它传统的.NET语言——像C#和VB——中也可用,但是在IronRuby则让人感觉更加优雅和自然。

注:无论方法是已命名还是匿名,处理事件的委托代码都可以接收参数,一般来说,参数会包括一个sender 对象和一些args。

XAML和IronRuby

XAML是微软用于定义CLR对象及其属性的类XML语言,主要在WPF和Silverlight应用程序中使用。有了它,我们可以用描述的方式来创建整个UI,在程序性代码中关联事件并在运行时绑定数据、创建图形、甚至为那些图形创建具有故事情节的动画。我不准备深入探讨XAML的架构,如果你有任何使用基于 XML语言的经验的话,你就会了解其中发生的事情。

<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 
  <StackPanel> 
    <Rectangle x:Name="mySquare" Width="50" Height="50"> 
      <Rectangle.Fill> 
        <SolidColorBrush Color="Green" /> 
      </Rectangle.Fill> 
 
    </Rectangle> 
    <TextBlock Text="Hello, world"> 
      <TextBlock.Foreground> 
        <SolidColorBrush Color="Red" /> 
      </TextBlock.Foreground> 
    </TextBlock> 
 
  </StackPanel> 
</Window>

上一页  1 2 3 4 5  下一页

Tags:IronRuby 创建 WPF

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