SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

UWPアプリ開発の最前線

急速に進化するUWPアプリのUI
~Windows 10 1809の新コントロール/DataGrid/旧バージョンへのバックポート

UWPアプリ開発の最前線 第9回

以前のWindows 10へのバックポート

Windows UI Library

 「UIの進化が速いのはいいけれど、Windows 10の旧バージョンもサポートしなきゃならんうちには関係ないよ!」。ごもっともです。そんなあなたのために、「Windows UI Library」がリリースされました。

  • Windows 10 1607(14393)から利用可:
    ※それ以前の1507/1511は2017年にサポートがすべて終了しています(「Windows ライフサイクルのファクト シート」参照)
  • 最新のUIを可能な限りサポート:
    ※一部、OSの機能に依存する機能などでサポートされないものもあります
  • プレビュー段階のコントロール:
    Windowsインサイダープログラムに参加していなくても、開発中のコントロールをプレビュー版のWindows UI Libraryで試せます
  • XamlDirect API
    コントロール開発者向けのミドルウェア。C#/VBのコードで直接コントロールを生成。高速ですが記述が冗長になるので、常用するものではありません

 ここでは、Windows UI Libraryを使って、ここまで述べてきた最新のUIを旧バージョンのWindows 10 1703向けのアプリに組み込んでみましょう。

開発環境

 これは一般的な話ですが、ターゲットにする最小バージョンと同じWindows 10を用意します。少なくとも、テスト環境としては用意してください。できれば、開発環境も入れてコーディングやデバッグができるとよいです。

 本来は、最新のWindows 10上で開発していても、ターゲットにした最小バージョンで動かないコードを書いたときはIDEが警告してくれるはずなのです。が、それが完ぺきとは限りません。例えば、Windows 10 1809上で、ターゲットの最小バージョンを1703にして開発するとします。そこで動いていたコードが1703の上に持って行くと動かない、ということが起こりうるのです。

 古いWindows 10上にVisual Studio 2017を入れた場合でも、ターゲットにする最大バージョン用のWindows 10 SDKはインストールしておきます。例えば、ターゲットを1703~1809にするならば、1809用のSDKをインストールしておく必要があります。Visual Studio 2017のインストーラーに出てこないバージョンのWindows 10 SDKも、「Windows SDK とエミュレーターのアーカイブ」ページからダウンロードできます。なお、このようにすると、XAMLエディターがプレビューを表示しなくなるので、UIの記述はXAMLの直書きだけで行うことになります。

Windows UI Libraryを導入する

 まず、前提条件としてVisual Studioは2017以降になります。UWPのプロジェクトを作るときに、最小バージョンは1607(14393)以上、ターゲットバージョンは1803(17134)以上にしなければなりません。

プロジェクトのプロパティ画面で最小バージョンを設定している様子
最小バージョンは14393以上、ターゲットバージョンは17134以上が必須

 次に、NuGetで「Microsoft.UI.Xaml」を検索し、「Microsoft.UI.Xaml」パッケージを導入します。本稿執筆時点ではプレビュー版の「Microsoft.UI.Xaml.Core.Direct」パッケージもありますが、そちらはXamlDirectです。

NuGetパッケージマネージャーで「Microsoft.UI.Xaml」を検索している様子
Windows UI Libraryのパッケージを導入する

 最後に、忘れずにApp.xamlのリソースにXamlControlsResourcesを追加しておきます(次のコード)。

App.xamlにXamlControlsResourcesを追加する
<Application
  ……省略……
  >
  <Application.Resources>
    <XamlControlsResources xmlns="using:Microsoft.UI.Xaml.Controls"/>
  </Application.Resources>
</Application>

次のページ
1703向けアプリで1809の最新機能を使う

関連リンク

この記事は参考になりましたか?

UWPアプリ開発の最前線連載記事一覧

もっと読む

この記事の著者

biac(ばいあっく)

HONDA R&Dで自動車の設計をやっていた機械屋さんが、技術の進化スピードに魅かれてプログラマーに。以来30年ほど、より良いコードをどうやったら作れるか、模索の人生。わんくま同盟の勉強会(名古屋)で、よく喋ってたりする。2014/10~2019/6 Microsoft MVP (Windows Devel...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/11188 2018/11/20 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー