使用动态语言来制作silverlight

在silverlight beta 2 中已经支持了动态语言.但是在Visual Studio 和 Experssion Blend中还没有使用动态语言的模版.我们目前只可以手动建立. ok  开始吧~

准备工作:

Dynamic Silverlight SDK

Silverlight 2 Runtime

Silverlight 2 SDK

新建立一个空网站

接下来右键点击解决方案选择添加新项.添加一个html页面.命名为default.htm

编辑该页面

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <title>start DLR</title>
 <style type="text/css">
         html, body
 {
             height: 100%;
             overflow: auto;
 }
         body
 {
             padding: 0;
             margin: 0;
 }
         #silverlightControlHost
 {
             height: 100%;
 }
 </style>
 </head>
 <body>
 <div id="silverlightControlHost">
 <object data="data:application/x-silverlight," type="application/x-silverlight-2-b1"
             width="100%" height="100%">
 <param name="source" value="app.xap" />
 <param name="background" value="white" />
 <param name="windowless" value="true" />
 </object>
 <iframe style='visibility: hidden; height: 0; width: 0; border: 0px'></iframe>
 </div>
 </body>
 </html>

这种写法的原因你可以看看我的这篇文章:"有趣 不用js也能创建silverlight"

注意意中的source参数"app.xap".我们的文件中并没有这个文件.这是由SDK中的Chiron自动生成的.你存放sl代码的文件夹也必须叫这个名字"app".其中动态代码的名字必须是app.比如"app.rb","app.xaml"

在根目录下建立app文件夹.再此目录下添加xml文件命名为app.xaml.

<UserControl
    xmlns="http://schemas.microsoft.com/client/2007"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    x:Class="System.Windows.Controls.UserControl"
    x:Name="Page"
    >
  <TextBlock
     x:Name="txtMessage" TextWrapping="Wrap"
     Foreground="Black" Text="Hello World" >
  </TextBlock>
</UserControl>

这里以ruby为例.在app目录下添加一个text文件.命名为app.rb

到了这一步就可以开始写rb的代码了.

 include System::Windows
 include System::Windows::Controls
 include System::Windows::Media
 
 class SilverlightApplication
   def application
     Application.current
   end
 
   def self.use_xaml(options = {})
     options = {:type => UserControl, :name => "app"}.merge(options)
     Application.current.load_root_visual(options[:type].new, "#{options[:name]}.xaml")
   end
 
   def root
     application.root_visual
   end
 
   def method_missing(m)
     root.send(m)
   end
 end
 
 class FrameworkElement
   def method_missing(m)
     find_name(m.to_s.to_clr_string)
   end
 end
 
 class App < SilverlightApplication
   use_xaml
 
   def initialize
     txtMessage.text = "Welcome to Ruby in Silverlight"
   end
 end
 
 App.new

为了运行起来需要在vs中设置一下.

在网站属性页中的启动选项选择"启动外部程序",选中sdk中的"Chiron.exe".命令行参数为"/b".工作目录设置为项目所在目录.

按F5运行程序

浏览器打开http://localhost:2060.在这里你可以用目录浏览的方式查看文件.

点击default.htm

显示了"Welcome to Ruby in Silverlight".这是由rb文件控制的.

修改代码.

  def initialize
 #txtMessage.text = "Welcome to Ruby in Silverlight"
   end

注释掉设置文本的语句.

按F5刷新浏览器

显示"Hello World".这是xaml自己描述的.

ok  介绍完毕.

下载地址

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏哲学驱动设计

分享 MSDN 下载工具(Word/PDF)

给大伙分享一个最近出炉的 MSDN 到 Word/PDF 转换器。我已经用它转换了 WPF、VSPackage、WWF 等 MSDN 章节为 PDF。 介绍 下...

27210
来自专栏Echo is learning

python rpy2 包安装问题解决

2034
来自专栏玄魂工作室

asp.net core开发环境准备

1.1 安装sdk和运行时 浏览器打开网址https://www.microsoft.com/net/download, 到.Net Core下载页面。 ? ...

3553
来自专栏王磊的博客

Windows服务的快速搭建与调试(C#图解)

目录 一、什么是Windows 服务? 二、创建Windows 服务与安装/卸载批处理。 三、调试Windows 服务。 正文 一、什么是Windows ...

4808
来自专栏乐沙弥的世界

Linux 前后台作业切换及脱机管理

    Linux bash shell单一终端界面下,我们经常需要管理或同时完成多个作业,如一边执行编译,一边实现数据备份,以及执行SQL查询等其他的任务。所...

1331
来自专栏玄魂工作室

无废话--Mac OS, VS Code 搭建c/c++基本开发环境

此时会在当前工作空间目录生成.vscode配置目录,同时在配置目录会生成一个c_cpp_properties.json文件。

881
来自专栏张善友的专栏

VS 2010 SP1的一个功能(添加可部署依赖项)

使用“添加可部署的依赖项”对话框,您可以将程序集(DLL 文件)添加到网站项目或 Web 应用程序项目。 在部署网站或应用程序时,将文件包含在部署项目中。 如果...

1897
来自专栏大前端_Web

NPM配置问题

版权声明:本文为吴孔云博客原创文章,转载请注明出处并带上链接,谢谢。 https://blog.csdn.net/wkyseo/articl...

1464
来自专栏hbbliyong

Visual Studio 2013 添加新项缺失[ADO.NET 实体数据模型]解决方法

      之前使用在Vs2012下使用SQLite+EF建的项目在VS2013下不能运行了,我把以前的*.edmx删除后准备重新添加以下 .可是,在添加新项目...

3866
来自专栏pangguoming

Windows下Mongodb安装及配置

安装文件:MongoDB-win32-x86_64-2008plus-ssl-3.2.6-signed.msi 电脑配置:win7 64位 mongodb的安装...

3764

扫码关注云+社区

领取腾讯云代金券