<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>digital matter &#187; Silverlight</title>
	<atom:link href="http://blog.loadlimits.info/tag/silverlight/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.loadlimits.info</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Tue, 22 Jun 2010 10:46:39 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Silverlight3とBlend3とビヘイビア</title>
		<link>http://blog.loadlimits.info/2010/02/silverlight3%e3%81%a8blend3%e3%81%a8%e3%83%93%e3%83%98%e3%82%a4%e3%83%93%e3%82%a2/</link>
		<comments>http://blog.loadlimits.info/2010/02/silverlight3%e3%81%a8blend3%e3%81%a8%e3%83%93%e3%83%98%e3%82%a4%e3%83%93%e3%82%a2/#comments</comments>
		<pubDate>Fri, 05 Feb 2010 11:19:30 +0000</pubDate>
		<dc:creator>hotpi</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://blog.loadlimits.info/2010/02/silverlight3%e3%81%a8blend3%e3%81%a8%e3%83%93%e3%83%98%e3%82%a4%e3%83%93%e3%82%a2/</guid>
		<description><![CDATA[Silverlightの開発、ビヘイビアが結構便利なのだけど、あまりまだ洗練されてないのと情報少ないので発見したこと共有しておきます。
まとめを書きたいけどちょっと時間取れないので、ざっくり、どんなものかを書いておきます。
とにかくコードを書かなくて良くなる
コード書く量が減れば、コードをビジネスロジックに集中できるので、見通しが良くなります。デザイナに渡すのも楽かもしれないですね。
簡単な処理はストーリーボードも不要
全部ストーリーボードでやろうとしていたら、結局制御のためにプログラムを書かなきゃいけない事態になっていたので、これも便利ですね。イージングもかけられます。
ときどき動かない条件があるらしい？
マウスオーバーで画像を切り替える処理をやりたくて、ChangePropertyActionに親コントロール（Image）のSourceを切り替える処理をやらせたら、Silverlight自体表示されなくなってしまいました。ローディング100%の状態で先に進まない…。
他にもHyperlinkActionに直接http://から始まるURLを書いたら同じ現象になりました。使い方間違ってるだけだとは思うけど。これについての情報はこっちで解決。
Blend 3 silverlight application &#38; website

&#60;HyperlinkButton Tag="/Views/Page1.xaml" Background="Black" Height="47" HorizontalAlignment="Left" VerticalAlignment="Top" Width="133" NavigateUri="/Page1.xaml" Cursor="Stylus" /&#62;

ビヘイビア使わずにHyperlinkButtonにするってことですね…
状態を制するとインターフェースの設計が楽になる
やっぱりインターフェースを重点的に考えられているだけあって、状態を作ってしまえば、あとは状態の遷移だけ意識すればいいという点で便利。
マウスオーバーでずるっと出てくるメニューとか、GoToStateActionを使うと簡単に作れます。状態を先に保存しておいて、それぞれの状態を切り替える処理をクリックイベントだのチェックボックスのチェックだののイベントに関連付けられます。
ただし、「状態」を使うために別コントロールにしておく必要あり。あと、別コントロールにしたあと、一度ビルドしないとプロジェクト内の他のXAMLから使えないっぽい？アセットにコントロールが出てこないと焦ったときはとりあえずビルド。
マウスオーバーでずるっと出てくるメニューはストーリーボードでやらないほうがいい
なぜならアニメーション中にフォーカス外れたとき、MouseLeaveイベントにストーリーボードのBeginとか書いてあると、メニューが出きっていないのにストーリーボードのスタート地点で出きった位置に飛ばされるからです。
その点、GoToStateActionはその辺もきれいに処理してくれるので便利。
ずるずる並び替えられる処理もビヘイビアで
FluidMoveBehaviorを使えばパネルの中の要素をドラッグアンドドロップで変更する処理を一発で設定できるらしいです。試してないけど。
動画あった。これかな？
Animated WPF Panels (animating collection views) &#124; Software and UX
トリガーはビヘイビアを選択したときにプロパティに出てくる
もう一度言う、「トリガーはビヘイビアを選択したときにプロパティに出てくる」。わかりにくい探しにくい…一度覚えてしまえば大丈夫なのだろうけど…
ついでに言うと、状態の選択を解除するには状態タブの中のベースを選択しておけばいいと思う。
その他、デモとか
色々解説してくれているサイトがあったので、紹介しておきます。
kirupa.com &#8211; Using Custom Visual States, Page 1 （Visual StatesとGoToStateActionの話）
kirupa.com &#8211; Using the FluidMove Behavior, Page 1 （FluidMoveBehaviorのデモあり）
サイト上で全部のデモを見られないのが残念だけど、ソース公開してくれているので、一度ダウンロードして動きを見てみるといいと思いますよ。
]]></description>
			<content:encoded><![CDATA[<p>Silverlightの開発、ビヘイビアが結構便利なのだけど、あまりまだ洗練されてないのと情報少ないので発見したこと共有しておきます。</p>
<p>まとめを書きたいけどちょっと時間取れないので、ざっくり、どんなものかを書いておきます。</p>
<h2>とにかくコードを書かなくて良くなる</h2>
<p>コード書く量が減れば、コードをビジネスロジックに集中できるので、見通しが良くなります。デザイナに渡すのも楽かもしれないですね。</p>
<h2>簡単な処理はストーリーボードも不要</h2>
<p>全部ストーリーボードでやろうとしていたら、結局制御のためにプログラムを書かなきゃいけない事態になっていたので、これも便利ですね。イージングもかけられます。</p>
<h2>ときどき動かない条件があるらしい？</h2>
<p>マウスオーバーで画像を切り替える処理をやりたくて、ChangePropertyActionに親コントロール（Image）のSourceを切り替える処理をやらせたら、Silverlight自体表示されなくなってしまいました。ローディング100%の状態で先に進まない…。</p>
<p>他にもHyperlinkActionに直接http://から始まるURLを書いたら同じ現象になりました。使い方間違ってるだけだとは思うけど。これについての情報はこっちで解決。</p>
<p><a href="http://social.expression.microsoft.com/Forums/en/blend/thread/88bdd199-07e9-46cc-975c-d7bfbbd8b7ef" target="_blank">Blend 3 silverlight application &amp; website</a></p>
<div style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;float: none;padding-top: 0px" class="wlWriterEditableSmartContent">
<pre>&lt;HyperlinkButton Tag="/Views/Page1.xaml" Background="Black" Height="47" HorizontalAlignment="Left" VerticalAlignment="Top" Width="133" NavigateUri="/Page1.xaml" Cursor="Stylus" /&gt;</pre>
</div>
<p>ビヘイビア使わずにHyperlinkButtonにするってことですね…</p>
<h2>状態を制するとインターフェースの設計が楽になる</h2>
<p>やっぱりインターフェースを重点的に考えられているだけあって、状態を作ってしまえば、あとは状態の遷移だけ意識すればいいという点で便利。</p>
<p>マウスオーバーでずるっと出てくるメニューとか、GoToStateActionを使うと簡単に作れます。状態を先に保存しておいて、それぞれの状態を切り替える処理をクリックイベントだのチェックボックスのチェックだののイベントに関連付けられます。</p>
<p>ただし、「状態」を使うために別コントロールにしておく必要あり。あと、別コントロールにしたあと、一度ビルドしないとプロジェクト内の他のXAMLから使えないっぽい？アセットにコントロールが出てこないと焦ったときはとりあえずビルド。</p>
<h2>マウスオーバーでずるっと出てくるメニューはストーリーボードでやらないほうがいい</h2>
<p>なぜならアニメーション中にフォーカス外れたとき、MouseLeaveイベントにストーリーボードのBeginとか書いてあると、メニューが出きっていないのにストーリーボードのスタート地点で出きった位置に飛ばされるからです。</p>
<p>その点、GoToStateActionはその辺もきれいに処理してくれるので便利。</p>
<h2>ずるずる並び替えられる処理もビヘイビアで</h2>
<p>FluidMoveBehaviorを使えばパネルの中の要素をドラッグアンドドロップで変更する処理を一発で設定できるらしいです。試してないけど。</p>
<p>動画あった。これかな？</p>
<p><a href="http://sweux.com/blogs/pombeiro/index.php/2009/08/14/animated-panels/" target="_blank">Animated WPF Panels (animating collection views) | Software and UX</a></p>
<h2>トリガーはビヘイビアを選択したときにプロパティに出てくる</h2>
<p>もう一度言う、「トリガーはビヘイビアを選択したときにプロパティに出てくる」。わかりにくい探しにくい…一度覚えてしまえば大丈夫なのだろうけど…</p>
<p>ついでに言うと、状態の選択を解除するには状態タブの中のベースを選択しておけばいいと思う。</p>
<h2>その他、デモとか</h2>
<p>色々解説してくれているサイトがあったので、紹介しておきます。</p>
<p><a href="http://www.kirupa.com/blend_silverlight/custom_vsm_pg1.htm" target="_blank">kirupa.com &#8211; Using Custom Visual States, Page 1</a> （Visual StatesとGoToStateActionの話）</p>
<p><a href="http://www.kirupa.com/blend_silverlight/fluidmove_pg1.htm" target="_blank">kirupa.com &#8211; Using the FluidMove Behavior, Page 1</a> （FluidMoveBehaviorのデモあり）</p>
<p>サイト上で全部のデモを見られないのが残念だけど、ソース公開してくれているので、一度ダウンロードして動きを見てみるといいと思いますよ。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.loadlimits.info/2010/02/silverlight3%e3%81%a8blend3%e3%81%a8%e3%83%93%e3%83%98%e3%82%a4%e3%83%93%e3%82%a2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SilverlightのTestPage.htm自動生成をやめる</title>
		<link>http://blog.loadlimits.info/2010/01/silverlight%e3%81%aetestpage-htm%e8%87%aa%e5%8b%95%e7%94%9f%e6%88%90%e3%82%92%e3%82%84%e3%82%81%e3%82%8b/</link>
		<comments>http://blog.loadlimits.info/2010/01/silverlight%e3%81%aetestpage-htm%e8%87%aa%e5%8b%95%e7%94%9f%e6%88%90%e3%82%92%e3%82%84%e3%82%81%e3%82%8b/#comments</comments>
		<pubDate>Sat, 30 Jan 2010 09:57:10 +0000</pubDate>
		<dc:creator>hotpi</dc:creator>
				<category><![CDATA[解決]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://blog.loadlimits.info/2010/01/silverlight%e3%81%aetestpage-htm%e8%87%aa%e5%8b%95%e7%94%9f%e6%88%90%e3%82%92%e3%82%84%e3%82%81%e3%82%8b/</guid>
		<description><![CDATA[やめる、というか、HTMLのobject要素内にparamとか追加したかったので、別ページを用意して、そのファイルをビルド時に実行してくれるようにしたいのです。
ASP.NETのプロジェクトがくっついている場合はそちらを修正すればいいのですが、Silverlightプロジェクトを単体で作ってしまった場合用。
環境はVisual Studio 2010 ベータを使っています。
メニューの[プロジェクト]から、[新しい項目の追加]、[HTMLファイル]を選択して１ページ作成してやります。
スケルトンのHTMLがエディタに表示されるので、Silverlightを呼び出すタグを書きます。自動生成されたTestPage.htmの内容でもコピーして作ると楽。
ちなみに実行自体はプロジェクトのルートフォルダにできるので、xapファイルのパスの前にBin/debug/などをつけてやる必要あり。（出力ディレクトリにコピーできるけど、コピーしてもそちらが実行されるわけではない）
で、プロジェクトのプロパティで、デバッグ→開始動作のラジオボタンを[テスト ページを動的に生成する]から[ページを指定する]に変更して、htmlファイルを選択。完了。
]]></description>
			<content:encoded><![CDATA[<p>やめる、というか、HTMLのobject要素内にparamとか追加したかったので、別ページを用意して、そのファイルをビルド時に実行してくれるようにしたいのです。</p>
<p>ASP.NETのプロジェクトがくっついている場合はそちらを修正すればいいのですが、Silverlightプロジェクトを単体で作ってしまった場合用。</p>
<p>環境はVisual Studio 2010 ベータを使っています。</p>
<p>メニューの[プロジェクト]から、[新しい項目の追加]、[HTMLファイル]を選択して１ページ作成してやります。</p>
<p>スケルトンのHTMLがエディタに表示されるので、Silverlightを呼び出すタグを書きます。自動生成されたTestPage.htmの内容でもコピーして作ると楽。</p>
<p>ちなみに実行自体はプロジェクトのルートフォルダにできるので、xapファイルのパスの前にBin/debug/などをつけてやる必要あり。（出力ディレクトリにコピーできるけど、コピーしてもそちらが実行されるわけではない）</p>
<p>で、プロジェクトのプロパティで、デバッグ→開始動作のラジオボタンを[テスト ページを動的に生成する]から[ページを指定する]に変更して、htmlファイルを選択。完了。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.loadlimits.info/2010/01/silverlight%e3%81%aetestpage-htm%e8%87%aa%e5%8b%95%e7%94%9f%e6%88%90%e3%82%92%e3%82%84%e3%82%81%e3%82%8b/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Encoding.GetString(Byte[])はSilverlightで使えない</title>
		<link>http://blog.loadlimits.info/2010/01/encoding-getstringbyte%e3%81%afsilverlight%e3%81%a7%e4%bd%bf%e3%81%88%e3%81%aa%e3%81%84/</link>
		<comments>http://blog.loadlimits.info/2010/01/encoding-getstringbyte%e3%81%afsilverlight%e3%81%a7%e4%bd%bf%e3%81%88%e3%81%aa%e3%81%84/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 12:53:23 +0000</pubDate>
		<dc:creator>hotpi</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[解決]]></category>
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://blog.loadlimits.info/2010/01/encoding-getstringbyte%e3%81%afsilverlight%e3%81%a7%e4%bd%bf%e3%81%88%e3%81%aa%e3%81%84/</guid>
		<description><![CDATA[今日のびっくり。
&#8216;System.Text.Encoding.GetString(byte[])&#8217; はアクセスできない保護レベルになっています。


Encoding.UTF8.GetString(data);

こんなコードを書くとビルド時エラーになります。
なぜか、Encoding.GetString(Byte[], Int32, Int32)は使えます。

Encoding.UTF8.GetString(data, 0, data.Length);

こうしておけばOK。何だろう、この仕様。

Encoding.GetString メソッド (Byte[]) (System.Text)
Encoding.GetString メソッド (Byte[], Int32, Int32) (System.Text)

]]></description>
			<content:encoded><![CDATA[<p>今日のびっくり。</p>
<blockquote><p>&#8216;System.Text.Encoding.GetString(byte[])&#8217; はアクセスできない保護レベルになっています。</p>
</blockquote>
<div style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;float: none;padding-top: 0px" class="wlWriterEditableSmartContent">
<pre>Encoding.UTF8.GetString(data);</pre>
</div>
<p>こんなコードを書くとビルド時エラーになります。</p>
<p>なぜか、Encoding.GetString(Byte[], Int32, Int32)は使えます。</p>
<div style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;float: none;padding-top: 0px" class="wlWriterEditableSmartContent">
<pre>Encoding.UTF8.GetString(data, 0, data.Length);</pre>
</div>
<p>こうしておけばOK。何だろう、この仕様。</p>
<ul>
<li><a href="http://msdn.microsoft.com/ja-jp/library/744y86tc.aspx" target="_blank">Encoding.GetString メソッド (Byte[]) (System.Text)</a></li>
<li><a href="http://msdn.microsoft.com/ja-jp/library/05cts4c3.aspx" target="_blank">Encoding.GetString メソッド (Byte[], Int32, Int32) (System.Text)</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.loadlimits.info/2010/01/encoding-getstringbyte%e3%81%afsilverlight%e3%81%a7%e4%bd%bf%e3%81%88%e3%81%aa%e3%81%84/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windowsフォームへの、やたら簡単なSilverlightホスティング方法</title>
		<link>http://blog.loadlimits.info/2010/01/windows%e3%83%95%e3%82%a9%e3%83%bc%e3%83%a0%e3%81%b8%e3%81%ae%e3%80%81%e3%82%84%e3%81%9f%e3%82%89%e7%b0%a1%e5%8d%98%e3%81%aasilverlight%e3%83%9b%e3%82%b9%e3%83%86%e3%82%a3%e3%83%b3%e3%82%b0%e6%96%b9/</link>
		<comments>http://blog.loadlimits.info/2010/01/windows%e3%83%95%e3%82%a9%e3%83%bc%e3%83%a0%e3%81%b8%e3%81%ae%e3%80%81%e3%82%84%e3%81%9f%e3%82%89%e7%b0%a1%e5%8d%98%e3%81%aasilverlight%e3%83%9b%e3%82%b9%e3%83%86%e3%82%a3%e3%83%b3%e3%82%b0%e6%96%b9/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 01:44:59 +0000</pubDate>
		<dc:creator>hotpi</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://blog.loadlimits.info/2010/01/windows%e3%83%95%e3%82%a9%e3%83%bc%e3%83%a0%e3%81%b8%e3%81%ae%e3%80%81%e3%82%84%e3%81%9f%e3%82%89%e7%b0%a1%e5%8d%98%e3%81%aasilverlight%e3%83%9b%e3%82%b9%e3%83%86%e3%82%a3%e3%83%b3%e3%82%b0%e6%96%b9/</guid>
		<description><![CDATA[
VisualStudioでフォームをひとつ作ります。
WebBrowserコントロールを配置します。
フォームのLoadイベントに以下を記述。


        private void Form1_Load(object sender, EventArgs e)
        {
            string html = @"&#60;!DOCTYPE html PUBLIC ""-//W3C//DTD XHTML 1.0 Transitional//EN"" ""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd""&#62;
&#60;!-- saved from url=(0014)about:internet --&#62;

&#60;html xmlns=""http://www.w3.org/1999/xhtml"" &#62;
 &#60;head&#62;
  &#60;title&#62;Test&#60;/title&#62;

  &#60;script [...]]]></description>
			<content:encoded><![CDATA[<ol>
<li>VisualStudioでフォームをひとつ作ります。</li>
<li>WebBrowserコントロールを配置します。</li>
<li>フォームのLoadイベントに以下を記述。</li>
</ol>
<div style="padding-bottom: 0px;margin: 0px;padding-left: 0px;padding-right: 0px;float: none;padding-top: 0px" class="wlWriterEditableSmartContent">
<pre>        private void Form1_Load(object sender, EventArgs e)
        {
            string html = @"&lt;!DOCTYPE html PUBLIC ""-//W3C//DTD XHTML 1.0 Transitional//EN"" ""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd""&gt;
&lt;!-- saved from url=(0014)about:internet --&gt;

&lt;html xmlns=""http://www.w3.org/1999/xhtml"" &gt;
 &lt;head&gt;
  &lt;title&gt;Test&lt;/title&gt;

  &lt;script type=""text/xaml"" id=""testXaml""&gt;
&lt;?xml version=""1.0""?&gt;
&lt;Canvas xmlns=""http://schemas.microsoft.com/client/2007""&gt;
 &lt;Ellipse Fill=""Pink"" Width=""200"" Height=""100"" Canvas.Left=""40"" Canvas.Top=""30"" /&gt;
 &lt;Rectangle Fill=""Orange"" Width=""100"" Height=""160"" Canvas.Left=""150"" Canvas.Top=""50"" /&gt;
 &lt;TextBlock Text=""This is text on Silverlight"" Canvas.Left=""10"" Canvas.Top=""150""&gt;
  &lt;TextBlock.RenderTransform&gt;
   &lt;RotateTransform Angle=""-30"" /&gt;
  &lt;/TextBlock.RenderTransform&gt;
 &lt;/TextBlock&gt;
&lt;/Canvas&gt;
  &lt;/script&gt;
 &lt;/head&gt;

 &lt;body&gt;
   &lt;object type=""application/x-silverlight-2"" width=""800"" height=""600""&gt;
   &lt;param name=""source"" value=""#testXaml""/&gt;
  &lt;/object&gt;
 &lt;/body&gt;
&lt;/html&gt;";
            if (webBrowser1.Document == null)
            {
                webBrowser1.Navigate("about:blank");
            }
            webBrowser1.Document.OpenNew(true);
            webBrowser1.Document.Write(html);
        }
</pre>
</div>
<p>結果</p>
<p><a href="http://blog.loadlimits.info/wp-content/uploads/2010/01/20100127103949.png"><img style="border-bottom: 0px;border-left: 0px;border-top: 0px;border-right: 0px" border="0" alt="20100127103949" src="http://blog.loadlimits.info/wp-content/uploads/2010/01/20100127103949_thumb.png" width="247" height="244" /></a></p>
<p>XAMLソースはこちらから拝借。<br />
  <br /><a href="http://journal.mycom.co.jp/column/silverlight/016/index.html" target="_blank">【コラム】The Silverlight Times (16) 覚えておきたい「インラインXAML」 | ネット | マイコミジャーナル</a></p>
<p>WebBrowserの使い方はこちらを参考にしました。<br />
  <br /><a href="http://www.atmarkit.co.jp/fdotnet/dotnettips/773wbdocwrite/wbdocwrite.html" target="_blank">WebBrowserコントロールのコンテンツを文字列により設定するには？［2.0、C#、VB］ － ＠IT</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.loadlimits.info/2010/01/windows%e3%83%95%e3%82%a9%e3%83%bc%e3%83%a0%e3%81%b8%e3%81%ae%e3%80%81%e3%82%84%e3%81%9f%e3%82%89%e7%b0%a1%e5%8d%98%e3%81%aasilverlight%e3%83%9b%e3%82%b9%e3%83%86%e3%82%a3%e3%83%b3%e3%82%b0%e6%96%b9/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pythonのwin32comからSilverlightを使おうと試みる</title>
		<link>http://blog.loadlimits.info/2009/10/python%e3%81%aewin32com%e3%81%8b%e3%82%89silverlight%e3%82%92%e4%bd%bf%e3%81%8a%e3%81%86%e3%81%a8%e8%a9%a6%e3%81%bf%e3%82%8b/</link>
		<comments>http://blog.loadlimits.info/2009/10/python%e3%81%aewin32com%e3%81%8b%e3%82%89silverlight%e3%82%92%e4%bd%bf%e3%81%8a%e3%81%86%e3%81%a8%e8%a9%a6%e3%81%bf%e3%82%8b/#comments</comments>
		<pubDate>Wed, 21 Oct 2009 06:56:25 +0000</pubDate>
		<dc:creator>hotpi</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[疑問]]></category>
		<category><![CDATA[ActiveX]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://blog.loadlimits.info/2009/10/python%e3%81%aewin32com%e3%81%8b%e3%82%89silverlight%e3%82%92%e4%bd%bf%e3%81%8a%e3%81%86%e3%81%a8%e8%a9%a6%e3%81%bf%e3%82%8b/</guid>
		<description><![CDATA[最終的にはPythonで書かれたWindowsアプリケーションで、Silverlightのコンテンツをロードしたいという目的なのですが、とりあえずSilverlightのActiveXコントロールを読み込んで動作を確認してみたいので色々実験。
まず、インストールされているSilverlightのバージョンを調べてみる。
Javascriptで書かれたコードがいくつか見つかったのでそれを書き直す。
以下はJS版。


var control = new ActiveXObject('AgControl.AgControl');
alert(control.IsVersionSupported('3.0'));


これをPythonで書いてみる。

import win32com.client
control = win32com.client.Dispatch("AgControl.AgControl")
print control.IsVersionSupported('3.0')

Silverlight 3がインストールされていればTrueが表示されます。
他にどんなメソッドが定義されているのかを調べるために、Visual StudioからAgControlを参照して、オブジェクトブラウザで調査。
というか、Silverlightのプラグインのリファレンスがあった。
Silverlight プラグインのオブジェクト リファレンス
が…Sourceを指定してもIsLoadedプロパティがTrueにならない…うーん…もう少し調べてみる。
]]></description>
			<content:encoded><![CDATA[<p>最終的にはPythonで書かれたWindowsアプリケーションで、Silverlightのコンテンツをロードしたいという目的なのですが、とりあえずSilverlightのActiveXコントロールを読み込んで動作を確認してみたいので色々実験。</p>
<p>まず、インストールされているSilverlightのバージョンを調べてみる。</p>
<p>Javascriptで書かれたコードがいくつか見つかったのでそれを書き直す。</p>
<p>以下はJS版。</p>
<p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:1fad3344-c133-4716-b122-991f00b3f96e" class="wlWriterEditableSmartContent">
<pre name="code" class="js">var control = new ActiveXObject('AgControl.AgControl');
alert(control.IsVersionSupported('3.0'));
</pre>
</div>
<p>これをPythonで書いてみる。</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:812469c5-0cb0-4c63-8c15-c81123a09de7:2ef33f5a-557a-48de-85a2-d2d00e450645" class="wlWriterEditableSmartContent">
<pre name="code" class="py">import win32com.client
control = win32com.client.Dispatch("AgControl.AgControl")
print control.IsVersionSupported('3.0')</pre>
</div>
<p>Silverlight 3がインストールされていればTrueが表示されます。</p>
<p>他にどんなメソッドが定義されているのかを調べるために、Visual StudioからAgControlを参照して、オブジェクトブラウザで調査。</p>
<p>というか、Silverlightのプラグインのリファレンスがあった。</p>
<p><a href="http://msdn.microsoft.com/ja-jp/library/cc838259(VS.95).aspx" target="_blank">Silverlight プラグインのオブジェクト リファレンス</a></p>
<p>が…Sourceを指定してもIsLoadedプロパティがTrueにならない…うーん…もう少し調べてみる。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.loadlimits.info/2009/10/python%e3%81%aewin32com%e3%81%8b%e3%82%89silverlight%e3%82%92%e4%bd%bf%e3%81%8a%e3%81%86%e3%81%a8%e8%a9%a6%e3%81%bf%e3%82%8b/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
