DsktopBrigde (DACを含む) サンプルについて

今回は、Desktop App Converter のチュートリアル的なサンプルであり、DesktopBridge Sample を紹介します。具体的には、実際のコードを見て頂くとして、この記事ではどのようなサンプルが提供されていて、どのような構造になっているかを解説します。 最初の入門として見るのは、HelloWorldSample か JourneyAcrossTheBridge のサンプルになります。 HelloWorldSample cs フォルダと CentennialPackage フォルダが含まれており、cs フォルダが C# のコンソール アプリケーションになっており、CentennialPackage フォルダは、手作業でAppxを作成するための Appx レイアウト フォルダになっています。このサンプルでは、Desktop App Converter を使用することなく、デスクトップ アプリを Appx パッケージにすることを学習するためのものになっています。 JourneyAccrossTheBridge このサンプルには、ステップ1からステップ5までの5種類が含まれています。学習の流れで説明すると、ステップ1 から ステップ 3が、Windows Forms のデスクトップ アプリを Appx 化 (ステップ1) して、タイル更新を追加(ステップ2)、バックグラウンド タスクを追加(ステップ3) と順番に既存のデスクトップ コードを機能拡張する流れになっています。 ステップ 4 以降は、それまでの流れではなく、UWP のアプリから デスクトップのコードを アプリ サービスとして使用し(ステップ4)、完全な UWP アプリへの移行(ステップ 5)となっています。 ステップ1…

0

Microsoft Tech Summit へ参加させていただきます

11月1日から11月2日に Microsoft Tech Summit が開催されます。このイベントで、急遽、セッションを持つことになりました。「Desktop App Converter で変換したアプリの公開方法」と題して、お話をさせていただきます。9月に正式公開された Desktop App Converter Ver 1.0 を使って、デスクトップ アプリの変換方法から、サイドローディング、そしてストアへ公開するにはどうしたら良いかという話題を説明します。ご興味がありましたら、ご参加ください。

0

de:code 2016 の CLT-004 のサンプルを公開します

いつもながら、遅筆の荒井でございます。de:code 2016では、「CLT-004 Windows 10 におけるアプリの互換性と移行」と「CLT-012 インサイド UWP アプリ」を担当させていただきました。参加されました方は、有難うございました。この記事には、CLT-004 Windows 10 におけるアプリの互換性と移行 で使用したデモのサンプル コードを添付しています。含まれるサンプルは、以下のようになります。 Windows Forms における高 DPI クリップボード ドラッグ & ドロップ 拡張子の関連付けとカスタム プロトコルの関連付け アプリ サービス Northwind アプリ ブローカー アプリ ブローカー:このサンプルはデモで使用していませんが、Windows ランタイム コンポーネント ブローカーを作成するための学習用のものです。 含まれていないデモとしては、Desktop App Converterでサイトー企画様よりデモでの使用を許可していただいた「秀丸エディタ」を変換し、自分で作成した.NET Framework 4.6の WPF アプリを変換し、「Desktop To UWP Project」テンプレートを使用した Windows Photo と連携させたものがあります。この WPF で使用したサンプル コードの基本的な考え方は、アプリ サービスに含まれる「LaunchUrlForResultAsync メソッド」の使い方と同じになりますので、ご興味がある場合は、自分で試してみてください。 サンプル コードの使用に関しては、自己責任でお願いします。 CLT-009 サンプル…

0

マネージ デスクトップ アプリと UWP

Windows ストア アプリの時は、「マネージ デスクトップ アプリと Windows ランタイム」というドキュメントがありました。Windows 10 の UWP アプリのランタイムをデスクトップから使う方法がないかと調べたので、その使い方を簡単にまとめます。 WPF アプリなどのプロジェクトを Visual Studio 2015 で作成します。 ソリューション エクスプローラで、プロジェクトをアンロードします。 アンロードしたプロジェクトのコンテキスト メニューより、コードの編集を行います。 <PropertyGroup> <TargetPlatformVersion>10.0.10586.0</TargetPlatformVersion> </PropertyGroup> 上記のコードをプロジェクト ファイルへ追加して、上書き保存します。 プロジェクトの再読み込みを行います。 参照の追加を行います。 C:\Program Files (x86)\Windows Kits\10\UnionMetadata\Windows.winmd と C:\Program Files (x86)\Microsoft SDKs\NETCoreSDK\System.Runtime.WindowsRuntime\4.0.10\lib\netcore50\System.Runtime.WindowsRuntime.dll の2つへ参照を設定します。 後は、必要なクラスを使用するだけです。 Windows.winmd は、Windows Runtime の参照用のメタデータになります。 System.Runtime.WindowsRuntime.dll が、Microsoft SDKs\NETCoreSDK になっている理由は、UWP アプリが .NET Core がランタイムになっているためです。Windows 8.1 までは、.NET Framework のサブセットという位置づけでしたので、C:\Program…

1

WPF の半透明の子ウィンドウの使い方について

.NET Framework 4.6 のリリースに伴って、WPF では 透過的な子ウィンドウのサポートが提供されました。具体的な使い方としては、WPF チームのブログの The Roadmap for WPF という記事の、コメント欄にサンプル コードがあります。 私も見落としていて、先週末に教えていただいたのですが(有難うございました。見落としていました)、このサンプルを動かすための条件があります。MSDN ライブラリーの.NET Framework の新機能には「Windows 8.1以降」という記述もありました。この透過的な子ウィンドウというのは、半透明なChild Window をサポートするというもので、具体的には HwndSourceParameters.UsesPerPixelTransparency プロパティを使用するというものになります。ドキュメント上の要件は、.NET Framework 4.6以上とだけ記述されていますが、私が確認した限りは Windows 8 以降で動作します。WPF Blogに掲載されていたコードを次に示します。 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 |…

0

Blend for Visual Studio 2015 プレビュー

マイクロソフト本社の「Blend for Visual Stduio 2015 Preview」の記事を参考にしながら、プレビューで何ができるようになっているかを説明します。最初に、Blend を起動したスクリーン ショットを掲載します。 この画像から理解できることは、Blend のルック & フィールが Visual Studio のダークテーマになっており、Visual Studio の IDE と非常に似通っているということです。似通っているだけでなく、多くの機能が Visual Studio と同じになっています。このことを、Visual Studio のユーザー インターフェースとの一貫性(Consistent user interface)と呼んでいます。 Visual Studio Online へのサインイン(ユーザー設定情報の保存など) ソリューション エクスプローラー XAML のビジュアル エディタと XAML のコードエディタ など 次に示すのは、XAML エディタの改善機能になります。 コンテキスト メニューだけでなく、XAML エディタにおけるインテリセンスのサポートも追加されています。コンテキスト メニューの「定義をここに表示」機能は、まだ使えませんが、「定義へ移動」を呼び出すとオブジェクト ブラウザーが表示されます。 オブジェクト ブラウザーも、新しく追加された機能です。今度は、コード エディタを示します。 Visual Studio と同じようにコンテキスト メニューを表示しています。「定義をここに表示」を行うと、Visual Studio と同じ動作をします。…

0

WPF のロードマップ

本記事は、マイクロソフト本社の .NET Blogの記事を勝手に翻訳したものです。 元記事は、The Roadmap for WPF 2014/11/12 AM 7:37 私のオレオレ翻訳なので、翻訳の変更などはこのBlogのコメント欄にフィードバックをください。正確な情報は、オリジナルのBlogを参照するようにしてください。   2006年に WPF (.NET Framework 3.0) を紹介した時の反応は、とても素晴らしいものでした。なぜなら、企業、ISV、マイクロソフトのパートナーは、お客様向けのミッション クリティカル アプリケーションと素晴らしいバーティカル ソリューションを構築するビジネスの中心となる技術として選択してくれたからです。また、現在へ繋がる推進力にもなりました( Visual Studio 2013 で過去60日で開発された新規プロジェクトの 10% が WPF プロジェクトです。WPF は、データ中心のビジネス アプリを構築する情熱的で活力のあるコミュニティを持っています。最近の事例としては、私たちのパートナーである InterKnowlogy が開発した新しい WPF アプリケーションがあります。このアプリは、CNN のプロデューサーがオンエア中の投票におけるデータの構成と検証、中間結果のアップロードを行うために使用しています。投票データは、CNN のMagic Wallに表示されています。Magic Wallの開発には、マイクロソフトの Bing Pulse チームが協力しています。この記事では、WPF プラットフォームのロードマップを取り扱います。ロードマップには、次期 Visual Studio リリースのツールにおける機能強化と投資領域の優先順位が含まれています。 プラットフォームに対する投資領域 今年(2014年)の //build カンファレンスで行ったユーザー調査における示唆や数か月に渡る様々なマーケットで活躍する多くの開発者に対するインタビューを基にして、WPF をより素晴らしいプラットフォームにするための投資領域の優先順を以下に記載します。 パフォーマンス:WPF が、大規模で高パフォーマンスなアプリ(たとえば、Visual Studio や…

0

プログラミング Windows 第6版 下巻に向けて

「プログラミング Windows 第6版」という書籍を使用して、WPF の学習を補助するという目的で、上巻を WPF に置き換えて説明するというエントリーを以下のように記述しました。 XAML とは何か 第1章 マークアップとコード 第2章 XAML 構文 第3章 基本的なイベント処理 第4章 パネルを使った表示 第5章 コントロールとのやりとり 第6章 WinRT と MVVM 第7章 非同期性 第8章 アプリ バーとポップアップ 第9章 アニメーション 第10章 座標変換 第11章 3つのテンプレート 第12章 ページとナビゲーション そして、第1章の記事に書いた目標は、「下巻は自分で WPF に置き換えて学習ができるようになることです」ということでした。今回は、下巻に自分で取り組む場合の簡単な概要を示します。 第14章 ビットマップ WritableBitmap クラスを使用して、ビットマップ オブジェクトを作成する方法を説明しています。Windows 8.1 の話題では、RenderTargetBitmap を説明しています。 WPF XAML でも WritableBitmap クラスを同様に使用することができます。そして、WritableBitmap クラスは、Render メソッドをサポートしていますから、Visual を継承する…

0

プログラミング Windows 第6版 第12章 WPF編

この記事では、「プログラミング Windows 第6版」を使って WPF XAML の学習を支援することを目的にしています。この目的から、書籍と併せて読まれることをお勧めします。 第12章 ページとナビゲーション 本章では、WinRT XAML におけるページとナビゲーションを説明しています。この説明は、XAML 系の UI 技術が提供するナビゲーション メカニズムを採用するのであれば、WPF XAML にも当てはまることが多くなります。もちろん、違いも存在します。最初に、説明するのはどのようなナビゲーションを使用するかというころです。 WinRT XAML では、Frame クラスを使ったナビゲーションを採用した方が良いでしょう。 この理由は、ページの進むや戻るという実装が容易になるからです。 WPF XAML では、Windows Forms と同じようにウィンドウを基準にするのであれば、プログラマーが自由に設計します。 WinRT XAML と同じように Frame クラスを使ったナビゲーションを利用することもできますが、この場合は Window クラスではなく NavigationWindow クラスを使用するという制約があります。 Visual Studio 2013 が提供するプロジェクト テンプレートには、次に示す 4 種類があります。 WPF アプリケーション Window クラスを継承する MainWindow.xaml が含まれます。 WPF ブラウザー アプリケーション Page クラスを継承する Page1.xaml…

0

プログラミング Windows 第6版 第11章 WPF編

この記事では、「プログラミング Windows 第6版」を使って WPF XAML の学習を支援することを目的にしています。この目的から、書籍と併せて読まれることをお勧めします。 第11章 3つのテンプレート 本章では、タイトルにあるように 3種類のテンプレート(コントロール テンプレート、データ テンプレート、アイテム テンプレート)を説明しています。データ テンプレートは、データバインドを行う場合に活用されるもので、ContentControl を継承するクラスで使用されます。コントロール テンプレートは、コントロールの外観を再定義するために使用するもので、マウスなどの動きに応じてコントロールの外観を変化させるアニメーションの定義なども含まれています。最後のアイテム テンプレートは、コレクションをデータ バインドした時に個々のデータに適用されるテンプレートになります。たとえば、リスト ボックスなどのアイテムに適用されるのがアイテム テンプレートです。書籍にも記述がありますが、これらのテンプレートを作成したりカスタマイズするのであれば、Blend for Visual Studio の操作に慣れておくことをお勧めします。その理由は、Blend ではテンプレートをビジュアルに編集することが容易だからです。テンプレートの編集では、Visual Studio のデザイナーは Blend よりも非力になります。 11.1(P494) ボタンのデータ 本節では、Button コントロールの Content プロパティを使ってどのように外観を定義できるかを具体例を使って説明しています。最初に Image オブジェクトを使い、次に Ellipse と LinearGradientBrush を組み合わせてから、テンプレートをリソースに定義することを説明しています。ここまでの説明をしてから、Button に対するスタイル定義を説明するために、SharedStyleWithDataTemplate プロジェクトの MainWindow.xaml の抜粋を示します。 <Window … > <Window.Resources> <Style TargetType=”Button”> <Setter Property=”HorizontalAlignment” Value=”Center” />…

0