<?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>blog ViolentCoding &#187; Blend</title>
	<atom:link href="http://violentcoding.com/blog/tag/blend/feed" rel="self" type="application/rss+xml" />
	<link>http://violentcoding.com/blog</link>
	<description>for more violent coder</description>
	<lastBuildDate>Tue, 18 Aug 2009 06:11:32 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>[Blend]Canvas.xaml用テンプレートを追加する</title>
		<link>http://violentcoding.com/blog/2007/08/31/archives/31</link>
		<comments>http://violentcoding.com/blog/2007/08/31/archives/31#comments</comments>
		<pubDate>Thu, 30 Aug 2007 16:24:49 +0000</pubDate>
		<dc:creator>e_s_jp</dc:creator>
				<category><![CDATA[Blend]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://violentcoding.com/blog/2007/08/31/archives/31</guid>
		<description><![CDATA[Expression Blendで[ファイル]メニュー &#8211; [新しいアイテムの追加]に、パーシャルクラスを持たないXAMLのみの「Canvas」を追加する方法です。


Canvas.xamlを生成するテンプ [...]]]></description>
			<content:encoded><![CDATA[<p>Expression Blendで[ファイル]メニュー &#8211; [新しいアイテムの追加]に、パーシャルクラスを持たないXAMLのみの「Canvas」を追加する方法です。
</p>
<p>
Canvas.xamlを生成するテンプレート定義を作って、テンプレート用ディレクトリに配置すれば、[新しいアイテムの追加]ダイアログに「Canvas」が追加されます。
</p>
<p><img src='http://violentcoding.com/blog/wp-content/uploads/2007/08/blend1_canvasadd.jpg' alt='Blend1_addNewItem_Canvas' /></p>
<p>&nbsp;</p>
<p>
Blendのテンプレート用ディレクトリは、<br />
<strong>C:\Program Files\Microsoft Expression\Blend 1.0\Templates\ja\</strong>が基本で、さらにその中に言語別の「CSharp」「VisualBasic」というフォルダがあります。
</p>
<p>で、それぞれのフォルダに配置されたテンプレート定義が使用言語プロジェクトの「新しいアイテムの追加」ダイアログで表示されるテンプレートとなります。
</p>
<p>&nbsp;</p>
<p>
テンプレート定義の内訳は、以下の３つです。</p>
<ul>
<li>Canvas.vstemplate</li>
<li>Canvas.xaml</li>
<li>Canvas.png</li>
</ul>
<p>
Canvas.vstemplateが定義ファイルで、Canvas.xamlは追加されるファイル、Canvas.pngはダイアログで表示されるアイコン用です。
</p>
<p>&nbsp;</p>
<p>
<strong>ダウンロード：</strong><br />
Blend1.0用Canvasテンプレート定義：<a href="http://violentcoding.com/blog/download-manager.php?id=2">CanvasTemplate_blend.zip</a><br />
解凍した「Canvas」フォルダを使用する言語用フォルダ内に置いてください。
</p>
<p>
パーシャルクラスのコードを必要としない今回のCanvas.xamlでは、C#・VBを区別する必要が無いので、ResourceDictionaryのテンプレート定義と同じように「ja」直下の<br />
<strong>C:\Program Files\Microsoft Expression\Blend 1.0\Templates\ja\</strong>に３つのファイルを直接配置してもOKです。
</p>
<p>&nbsp;</p>
<p>
「.vstemplate」ファイルでいろいろ設定するんですが、&lt;ProjectItem&gt;タグのSubTypeが&#8221;form&#8221;の場合、ダイアログの「コードファイルを含める」チェックボックス部分が有効になるので、その部分をグレーアウトするために、ResourceDictionaryにならってSubTypeは「Canvas」としておきました。
</p>
<pre>
&lt;ProjectItem TargetFileName="$fileinputname$.xaml" ReplaceParameters="true" SubType="Canvas"&gt;Canvas.xaml&lt;/ProjectItem&gt;
</pre>
<p>&nbsp;</p>
<p>
あんまりWPFアプリケーション作成の場合に使い道は無いですが、Silverlight用のプロジェクトが作成できるBlend2を使う場合には、そこそこメリットがあるかもしれません。
</p>
<hr width="96%"/>
<p>ということで、Silverlight 1.1を作成できるBlend2では、パーシャルクラスを必要としないCanvas.xamlを使用することもあり、そんな場合の単独Canvas.xamlファイルを作成したいときに使えます。
</p>
<p>&nbsp;</p>
<p>
Silverlight 1.1用プロジェクトの場合、UserControlの追加でもCanvasのXAMLファイルが作成されるんですが、VBやC#のコードも作成されるので、CanvasのXAMLを単独で使用したい時には、それらを削除する必要があります。
</p>
<p>
この時、Canvas用テンプレートを用意すれば、VBやC#のコードを削除する手間が省けます。
</p>
<p>&nbsp;</p>
<p>
はい。ただそれだけです。
</p>
<p>&nbsp;</p>
<p>
Blend2 August Previewにテンプレートを追加するには、<br />
まず、<strong>C:\Program Files\Microsoft Expression\Blend 2 August Preview\Templates</strong>に「en」の内容をコピーした「ja」フォルダを作成する必要があります。
</p>
<p>
そしてBlend 1の場合と同じように「ja」直下に「CSharp」「VisualBasic」というフォルダがあります。ちなみに「HTML」というフォルダはSilverlight 1.0用ですね。
</p>
<p>&nbsp;</p>
<p>
<strong>ダウンロード：</strong><br />
Blend2 August Preview用Canvasテンプレート定義：<a href="http://violentcoding.com/blog/download-manager.php?id=3">CanvasTemplate_blend2.zip</a><br />
解凍した「Canvas」フォルダを使用する言語用フォルダ内に置いてください。
</p>
<p>&nbsp;</p>
<p>
「CSharp」とか「VisualBasic」にテンプレート用ファイルを配置するか、「ja」直下に直接ファイルを置くかすれば「新しいアイテムの追加」ダイアログに追加されます。
</p>
<p><img src='http://violentcoding.com/blog/wp-content/uploads/2007/08/blend2_canvasaddorcas.jpg' alt='Blend2 AddItemDialog Orcas' /></p>
<p>&nbsp;</p>
<p>
Blend2 August PreviewではWPFアプリケーション用のプロジェクトの他に、Silverlight 1.1 用に２種類のプロジェクト（Visuau Studio 2005用とVisual Studio 2008 Beta(Orcas)用）があるので、Silverlight用に２つのテンプレート定義を追加します。
</p>
<ul>
<li>Canvas.vstemplate　：WPF用テンプレート定義</li>
<li>Canvas.xaml　：WPF用Canvas.xaml</li>
<li>Canvas_Silverlight2005.vstemplate　：Silverlight 1.1(.NET)用テンプレート定義</li>
<li>Canvas_Silverlight.vstemplate　：Silverlight 1.1(.NET Orcas)用テンプレート定義</li>
<li>Canvas_Silverlight.xaml　：Silverlight用Canvas.xaml </li>
<li>Canvas.png　：ダイアログ用アイコン</li>
</ul>
<p>&nbsp;</p>
<p>
Silverlight用のテンプレート定義では「.vstemplate」内で、<br />
Silverlight(.NET Orcas)用に&lt;templategroupid&gt;を「Silverlight」と指定し、</p>
<ul><strong>&lt;templategroupid&gt;Silverlight&lt;/templategroupid&gt;</strong></ul>
<p>
Silverlight(.NET)のVisual Studio 2005用では「Silverlight2005」とすれば良いみたいです。</p>
<ul><strong>&lt;templategroupid&gt;Silverlight2005&lt;/templategroupid&gt;</strong></ul>
</p>
<p>&nbsp;</p>
<p>
WPF用とSilverlight用でCanvas.xamlが別なのはXAMLのネームスペースが異なるからです。
</p>
<p>
WPFアプリケーション用：</p>
<pre>
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
</pre>
<p></p>
<p>Sliverlight用：</p>
<pre>
xmlns="http://schemas.microsoft.com/client/2007"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
</pre>
</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://violentcoding.com/blog/2007/08/31/archives/31/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
