ブラウザ外実行の新機能
Silverlight 4で追加されたブラウザ外実行の機能には、通常のブラウザ外実行で利用できる機能と、より権限の高い信頼されたアプリケーションでのみ実行できる機能があります。今回は、通常のブラウザ外実行で利用できる機能について解説します。
今回のサンプル
今回のサンプルは、SilverlightでAmazonの書籍を検索するアプリケーションです。
テキストボックスに入力された書籍名で検索を行います。取得した一覧をクリックすると、検索結果をトースト表示し、詳細なHTMLページがページ下部に表示されるようにします。図4に動作イメージを示します。

AmazonのWebサービスを呼び出すためには、シグネチャの設定など面倒な部分がありますが、今回はAmazon Sample Code & Libraliesで公開されているProduct Advertising API Signed Requests Sample Code - C# REST/QUERYをSilverlight用に修正して利用しています。この記事のサンプルプログラムに含めていますので、気になる方は参考にしてください。
Amazonの検索プログラムの詳細は、今回の趣旨とずれてしまうため筆者のブログの記事を参照してください。
ウインドウの設定
Silverlight 4では、プログラムコードからブラウザ外実行のウインドウサイズを変更できます。リスト1はアプリケーション起動時にウインドウサイズを800×600に変更して、ウインドウを常に最前面に表示している例です。
private void Application_Startup(object sender, StartupEventArgs e)
{
this.RootVisual = new MainPage();
if (Application.Current.IsRunningOutOfBrowser)
{
Window mainWindow = Application.Current.MainWindow;
mainWindow.Width = 800;
mainWindow.Height = 600;
mainWindow.TopMost = true;
}
}
ウインドウの高さや幅などを変更するのは、アプリケーションの開始時か、ボタンクリックなどのユーザーアクションがあった場合に限られます。例えば、タイマーイベントでウインドウサイズを変えたり、何らかの通信の終了時にウインドウの幅などを変更したりすると、SecurityExceptionが発生するので注意してください。
