はじめての Silverlight 2.0
やらなきゃ、 やらなきゃと思いつつ、 なかなか触れなかった Silverlight 2.0 を、 よーやく触ってみました f(^^;
まずは、 Visual Studio 2008 SP1 を入れます。 といっても、 無償の Visual Studio 2008 Express Edition SP1 で OK。
※ 私は全部入れちゃいましたけど、 Silverlight 2.0 のためには Visual Web Developer 2008 Express Edition SP1 だけでいいみたいです。
VS2008 SP1 を入れたら、 忘れずに 「Visual Studio 2008 Service Pack 1(SP1)用Intellisenseの修正プログラム」 を適用します。 これを当てないと、 インテリセンスが英語で出てきちゃって、 寂しい思いをします。
このあたりで、 Windows Update をやっておきましょう。 けっこうな量があります orz
続いて、 Visual Studio 2008 SP1 用 Microsoft Silverlight 2 Tools をインストールしたら、 とりあえず準備は完了です。
※ さらに、 Expression Blend 2 SP1 やら Deep Zoom Composer やらがあるといいらしいけど、 とりあえずプログラムを書いてみるには、 ここまででなんとかなります。
では、 Visual Web Developer を起動して、 新しいプロジェクトを作成します。
プロジェクトの種類として Silverlight を選び、 テンプレートは Silverlight アプリケーションを選びます。
新しくプロジェクトが作られ、 メインの画面になる Page.xaml が開いた状態になります。 ツールボックスから、 テキストボックスとかを適当に貼り付け…
…あ、 あら?
ツールボックスが空っぽです。 Silverlight のコントロールをツールボックスに追加してやっても…
デザイン画面へのドロップができません。
なにかセットアップに失敗したのかなぁ…
OS は Win7RC だしなぁ… f(^^;
まぁ、 WPF でそこそこ慣れているので、 適当に XAML を直接書いていきます。
初めてのプログラムは、 "Hello, world" と決まっています f(^^;
今回の "Hello, world" は、 ほんの少しだけ凝って、 テキストボックスに入力した文字列 ( 例えば "Silverlight" ) を Hello の後ろにくっつける ( 例えば "Hello, Silverlight!" ) ことにしました。
◆ 完成したソリューションは、 こちら ⇒ 「SilverlightApplication1_20090513.zip」 (6,885 バイト) をダウンロード
Page.xaml に、 テキストボックスを 2つと、 ボタンを追加します。 ボタンには、 イベントハンドラも指定します。
<TextBox x:Name="TargetName" Text="Silverlight"
Background="Azure" BorderThickness="1"
Grid.Row="0"
Height="Auto" HorizontalAlignment="Stretch"
Margin="2" />
<Button x:Name="Do" Content="Click!"
Grid.Row="0"
HorizontalAlignment="Right"
Margin="2" Padding="8, 4"
Click="OnDoButtonClicked"
/>
<TextBox x:Name="Message" Text="Hello,"
Grid.Row="1"
FontSize="32"
VerticalAlignment="Center"
HorizontalAlignment="Center"
Background="Transparent" BorderThickness="0"
TextAlignment="Center" TextWrapping="Wrap"
IsReadOnly="True" IsTabStop="False"
/>
Page.xaml.cs 側に、 イベントハンドラを記述します。
private void OnDoButtonClicked(object sender, RoutedEventArgs e)
{
if (this.TargetName.Visibility == Visibility.Visible)
{
if (!string.IsNullOrEmpty(this.TargetName.Text))
{
this.TargetName.Visibility = Visibility.Collapsed;
this.Message.Text = "Hello, " + this.TargetName.Text + "!";
this.Message.Visibility = Visibility.Visible;
}
}
else
{
this.TargetName.Visibility = Visibility.Visible;
this.Message.Visibility = Visibility.Collapsed;
}
}
これで実行すると、 冒頭に載せた "Hello, 銀光" が出てくるわけです。 (^^)
なお、 上のイベントハンドラは、 わざと 「普通」 に書きました。 ぱっと見て、 なにやってるか分かりづらいんじゃないかな? コメント書けよ~っ、 って言われちゃうかな? f(^^;
私の普段の書き方だと、 下のようになります。 全体のコード量はかなり増えちゃうけど、 イベントハンドラでなにをやってるかは、 コメントが無くてもだいたい分かりますよね。
※ 呼び出しているメソッドは、 ダウンロードできるソースコード中に、 コメントとして全部書いてあります。
private void OnDoButtonClicked(object sender, RoutedEventArgs e)
{
if (IsInputMode() && IsInputExist())
ShowMessage();
else
HideMessage();
}
| 固定リンク
« [Windows7] RC版@EeePC1000H ~ NOD32 v3.0 体験版 | トップページ | [Windows7] RC版@EeePC1000H ~ ASP.NET 開発、 というか hosts に localhost が無かった件 »
「プログラミング」カテゴリの記事
- 【.NET / Win8.1 ストアアプリ】 HttpClient で TLS 1.1 / 1.2 に対応するには(2018.06.17)
- 【VS2017 15.7pv2】 XAML のランタイム ツールに 「ヒートマップ」 が増えた(2018.03.28)
- 【.NET Core】 プロジェクトを作ると 「project.assets.json が見つかりません」 エラー(2018.02.10)
- 【#UWP】 ビットマップの表示色を変える (Win2D.uwp 経由で Direct2D を使う)(2017.08.23)
- 【#UWP】 CompactOverlay モード: Picture in Picture というか、「最前面に表示」するウィンドウを作る(2017.08.16)
「-プログラミング ( Silverlight )」カテゴリの記事
- [SL4] 投票よろしく! 「Silverlight4 のテストを強力にサポートしてほしい」(2010.09.19)
- [MEMO] Silverlight + NUnit(2010.08.02)
- [Silverlight] これで TDD できるかも!?(2010.07.26)
- Silverlight でも Coded UI Test がサポートされる予定(2010.06.06)
- [Silverlight] @oniak3 がスゴい勢いで答えるスレ (違w(2010.05.26)
この記事へのコメントは終了しました。
コメント
な、 なんてこったぁーっ! (@@;
Visual Web Developer 2008 Express Edition で、 aspx のソース側にコントロールをドロップできるでわないか~っ!!
おまけに、 プロパティペインでの設定も出来るし。
投稿: biac | 2009年5月14日 (木) 17時56分
>>ASP.NET や Silverlight の欠点は、 それらで基幹システムを作れ っていうお客さんが出てくること。
あぁ,良くあるパターンですよねww
マイクロソフトのデモサイトとかアプリ(UI的にカッコいい)を見たお客さんから仕様無視して「こういう風にして」とか前にありましたww
投稿: 画伯 | 2009年5月14日 (木) 15時32分
> XAMLのほうにドロップしてください。
はめられました f(^^;
なるほど、 これは良いわ。
WPF では、 デザイン画面のにドロップさせると、 (xaml 側で) 思ったような場所に入らずに、 けっきょく xaml のほうでカット&ペーストすることに… ってのを何度も経験したので。
> 「ゴールまで一緒に走ろうねっ!」
> を男の約束してください。
青春だな。
だが、ことわるw
ASP.NET や Silverlight の欠点は、 それらで基幹システムを作れ っていうお客さんが出てくること。 ( …技術そのものの欠点じゃないっすね f(^^; )
や、 ASP.NET や Silverlight の制限を分かった上で要件開発を進めてくれるとこならいいんですけどね~
ちうわけで、 ClickOnce が使える現在、 あまし真面目に Silverlight をやろうとは思わんのですよ f(^^;
投稿: biac | 2009年5月14日 (木) 13時04分
銀光私も少しはじめましたっ!!
ので。
「ゴールまで一緒に走ろうねっ!」
を男の約束してください。
投稿: さかもと | 2009年5月14日 (木) 07時51分
>デザイン画面へのドロップ
はまりましたねー
デザイン画面にドロップできないのはby designです。XAMLのほうにドロップしてください。
投稿: kkamegawa | 2009年5月14日 (木) 00時05分