SHOEISHA iD

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

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

ComponentZine(ComponentOne)

Webページ内に複数のHTMLコンテンツを表示するSilverlightアプリケーションの作成

ComponentOne Studio for SilverlightのC1HtmlHostコントロールを使ったWebページの作成

  • このエントリーをはてなブックマークに追加

C1HtmlHostコントロールについて

 C1HtmlHostコントロールを使用すると、HTMLのIFrameタグのようにSilverlightページ上にHTMLコンテンツを表示できます。また、このコントロールはページ上にいくつも配置でき、Silverlightページ上に、Gridコントロールなどで複数のHTMLコンテンツを配置することが可能です。

 HTMLコンテンツの表示方法は2つあります。1つはSourceUriプロパティを使用して、コントロール内に表示するHTMLコンテンツのURLを指定する方法で、既にあるWebページのコンテンツを表示する場合に使用します。この場合は、SourceUriプロパティに表示したいWebページの絶対URLを指定します。

 もう1つの方法は、SourceHtmlプロパティを使用して、コントロール内にHTML文字列を使って表示する方法です。この方法を使うと、プログラムでHTMLコードを作成してコンテンツを表示できます。

SourceHtmlプロパティにHTMLコードを設定するには

 SourceHtmlプロパティにHTMLコードを設定するためには、ちょっと工夫が必要になります。それは、タグの<>記号や""記号です。HTMLコードを記述するにはHTMLタグが必須ですが、そのままXAMLファイルに記述するとエラーになってしまいます。

このコードはエラーになる
<c1ext:C1HtmlHost SourceHtml="<table border="0"><tr><td><font color="#FF80C0">
                            このコーナーは、私が作成したフリーソフトをダウンロードする
                            コーナーです。</font></td>" />

 そのため、<>記号を次のように既定のエスケープ文字列に変え、""''(シングルクォーテーション)に変えて記述します。

直接記述できない文字 エスケープされた文字
< &lt;
> &gt;
" '

 この記号を使ってHTMLコードを修正すると次のようになります。

正常に動作するコード
<c1ext:C1HtmlHost SourceHtml="&lt;table border='1'&gt;&lt;tr&gt;&lt;td&gt;
                              &lt;font color='#FF80C0'&gt;このコーナーは、私が作成した
                              フリーソフトをダウンロードするコーナーです。&lt;/font&gt;
                              &lt;/td&gt;" />

 記号が文字になったので少し見づらくなりますが、使用する記号はこれぐらいなので慣れればすぐに使いこなせるようになります。

Windowlessプロパティを「True」に設定する

 C1HtmlHostコントロールを使ってSilverlightプラグイン内にHTMLコンテンツを表示するには、プラグインのWindowlessプロパティを「True」に設定する必要があります。この処理を行っておかないと、アプリケーション実行時にこのプロパティに関するエラーメッセージが表示されます。

 ただし、コントロールがプラグインのプロパティを変更することはできないため、ページの作成者があらかじめWindowlessプロパティを「True」に設定しておきます。Windowlessプロパティは、プロジェクトにある「xxxTestPage.aspx」ファイル(xxxはアプリケーション名)に追加します。

 ソリューションエクスプローラでこのファイル名をダブルクリックして開きます。

プロジェクトにある「xxxTestPage.aspx」ファイルをダブルクリックで開く
プロジェクトにある「xxxTestPage.aspx」ファイルをダブルクリックで開く

 [ソース]タブをクリックするとコードが表示されます。

[ソース]タブをクリック
[ソース]タブをクリック

 <body>セクションにある<param>セクションに、次のプロパティ設定を追加します。

<param name="Windowless"  value="true" />
Windowlessプロパティを「True」に設定するコードを追加する
Windowlessプロパティを「True」に設定するコードを追加する

 これで、Silverlightページ内に他のHTMLドキュメントを表示できるようになります。

次のページ
Webページの作成

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

  • このエントリーをはてなブックマークに追加
ComponentZine(ComponentOne)連載記事一覧

もっと読む

この記事の著者

瀬戸 遥(セト ハルカ)

8ビットコンピュータの時代からBASICを使い、C言語を独習で学びWindows 3.1のフリーソフトを作成、NiftyServeのフォーラムなどで配布。Excel VBAとVisual Basic関連の解説書を中心に現在まで40冊以上の書籍を出版。近著に、「ExcelユーザーのためのAccess再...

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

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

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/5883 2011/10/13 16:36

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング