はじめに
Windowsアプリケーションでおなじみの「ファイルを開く」ダイアログボックスは、ファイル操作になくてはならないダイアログボックスです。これがWebページで使えたら便利ですよね。
ComponentOne Studio for Silverlightに収録されているFilePicker for Silverlightを使えば、Silverlightで「ファイルを開く」ダイアログボックスと同様の機能を持ったダイアログをポップアップさせ、ユーザーにファイルを選択してもらうことができます。今回は、このC1FilePickerコントロールを使って、テキストファイルとイメージ画像ファイルを選んで表示できるWebページを作成してみました。
対象読者
Visual Basic/Visual C# 2008を使ってプログラムを作ったことのある人。また、SilverlightおよびXAMLに対する基礎的な知識が必要になります。
必要な環境
Visual Basic 2008、Visual C# 2008、Visual Studio 2008でプログラムが作れる環境。また、Visual Studio 2008 Silverlight Tools 3.0をインストールしていることが必須条件です。
なお、本プログラムはWindows Vista上で動作するVisual Studio 2008およびVisual Studio 2008 Silverlight Tools 3.0を使用して作成し、Internet Explorer 8で動作確認を行っています。
コンポーネントのインストール
FilePicker for Silverlightを使用する方は、Visual Studio、Visual Basic、Visual C#の開発環境にComponentOne Studio Enterprise 2010Jをインストールする必要があります。
インストーラは、グレープシティのWebページからダウンロードできます。製品ページの[申込フォーム]をクリックし、グレープシティのWebサイトへ必要情報を登録すると、添付トライアルライセンスキーファイルとダウンロードサイトを記載したE-Mailが送られてきますので、ここからダウンロードします。制限事項などの詳細については、インストーラに同梱されているリリースノートを参照ください。
FilePicker for SilverlightのC1FilePickerコントロールについて
C1FilePickerコントロールは、Silverlightアプリケーションに「ファイルを開く」ダイアログボックスを実装できるコントロールです。Windowsフォームで使われる「ファイルを開く」ダイアログボックスとほぼ同様の機能を持ち、選択したファイルをそのままWebページでアップロードすることができます。
ダイアログボックスにはファイルの拡張子やカテゴリといったフィルタータイプを設定でき、設定書式もWindowsフォームの「ファイルを開く」ダイアログボックスと同じように記述します。
XAMLでは、C1FilePickerコントロールの配置、外観形状、フィルターの設定を行い、選択したファイルの取得はコードビハインドで行います。ユーザーがファイルを選択すると、C1FilePickerコントロールには「SelectedFilesChanged」というイベントが発生し、「SelectedFile」プロパティで選択したファイルを「FileInfo」クラス(System.IO 名前空間)のオブジェクトとして取得します。
C1FilePickerコントロールは、右側にダイアログボックスを表示するボタンがあり、コントロール起動時は左側にウォーターマークが表示されています。このウォーターマークの部分は、ファイルが選択されるとそのファイル名に表示が変わります。
ファイルは、デフォルトでは単一の選択状態になっていますが、Multiselectプロパティを使って一度に複数のファイルを選択できるように設定することもできます。