始めよう!Silverlight

第6回 Dynamic SilverlightでHello world

この記事を読むのに必要な時間:およそ 4 分

IronRubyでHello world

では,まずIronRubyでHello worldを表示してみます。まずはSilverlightをホストするHTMLを作成します。適当なディレクトリを作成して以下の内容をindex.htmlとして保存してください。

index.html

<!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>Dynamic Silverlight Sample</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"/>
      </object>
    </div>
  </body>
</html>

続いては,いま作成したindex.htmlのおなじ階層にappディレクトリを作成します。そしてその中にapp.xamlというファイルを作成して,以下の内容を記述してください。

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="TextBlock1" Text="Hello world."
    FontSize="24" />
</UserControl>

これでひな形が完成しました。上記のindex.htmlとapp.xamlはあとで解説するIronPythonでもそのまま使います

では,IronRubyのコードを記述しましょう。app.xamlと同じディレクトリにapp.rbというファイル名で以下のIronRubyのコードを作成してください。

Include System::Windows
Include System::Windows::Controls

control = Application.current.load_root_visual UserControl.new, 'app.xaml'
control.find_name('TextBlock1').mouse_left_button_up do |sender,args|
  sender.text = 'Hello world for IronRuby!'
end

作成できたらターミナルでカレントディレクトリをindex.htmlと同じディレクトリにして以下のコマンドにより,Chiron.exeを実行してください。

mono Chiron.exe /b

以下のようなディレクトリの画面が表示ます。

画像

index.htmlのリンクを選択してください。作成したSilverlightアプリケーションが実行されます。

画像

ここで,⁠Hello world」の上でクリックしてときに,以下のように文字列が「Hello world for IronRuby!」に変わったら成功です。

画像

著者プロフィール

丸山和秀(まるやまかずひで)

株式会社アークウェイ システムクリエイター。趣味はドラム。社会人になりたてのころは職業はドラマーだと豪語していたが,いつのまにかシステム開発の楽しさにのめりこみ,仕事内容が職業になっていた。パッケージベンダにて金融向けパッケージソフトの開発を行うSEを経て現職へ。現在は研究開発としてRIAに取り組み中。