SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Silverlight 4で作る新しいRIAアプリケーション

Silverlightによるデスクトップアプリケーション

Silverlight 4で作る新しいRIAアプリケーション(8)


ダウンロード sample.zip (2.1 MB)

トースト通知

 トースト通知と呼ばれるインターフェイスは、ユーザーにメールの受信や検索結果を知らせる方法です。通常のポップアップダイアログなどに比べ、ユーザーの作業を中断せずに必要な情報を通知できるので、最近のアプリケーションでは多く取り入れられています。

 Chromeの拡張機能である、Gmail Notifierをインストールすると、Gmailで新着があった場合に図7のようなウインドウがポップアップして、ユーザーに通知してくれます。

図7 Gmail Notiferによるトースト通知の例
caption

 Silverlightでは、NotificationWindowクラスを使うことで、ブラウザ外実行時に限り、OSに対してトースト通知を表示させる仕組みを持っています。

 リスト5は、テキストボックスに入力された書籍名をAmazonのAPIで検索して、リスト6のウインドウを使ってトースト通知している例です。

リスト5 トースト通知の例
// 通知用ウインドウのデータ定義
public class NotifyMessage
{
    public string Title { get; set; }
    public string Message { get; set; }
}

// トースト通知
if (Application.Current.IsRunningOutOfBrowser)
{
    // 1.通知用ウインドウの作成
    var contents = new NotifyPopup {
        DataContext = new NotifyMessage {
            Title = "検索結果",
            Message = string.Format("{0}の検索結果{1}件", bookName.Text, result.Count()),
        }
    };

    // 2.通知の設定
    var notify = new NotificationWindow {
        Content = contents,
        Height = 50,
        Width = 200,
    };
    notify.Show(3 * 1000);
}

 トースト通知を行うための手順は、以下の2つです。

  1. 通知用のウインドウを作成する
  2.  トースト通知で表示するウインドウは、通常のSilverlightのコントロールです。ここでは、リスト6のユーザーコントロールのインスタンスを作成し、検索結果をDataContextにバインドしています。

  3. NotificationWindowクラスの設定
  4.  1で作成したウインドウをContentに設定し、通知ウインドウの高さと幅を設定します。1のコントロールの側に設定してあったとしても、通知ウインドウ側に高さと幅を設定しないと、ウインドウが表示されないので注意してください。

 設定が終わったら、Showメソッドで表示時間を指定して、通知ウインドウを表示します。

リスト6 トースト通知で表示するウインドウ
<UserControl x:Class="SilverlightApplication1.NotifyPopup"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    d:DesignHeight="50" d:DesignWidth="200">
    <StackPanel x:Name="LayoutRoot" Background="#FF99CCFF" Height="50" Width="200">
        <TextBlock Height="15" Width="200" Text="{Binding Title}" />
        <StackPanel Background="#FF99FFFF">
            <TextBlock Height="35" Width="200" Text="{Binding Message}" />
        </StackPanel>
    </StackPanel>
</UserControl>

 リスト5とリスト6を実行すると、図8のようにトースト通知が表示されたことが確認できると思います。

図8 トースト通知の実行結果
caption

まとめ

 今回は、Silverlight 4で拡張されたブラウザ外実行のうち、権限の昇格が必要ない機能に絞って解説を行いました。次回は、権限の昇格が必要な信頼されたアプリケーションでは、どのような機能が利用可能かを解説します。

修正履歴

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
Silverlight 4で作る新しいRIAアプリケーション連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト かるあ (杉山 洋一)(カルア(スギヤマ ヨウイチ))

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/5770 2011/04/06 19:44

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー