Blend for Visual Studio 2015 プレビュー

マイクロソフト本社の「Blend for Visual Stduio 2015 Preview」の記事を参考にしながら、プレビューで何ができるようになっているかを説明します。最初に、Blend を起動したスクリーン ショットを掲載します。
Blend1

この画像から理解できることは、Blend のルック & フィールが Visual Studio のダークテーマになっており、Visual Studio の IDE と非常に似通っているということです。似通っているだけでなく、多くの機能が Visual Studio と同じになっています。このことを、Visual Studio のユーザー インターフェースとの一貫性(Consistent user interface)と呼んでいます。

  • Visual Studio Online へのサインイン(ユーザー設定情報の保存など)
  • ソリューション エクスプローラー
  • XAML のビジュアル エディタと XAML のコードエディタ
  • など

次に示すのは、XAML エディタの改善機能になります。
Blend2

コンテキスト メニューだけでなく、XAML エディタにおけるインテリセンスのサポートも追加されています。コンテキスト メニューの「定義をここに表示」機能は、まだ使えませんが、「定義へ移動」を呼び出すとオブジェクト ブラウザーが表示されます。

Blend3

オブジェクト ブラウザーも、新しく追加された機能です。今度は、コード エディタを示します。
Blend4

Visual Studio と同じようにコンテキスト メニューを表示しています。「定義をここに表示」を行うと、Visual Studio と同じ動作をします。
Blend5

現在のプレビューでは、ブレーク ポイントは、コンテキスト メニュー、あるいはデバッグ メニューから設定するようになっていますが、インテリセンスを始めとしてかなり Visual Studio のエディタに近づいていることが理解できます。次に、デバッグ時のスクリーン ショットを示します。
Blend6

ローカル変数、イミディエイト ウィンドウ、さらにイミディエイト ウィンドウにおけるインテリセンスなど、Visual Studio と同じようなデバッグ機能がを持つことが理解できます。 Blend for Visual Studio 2013 までは、XAML のデザイン ツールという側面がありましたが、Visual Studio 2015 プレビューでは IDE としての機能が向上していることを試すことができます。もちろん、プレビューですから、まだ出来ないことも多くあります。たとえば、プロジェクト プロパティでターゲット プロファイル(フレームワークのバージョンなど)を変更できますが、ビルド時は指定したプロファイルに切り替わらないようです(.NET 4.5 から .NET 4.5.3に変更しても、エラーになるコードがありました)。

紹介した以外に、NuGetサポートやチーム エクスプローラーなども提供されます。続々と機能強化される一方で、廃止される機能もあります。スケッチ フローは Blend for Visual Studio に搭載されなくなります。スケッチ フローを使ったデザイン イテレーションを実施するには、Visual Studio 2013 を使用するようにしてください。

最後に、.NET Framework 4.6 で提供される透明なチャイルド ウィンドウを説明します。.NET Framework 4.6では、System.Windows.Interop.HwndSourceParameters 構造体に、UsePerPixelTransparency プロパティが追加されます。このプロパティを使用することで、透明なチャイルド ウィンドウ スタイル(GDI) を実現することができます。

 private void button_Click(object sender, RoutedEventArgs e)
{
    IntPtr parentWindowHandle = new WindowInteropHelper(this).Handle;
    HwndSourceParameters windowParams = new HwndSourceParameters("SemiTransparentChildWindow");
    windowParams.ParentWindow = parentWindowHandle;

    //int values of WS_CHLID, WS_CLIPCHILDREN, and WS_VISIBLE
    int styleParams = 0x40000000 | 0x02000000 | 0x10000000;
    windowParams.WindowStyle = styleParams;
    windowParams.UsesPerPixelTransparency = true;
    windowParams.PositionX = 100;
    windowParams.PositionY = 100;
    HwndSource hwndsSrc = new HwndSource(windowParams);

    Ellipse ellipse = new Ellipse();
    ellipse.Width = 100;
    ellipse.Height = 100;
    ellipse.Fill = Brushes.Green;
    ellipse.Opacity = 0.1;
    hwndsSrc.RootVisual = ellipse;
}

そして、アプリケーション マニフェストに次の記述を行います。

 <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
  <application>
    <!--アプリケーションが Windows 8 で動作するように設計されている場合は、次の supportedOS ノードのコメントを解除します—>
    <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"></supportedOS>
  </application>
</compatibility>

アプリケーション マニフェストを記述しないと例外が発生します。実行結果は、次のようになります。
ChildWindows

 

図形である Ellipse が半透明になっていることがわかります。これが、半透明のチャイルド ウィンドウ サポートになります。Visual Studio 2015 プレビューのターゲット フレームワークには、.NET Framework 4.6 がありませんので「.NET Framework 4.5.3」を指定しています。

この機会に、ぜひ Visual Studio 2015 プレビューを使用して、フィードバックをしてください。