Silverlight

Silverlightの流儀 その2

今回はユーザコントロールを作るときの流儀について。といっても、WinFormのカスタムコントロールなんかとそんなに違いはなくて「依存プロパティ」の使い方だけに注意しておけばいい。「依存プロパティ」の話の前にカスタムコントロールの基本的な作り方につ…

Silverlightでのクロスドメインアクセス

Silverlightでクロスドメインアクセスするには「clientaccesspolicy.xml」か「crossdomain.xml」というファイル名のポリシーファイルを使うんだけど、てっきりこのファイルをSilverlightをホストするページと同じサイトに置いておけば、そこに書いてあるサイ…

Silverlightの流儀 その1

この前のわんくま勉強会のWPF*1関連のセッションで学んだ事をメモっていく。 Silverlightにおける型変換(データと表示の分離) SilverlightというかXAMLをいじっていて困ったことは、TextBlockとかTextBoxなんかのコントロールに値をバインドする時に例えば…

Silverlightで作るつぶやきアプリ

まぁ、TwitterのパクリなんですけどねwTwitterのようなブラウザを使ってメッセージのやり取りが出来るIMを会社のイントラ内の閉じた世界でやりたかったのでサクッと作った。名前は「Swit」、Twitterクライアントの「Twit」をもじった。Swit - デモ実装して…

Silverlightでユーザがアップロードしたファイルをダウンロードする

なんのこっちゃと思われそうなタイトルだけど、どういうことかというと、以下のようなテキストボックスと「Open」「Save」ボタンがある簡易的なテキストエディタアプリ(Silverlight製)があるとする。このアプリは「Open」ボタンをクリックすると、 お馴染…

Silverlightで自身のURLを取得するには?

その手があったかー!! How does my Silverlight app finds it’s web services? « IgorShare Thoughts and Ideas Uri docUri = HtmlPage.Document.DocumentUri; Uri svcUri = new Uri(docUri, "ServiceAdress.svc"); どういうことかというと Silverlightク…

Silverlight 2でTodoアプリを作ってみる ラスト

長らくほったらかしにしていたので完結させる。といっても前回からの続きではなく一から完全に作り直した。基本的な流れは同じなのであえて解説はしない。完成形は以下のデモサイトを参照されたし。 やることリスト for Silverlight実装している機能は、 Tod…

.NETとSilverlightで(デフォルトの)日付の書式が違う件

.NETとSilverlightでは日付の書式が違うことに気が付いた。例えば以下のようなコードの場合、 DateTime.Now.ToString(); .NET 2008/04/18 10:00:00 Silverlight 平成 20/4/8 10:00:00 というように結果が異なる。これは.NETとSilverlightでは日本語Cultureの…

SilverlightにHttpWebRequestがある件

「System.Net」アセンブリに「HttpWebRequest」クラスがある・・・orzアセンブリ分かれてやんの。しかも同期呼び出しをサポートしている・・・ゴクリしていなかった・・・orz。オブジェクトブラウザで見ると「GetResponse」メソッドがあるのに、Intellisenceに…

Silverlightで作るお絵描きアプリ その1

Silverlightを使って今度はお絵描きアプリを作った。お絵描き for Silverlight動作環境 IE6以上、Firefox2(確認したのだけ) Silverlight 2 Beta 1 できることは、 ペンで線を描く 消しゴムで線を消す ペンの太さ(2〜10)、色を変更できる 描いた絵をネッ…

Silverlightで作る付箋紙アプリ ラスト

長々と続いたけどこれでラスト。付箋紙の編集機能を実装する。まずは付箋紙の情報を変更するためのサーバーサイドの処理。 付箋紙の情報を変更するためのURLは「~/Item/Set.aspx」にする。付箋紙のidは必須!!では、ItemControllerクラスにSetというメソッ…

Silverlightで作る付箋紙アプリ その4

今回は付箋紙の追加、編集、削除のサーバーサイドの処理を実装していく。 付箋紙を追加する 付箋紙を追加するためのURLは「~/Item/New.aspx」にする。付箋紙を追加するためのパラメータは左端の位置(left)と上端の位置(top)だけ。これをクエリパラメータ…

Silverlightで作る付箋紙アプリ その3

今回はサーバーサイドの処理を実装していく。まず、付箋紙が保持する情報を決める。 付箋紙Id(システムのための識別子) コメント 左端、上端の座標 横幅、縦高さ 付箋紙の色 この情報をサーバー側でXMLとして保持する。XMLのフォーマットは以下のようにし…

Silverlightで作る付箋紙アプリ その2

まずは付箋紙をぺたぺた貼るためのコンテナになるメイン画面を作る。この役割は「Page.xaml」に任せるので、「Page.xaml」を以下のように変更する。 Page.xaml <UserControl x:Class="Fusen.Page" xmlns="http://schemas.microsoft.com/client/2007" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <Canvas x:Name="LayoutRoot" Background="White"> </Canvas> </UserControl>…

Silverlightで作る付箋紙アプリ 番外

レンタルサーバーを借りたので、この連載で最終的にできあがる付箋紙アプリのデモを公開した。付箋紙アプリ for Silverlight動作環境はIE6以上IE7限定でSilverlight2 Beta1が必要、Firefoxでは何故か動かなかった(この前まで気持ちよく動いていたのに、今は…

Silverlightで作る付箋紙アプリ その1

最近Web上で共有するような付箋紙アプリをちらほら見かけるようになった。大抵の場合Ajaxで実装されていて、非常によくできているので感心してしまう。こういうおもしろいアプリを触っていると自分でも作ってみたくなるのがプログラマの性ということで、最近…

Silverlight Beta 2では非同期呼び出しができない 続き

と思ったら、Threadクラスを使えばできた。 var thread = new Thread(() => { HtmlPage.Window.Alert("Async call"); }); thread.Start(); 実行はできたけど、メッセージが表示されない。デバッグしてみたら、SilverlightでもWinFormアプリケーションと同じ…

Silverlight Beta 2では非同期呼び出しができない

Silverlight Beta 2でこういう処理書いたら、NotSupportedExceptionが飛んできたんだけど、 Action act = () => { HtmlPage.Window.Alert("Async call"); }; act.BeginInvoke(null, null); NotImplementedExceptionじゃないところを見るとSilverlightでは非…

色選択リストを作る

Silverlightで色を選択するためのリストが欲しかったので作ってみた。普通ならComboBoxを使って、テンプレートを変更すればいいんだろうけど、現状のBeta2ではまだ用意されていない(というか正式版では用意されるんだよね?)ので、色々ごちゃごちゃ組み合…

Calendarの日付表示をカスタマイズするには?

Silverlightにはカレンダーを表示するためのCalendarコントロールというのがあって、さくっとカレンダーの一覧を出したい時に非常に役に立つ。これの日付部分はボタンになっていて、日付だけが表示されているんだけど、例えばこの部分にテキストボックスとか…

C#の匿名メソッドをJavaScriptにコールバックさせる

前回のネタ↓になんの反応も無かったので、だぶん誰も興味がないんだろうけど・・・orz、まだ続ける。 SilverlightにjQueryのパワーを - Architect Life SilverlightからJavaScriptの関数が呼び出せる事は前回まででご承知の通り。例えば以下のようなJavaScri…

SilverlightにjQueryのパワーを

ところでこのコードを見てくれ・・・こいつをどう思う? Page.xaml.cs private void LayoutRoot_Loaded(object sender, RoutedEventArgs eventArgs) { var data = new[] { new { Name="A", Member=new[] { "Bob", "John" } }, new { Name="B", Member=new[] …

SilverlightでjQuery

さっきのやつでサーバーサイドからクライアントサイドのJavaScriptを呼び出せる事がわかったので、さっそくjQueryのラッパークラスを作ってみた。 jQuery.cs class jQuery { private static readonly HtmlWindow window = HtmlPage.Window; private ScriptOb…

Silverlightって、

こんな感じでHTMLにもアクセスできるんだよな。内部的にJavaScriptに変換されて実行されてるんだろうか? var ele = HtmlPage.Document.GetElementById("Hoge"); ele.SetProperty("innerHTML", "Hello"); 要素を取得する方法が「GetElementById」と「GetElem…

Silverlight 2でTodoアプリを作ってみる その3

前回でTodoアイテムの追加画面を表示するところまでを作ったので、今回は追加画面の実際の処理を作る。まずサーバーサイドの処理から実装する。「AddItem.aspx」というASP.NETページを新規作成して、コードビハインドファイルに以下の処理を追加する。 AddIt…

Silverlight 2でTodoアプリを作ってみる その2

前回でTodoアイテムの一覧をListBoxに表示した。 といってもタイトルが表示されているだけなので今回はまず、完了したかどうかを示すチェックボックスを表示してみる。 チェックボックスを表示するためにはListBoxに表示するアイテムの表示方法を変える必要…

Silverlight 2でTodoアプリを作ってみる その1

VS2008もAmazonから届いて、やっとこさSilverlight 2の開発環境が整ったのでなんか作ってみることにした。「Silverlight Application」プロジェクトでプロジェクトを新規作成する。名前は「SLTodo」にする。 作成した直後のプロジェクト構成 画面的には、Tod…

Silverlight 2 Beta 1を入れてみた

Silverlight2のBeta1とSDKがリリースされたので、とりあえず入れてみた。 http://www.microsoft.com/silverlight/resources/installationFiles.aspx?v=2.0 http://www.microsoft.com/downloads/details.aspx?familyid=4E03409A-77F3-413F-B108-1243C243C4FE&…

ボタンを作る for Silverlight

とりあえずSilverlightを軽くさわってみたけど、標準的なコントロールが一切用意されていないので、普通のアプリがまったく組めない。四角形とか円とか描画しても仕方ないし。 将来的には標準コントロールが用意されるようなので、それまで待っておけという…

Silverlight 始めました

最近、仕事がひまなおかげでほとんどVS2008 Beta2で遊んでいる。 ついこの間まで休日出勤、残業の嵐だったのでそのギャップがすさまじい。開発の仕事っていうのは両極端なので困る。まぁ、そのかわりひまな時にこうやって新しい技術を学ぶ事ができるのでこう…