Visual Studio 2012からある問題なのですが、WPFプロジェクトからBlendを開くことができません。ストアアプリやSilverlightのXAMLファイルからは開けるのに、何故にWPFプロジェクトからは駄目なのか?は謎なのですが…多分、バグですよね、これ。
Blendで開く操作がプロジェクトの種類によって異なる | Microsoft Connect
https://connect.microsoft.com/VisualStudio/feedback/details/781581/blend
VS2012のWPFプロジェクトに、「Blendで開く」メニューを追加する – SourceChord
http://d.hatena.ne.jp/minami_SC/20130407/1365351086
上記のVS2012で、外部ツールを使ってコンテキストメニューに追加する方法はVS2013でも有効です。なので、まあ自分で使う分にはいいか、ってところなんですが…ストアアプリのプロジェクトには「Blendで開く(B)…」があるのだから、どっかで設定はしているハズなんですよ、と思い直して探してみました。
■コンテキストメニューのカスタマイズ
Visual Studio ではメニューやらコンテキストメニューは、カスタマイズが可能です。メニュー部分を右クリックして「カスタマイズ」を選択、そのあとに「カスタマイズ」ダイアログのコマンドタブを開くと、Visual Studio で利用するメニューを変更できます。
このコンテキストメニューの「プロジェクトとソリューション コンテキストメニュー|項目」に、アイテムを右クリックしたときにコンテキストメニューが割り当てられています。これをどうやって探すのかは不明なんですが…勘で見つけるしかないんですかね?
これを見ると、「Blend で開く」が3つ並んでいます。なんで3つ並んでいるのか分かりませんが、「B付き」と「B無し」と、「…無し」ですね。なんか理由があるのかな?と思って、この元ネタを探します。
元ネタを探すのが結構苦労したのですが、「コマンド追加」ボタンをクリックして、「表示」カテゴリの中にあります。ここには「B付き」と「B無し」はあるのですが「…無し」はありません。まあ、良しとしましょう。
さて、ここでストアアプリのコンテキストメニューを見てみると、「B付き」のメニューを使っていることが分かります。「B無し」は何処で使っているのかわかりませんが、ストアアプリのプロジェクトと同じものを使えば動くのかな?と想像ができます。
そんな訳で、先のカスタマイズで「B付き」のBlendで開くを追加すると、WPFプロジェクトにも「Blendで開く」が無事表示されます。めでたし、めでたしと思い気や、実は違うのです。WPFプロジェクトに「Blendで開く」が表示されるようになったのですが、今度はストアアプリのほうに「Blendで開く」が2つ表示されるようになってしまいます。
こんな風に新しく「Blendで追加」を追加すると…
ストアアプリのほうに二重にメニューが出てきてしまいます。
という訳で、なんとなくわかりますね。おそらく、最初の「Blendで開く(B)…」が変な登録の仕方をされているようなのです。
そんな訳で、
- もともとある、「Blend で開く(B)…」を削除する。
- コマンド追加で、「Blend で開く(B)…」を追加する。
という入れ替えをしてやると、無事 WPF でも Blendで開くが表示されます。
ちなみに、二重に「Blendを開く」を追加してしまった場合は「すべてリセット」ボタンで、リセットさせてください。何故か、カスタマイズのダイアログを開くと二重にあるはずの「Blendを開く」メニューがひとつしかなくて、目的のメニューを削除できません(これも多分、不具合)。まあ、2つとも同じ名称なのでどちらを削除していいか分からないので、リセットしかないのですが。
■プロジェクトのコンテキストメニュ―に追加
先の方法は、*.xaml の右クリックのコンテキストメニューなのですが、WPF プロジェクト自体のコンテキストメニューにも追加できます。
プロジェクトのほうは「プロジェクトとソリューション コンテキストメニュー|プロジェクト」のほうの「Bあり」のBlendで開くを、削除→追加します。
これで、ストアアプリやSilverlightのプロジェクトと同じように、WPFプロジェクトでもBlendと行き来が可能になります…って、これは、VS2013のUpdateで直してほしいところ。