次の方法で共有


開発者向け Windows 10 ビルド 10240 の新機能

Windows 10 ビルド 10240 と更新された SDK には、優れたユニバーサル Windows プラットフォーム アプリを作成するためのツール、機能、エクスペリエンスが用意されています。 Windows 10 に ツールと SDK をインストール したら、 新しいユニバーサル Windows アプリを作成 するか、Windows で既存のアプリ コードを使用する方法を調べる準備が整いました。

Windows 10 ビルド 10240 (Windows 10 バージョン 1507 とも呼ばれます) の新機能を次に示します。

アダプティブ レイアウト

特徴 説明
複数の視点で調整されたコンテンツを閲覧 XAML では、同じコード ファイルを共有するカスタマイズされたビュー (.xaml ファイル) を定義するための新しいサポートが提供されます。 これにより、特定のデバイス ファミリまたはシナリオに合わせて調整されたさまざまなビューを簡単に作成および管理できます。 異なるシナリオで大幅に異なる個別の UI コンテンツ、レイアウト、またはナビゲーション モデルがアプリにある場合は、複数のビューを作成します。 たとえば、モバイル アプリで片手で使用できるように最適化された ナビゲーションでピボット を使用し、デスクトップ アプリではマウス用に最適化されたナビゲーション メニューで SplitView を使用できます。
ステートトリガー 新しい VisualState.StateTriggers 機能を 使用すると、ウィンドウの高さ/幅に基づいて、またはカスタム トリガーに基づいて、条件付きでプロパティを設定できます。 以前は、コードで Window SizeChanged イベントを処理し、 VisualStateManager.GotoState を呼び出す必要がありました。
セッター 新しい VisualState.Setters 構文 を使用することで、簡略化されたマークアップで、VisualStateManagerにおけるプロパティの変更 を定義することができます。 以前は、ストーリーボードを使用し、 StackPanel の向きを水平方向から垂直方向に変更するなど、プロパティの変更を適用するアニメーションを作成する必要がありました。 ユニバーサル Windows アプリでは、次の単純な Setter 構文を使用できます。 <setter target="stackPanel1.Orientation" value="Vertical" />

XAML の機能

特徴 説明
コンパイル済みデータ バインディング (x:Bind) ユニバーサル Windows アプリでは、x:Bind プロパティで有効になっている新しいコンパイラ ベースのバインド メカニズムを使用できます。 コンパイラ ベースのバインドは、コンパイル時に厳密に型指定され、処理されます。これはどちらも高速であり、バインドの種類が一致しない場合にコンパイル時エラーが発生します。 また、バインドはコンパイル済みのアプリ コードに変換されるため、Visual Studio でコードをステップ実行して特定のバインドの問題を診断することで、バインドをデバッグできるようになりました。 x:Bind を使用してメソッドにバインドすることもできます。たとえば、 <textblock text="{x:Bind Customer.Address.ToString()}" /> 一般的なバインド シナリオでは、バインドの代わりに x:Bind を使用し、パフォーマンスと保守性を向上させることができます。
リストの宣言型増分レンダリング (x:Phase) ユニバーサル Windows アプリでは、新しい x:Phase 属性を使用すると、コードの代わりに XAML を使用してリストの増分レンダリングまたは段階的レンダリングを実行できます。 複雑な項目を含む長いリストをパンすると、アプリがパンの速度に追いつくほど速く項目をレンダリングできない可能性があるため、ユーザーのエクスペリエンスが低下します。 段階的なレンダリングでは、リスト アイテム内の個々の要素のレンダリングの優先順位を指定できるため、高速パンのシナリオでは、リスト アイテムの最も重要な部分のみがレンダリングされます。 これにより、ユーザーのパンエクスペリエンスがスムーズになります。

Windows 8.1 では、 ContainerContentChanging イベントを 処理し、リスト 項目を段階的にレンダリングするコードを記述できます。 UWP アプリでは、x:Phase 属性を使用して宣言によって段階的なレンダリングを実行できます。 コンパイル済みバインド x:Bind、x:Phase と組み合わせて使用すると、データ テンプレート内のバインドされた各要素のレンダリング優先度を簡単に指定できます。 視点を移動すると、項目をレンダリングする作業はフェーズに基づいて時間分割され、項目の段階的レンダリングが可能になります。
UI 要素の遅延読み込み (x:deferLoadstrategy) ユニバーサル Windows アプリでは、新しい x:deferLoadstrategy ディレクティブを使用して、遅延読み込みするユーザー インターフェイスの一部を指定できます。これにより、起動時のパフォーマンスが向上し、アプリのメモリ使用量が削減されます。 たとえば、不適切なデータが入力された場合にのみ表示されるデータ検証の要素がアプリ UI にある場合は、必要になるまでその要素の読み込みを遅延させることができます。 その後、ページが読み込まれると、要素オブジェクトは作成されません。代わりに、データ エラーが発生し、ページのビジュアル ツリーに追加する必要がある場合にのみ作成されます。
スプリットビュー 新しい SplitView コントロールを使用すると、一時的なコンテンツを簡単に表示および非表示にすることができます。 これは一般的に、ナビゲーション コンテンツが非表示になっている "ハンバーガー メニュー" や、ユーザー アクションの結果として必要に応じてスライドインする "ハンバーガー メニュー" などの最上位のナビゲーション シナリオに使用されます。
RelativePanel RelativePanel は、子オブジェクトを相互にまたは親パネルに対して配置および整列できる新しいレイアウト パネルです。 たとえば、一部のテキストを常にパネルの左側に配置し、ボタンを常にテキストの下に配置するように指定できます。 StackPanel または Grid の使用を呼び出す明確な線形パターンを持たないユーザー インターフェイスを作成する場合は、ReleativePanel を使用します。
カレンダービュー CalendarView コントロールを使用すると、カスタマイズ可能な月ベースのビューを使用して、日付と日付範囲を簡単に表示および選択できます。 CalendarView では、選択できる日付を制限するために、最小、最大、および除外日などの機能がサポートされています。 また、特定の日のスケジュールの一般的な "満杯" を表示するために使用できるカスタム密度バーを設定することもできます。
カレンダー日付選択 CalendarDatePicker は、カレンダービューから 1 つの日付を選択するために最適化されたドロップダウン コントロールで、曜日やカレンダーの完全性などのコンテキスト情報が重要です。 DatePicker コントロールに似ていますが、DatePicker は、生年月日などの既知の日付を選択するために最適化されています。
メディアトランスポートコントロール 新しい MediaTransportControls クラスを使用すると、 MediaElement のトランスポート コントロールを簡単にカスタマイズできます。 Windows 8.1 では、MediaElement の組み込みのトランスポート コントロールを有効にすることも、MediaElement メソッドを呼び出す独自のトランスポート コントロールを作成することもできます。 MediaTransportControls の組み込み機能を使用して、アプリに合わせて外観を簡単にカスタマイズできるようになりました。
プロパティ変更通知 ユニバーサル Windows アプリでは、対応する変更イベントがないプロパティでも、DependencyObjects のプロパティ変更をリッスンできます。 通知はイベントのように動作しますが、実際にはコールバックとして公開されます。 コールバックは、イベント ハンドラーと同様にセンダー引数を受け取りますが、イベント引数は受け取りません。 代わりに、どのプロパティを示すためにプロパティ識別子のみが渡されます。 この情報を使用すると、アプリは複数のプロパティ通知に対して 1 つのハンドラーを定義できます。 詳細については、「RegisterPropertyChangedCallback」と「UnregisterPropertyChangedCallback」を参照してください。
地図 MapControl クラスが更新され、航空写真の 3D 画像と道路レベルのビューが提供されます。 これらの新機能と以前のマッピング機能は、ユニバーサル Windows アプリで使用できるようになりました。 次の API を使用して、アプリにマッピングを追加します: Windows.UI.Xaml.Controls.MapsWindows.Services.Maps。 ユニバーサル Windows アプリでこれらの API の使用を今すぐ開始するには、 Bing Maps デベロッパー センターにキーを要求します。 詳細については、「 マップ アプリを認証する方法」を参照してください。 Windows 10 の新機能として、PC と電話のユーザーは設定アプリからオフライン マップをダウンロードできます。 使用可能な場合、オフライン マップは、インターネット アクセスが利用できないときにマップを表示するために MapControl によって使用されます。
入力ボタンのマッピング Windows.UI.Xaml.Input.KeyEventArgs クラスには、Windows.System.VirtualKey の対応する更新プログラムと共に、キーボード入力イベントに関連付けられている元のマップされていない入力ボタンを取得できる新しい OriginalKey プロパティがあります。
インキング InkCanvas コントロールと基になる InkPresenter クラスのおかげで、C++、C#、または Visual Basic を使用して Windows ランタイム アプリで堅牢なインク機能をより簡単に使用できるようになりました。 InkCanvas コントロールは、インク ストロークを描画およびレンダリングするためのオーバーレイ領域を定義します。 このコントロール(入力、処理、レンダリング)の機能は、InkPresenter 、InkStroke 、InkRecognizers 、および InkSynchronizer クラスによって提供されます。 大事な: これらのクラスは、JavaScript を使用する Windows アプリではサポートされていません。

更新された XAML 機能

特徴 説明
CommandBar と AppBar の更新 CommandBar コントロールと AppBar コントロールが更新され、デバイス ファミリ間で UWP アプリの API、動作、ユーザー エクスペリエンスが一貫しています。

ユニバーサル Windows アプリ用の CommandBar コントロールが改善され、AppBar 機能のスーパーセットが提供され、アプリでの使用方法の柔軟性が向上しました。 Windows 10 のすべての新しいユニバーサル Windows アプリには CommandBar を使用する必要があります。 Windows 8.1 の CommandBar では、ICommandBarElementを実装するコントロール、たとえば AppBarButtonのみを使用できます。 ユニバーサル Windows アプリでは、AppBarButtons に加えて、CommandBar にカスタム コンテンツを配置できるようになりました。

AppBar コントロールが更新され、AppBar を使用する Windows 8.1 アプリをユニバーサル Windows プラットフォームに簡単に移動できるようになりました。 AppBar は、全画面表示アプリで使用し、エッジ ジェスチャを使用して呼び出されるように設計されています。 ウィンドウ化されたアプリや、ウィンドウ 10 でのエッジ ジェスチャの欠如などの問題に対するコントロール アカウントの更新。

以前は Windows Phone でのみ 、Hidden AppBar.ClosedDisplayMode がすべてのデバイス ファミリでサポートされるようになりました。これにより、コマンドに対してさまざまなレベルのヒントを選択できるようになりました。 AppBar では、Windows 8.1 アプリをユニバーサル Windows アプリにアップグレードするときに一貫性を提供する最小限のヒントが既定で表示されます。このアプリでは、プラットフォームでのエッジ ジェスチャのサポートに依存できなくなります。
GridView の更新 Windows 10 より前のバージョンでは、既定の GridView レイアウトの向きは Windows では水平方向で、Windows Phone では垂直方向でした。 UWP アプリでは、GridView では、すべてのデバイス ファミリに対して既定で垂直レイアウトが使用され、一貫した既定のエクスペリエンスが確保されます。
AreStickyGroupHeadersEnabled プロパティ ListView または GridView にグループ化されたデータを表示すると、リストがスクロールされたときにグループ ヘッダーが表示されたままになります。 これは、ヘッダーがユーザーが表示しているデータのコンテキストを提供する大規模なデータ セットで重要です。 ただし、各グループに少数の要素しかない場合は、ヘッダーを項目と共に画面外にスクロールすることが必要な場合があります。 ItemsStackPanel で AreStickyGroupHeadersEnabled プロパティ を設定し、ItemsWrapGrid を してこの動作を制御できます。
GroupHeaderContainerFromItemContainer メソッド ItemsControl にグループ化されたデータを表示する場合は、GroupHeaderContainerFromItemContainer メソッドを呼び出して、グループの親ヘッダーへの参照を取得できます。 たとえば、ユーザーがグループ内の最後の項目を削除した場合、グループ ヘッダーへの参照を取得し、項目とグループ ヘッダーの両方を一緒に削除できます。
「ChoosingGroupHeaderContainer」イベント ListViewBase の新しい ChoosingGroupHeaderContainer イベントを使用すると、ListView または GridView のグループ ヘッダーに状態を設定できます。 たとえば、このイベントを処理して、支援技術のグループを表すようにグループ ヘッダーに AutomationProperties.Nameproperty を設定できます。
ChoosingItemContainer イベント ListViewBase の新しい ChoosingItemContainer イベントを使用すると、 ListView または GridView の UI 仮想化をより詳細に制御 できます。 このイベントを ContainerContentChanging イベントと組み合わせて使用して、必要に応じて引き出すリサイクルされたコンテナーの独自のキューを維持します。 たとえば、フィルター処理によってデータ ソースがリセットされた場合は、既に作成されている一連のビジュアル (ItemContainers) とデータをすばやく照合して、最適なパフォーマンスを実現できます。
リストスクロールの仮想化 XAML ListView コントロールと GridView コントロールには、新しい ListViewBase.ChooseingItemContainer イベントがあり、データ コレクションで変更が発生したときにコントロールのパフォーマンスが向上します。 入り口アニメーションを再生するリストの完全なリセットを行う代わりに、システムは現在表示されている項目をフォーカスと選択状態と共に維持するようになりました。ビューポート内の新しい項目と削除された項目は、スムーズにアニメーション化されます。 コンテナーが破棄されないデータ コレクションの変更後、アプリは "古い" 項目を以前のコンテナーとすばやく照合し、コンテナー ライフサイクル オーバーライド メソッドの処理をさらにスキップできます。 "新しい" 項目のみが処理され、リサイクルまたは新しいコンテナーに関連付けられます。
SelectRange メソッドと SelectedRanges プロパティ ユニバーサル Windows アプリでは、ListView コントロールと GridView コントロールを すると、項目オブジェクト参照ではなく、項目インデックスの範囲で項目を選択できるようになりました。 これは、選択した項目ごとに項目オブジェクトを作成する必要がないため、項目の選択をより効率的に記述する方法です。 詳細については、「ListViewBase.SelectedRangesListViewBase.SelectRange、および ListViewBase.DeselectRange」を参照してください。
新しい ListViewItemPresenter API ListViewGridView は、アイテムプレゼンターを使用して、選択とフォーカスの既定のビジュアルを提供します。 UWP アプリでは、 ListViewItemPresenterGridViewItemPresenter には、リスト アイテムのビジュアルをさらにカスタマイズできる新しいプロパティがあります。 新しいプロパティは、CheckBoxBrush、CheckMode、FocusSecondaryBorderBrush、PointerOverForeground、PressedBackground、SelectedPressedBackground です。
SemanticZoom の更新 SemanticZoom コントロールは、すべてのデバイス ファミリで UWP アプリに対して 1 つの一貫した動作を持つようになりました。 拡大表示と縮小表示を切り替える既定のアクションは、拡大表示ビューでグループ ヘッダーをタップすることです。 これは Windows Phone 8.1 での動作と同じですが、ピンチ ジェスチャを使用してズームする Windows 8.1 からの変更です。 ピンチズームを使用してビューを変更するには、SemanticZoom の内部 ScrollViewer ScrollViewer.ZoomMode="Enabled" に設定します。

ユニバーサル Windows アプリの場合、縮小表示ビューは拡大表示ビューに置き換えられ、置き換えられたビューと同じサイズになります。 これは Windows 8.1 での動作と同じですが、Windows Phone 8.1 からの変更です。この変更により、縮小表示ビューは画面のフルサイズを占め、他のすべてのコンテンツの上にレンダリングされました。
DatePicker と TimePicker の更新 DatePicker コントロールと TimePicker コントロールに、すべてのデバイス ファミリにわたるユニバーサル Windows アプリの一貫した実装が 1 つ追加されました。 また、Windows 10 の新しい外観もあります。 コントロールのポップアップ部分では、すべてのデバイスで DatePickerFlyoutTimePickerFlyout コントロールを使用します。 これは Windows Phone 8.1 での動作と同じですが、 ComboBox コントロールを使用した Windows 8.1 からの変更です。 ポップアップ コントロールを使用すると、カスタマイズされた日付と時刻の選択を簡単に作成できます。
新しい ScrollViewer API ScrollViewer には、タッチ パンの開始と停止時にアプリに通知する新しい DirectManipulationStarted イベントと DirectManipulationCompleted イベントがあります。 これらのイベントを処理して、UI とこれらのユーザー アクションを調整できます。
MenuFlyout の更新 ユニバーサル Windows アプリには、より優れたコンテキスト メニューをより簡単に構築できる新しい API があります。 新しい MenuFlyout.ShowAt メソッドを使用すると、ポップアップを別の要素に対して表示する場所を指定できます。 (また、MenuFlyout はアプリのウィンドウの境界と重なる場合があります)。新しい MenuFlyoutSubItem クラスを 使用して、カスケード メニューを作成します。
ContentPresenter、Grid、StackPanel の新しい Border プロパティ 一般的なコンテナー コントロールには、XAML に Border 要素を追加せずに境界線を描画できる新しい境界線プロパティがあります。 ContentPresenterGridStackPanel には、BorderBrush、BorderThickness、CornerRadius、Padding という新しいプロパティがあります。
ContentPresenter の新しいテキスト API ContentPresenter には、テキスト表示をより詳細に制御できる新しい API が用意されています。LineHeight、LineStackingStrategy、MaxLines、TextWrapping です。
システム フォーカス ビジュアル XAML コントロールのフォーカス ビジュアルは、コントロール テンプレートで XAML 要素として宣言されるのではなく、システムによって作成されるようになりました。 通常、フォーカス ビジュアルはモバイル デバイスでは必要ありません。必要に応じてシステムで作成および管理できるため、アプリのパフォーマンスが向上します。 フォーカス ビジュアルをより詳細に制御する必要がある場合は、システムの動作をオーバーライドし、フォーカス ビジュアルを定義するカスタム コントロール テンプレートを提供できます。 詳細については、UseSystemFocusVisualsIsTemplateFocusTarget を参照してください。
パスワードボックス.パスワード表示モード ユニバーサル Windows アプリでは、デバイス ファミリ間で一貫した動作を提供するために、 PasswordRevealMode プロパティが IsPasswordRevealButtonEnabled プロパティに置き換えられます。 注意: Windows 10 より前では、パスワード表示ボタンは既定では表示されませんでした。ユニバーサル Windows アプリでは、既定で表示されます。 アプリのセキュリティでパスワードが常に隠されている必要がある場合は、必ず PasswordRevealMode を [非表示] に設定してください。
Control.テキストの拡大係数が有効かどうかを設定 Windows Phone 8.1 で使用できた IsTextScaleFactorEnabled プロパティが、すべてのデバイス ファミリのユニバーサル Windows アプリで使用できるようになりました。
自動提案ボックス Windows Phone 8.1 の AutoSuggestBox コントロールは、すべてのデバイス ファミリのユニバーサル Windows アプリで使用できるようになりました。 SearchBox の代わりに使用する必要があります。 AutoSuggestBox は、ユーザーが入力した候補を提供し、タッチ、キーボード、入力メソッド エディターなど、さまざまな入力の種類に対して適切に機能します。 また、 QueryIcon プロパティと QuerySubmitted イベントなど、検索ボックスとしてより適切に機能するための新しいメンバーもいくつか用意されています。
コンテンツダイアログ Windows Phone 8.1 の ContentDialog コントロールは、すべてのデバイス ファミリのユニバーサル Windows アプリで使用できるようになりました。 ContentDialog を使用すると、さまざまなデバイスで最適に動作するカスタマイズ可能なモーダル ダイアログを表示できます。
ピボット Windows Phone 8.1 の ピボット コントロールは、すべてのデバイス ファミリのユニバーサル Windows アプリで使用できるようになりました。 モバイル デバイスとデスクトップ デバイス用のアプリで同じ Pivot コントロールを使用できるようになりました。 ピボットは、画面サイズと入力の種類に基づいてアダプティブ動作を提供します。 ピボット コントロールのスタイルを設定して、各ピボット アイテムのさまざまな情報ビューを使用して、タブのような動作を提供できます。

テキスト

特徴 説明
Windows コア テキスト API 新しい Windows.UI.Text.Core 名前空間は、キーボード入力の処理を 1 つのサーバーに一元化するクライアント サーバー システムを備えています。 これを使用して、カスタム テキスト入力コントロールの編集バッファーを操作できます。 テキスト入力サーバーは、アプリとサーバー間の非同期通信チャネルを介して、テキスト入力コントロールの内容と独自の編集バッファーの内容が常に同期されるようにします。
ベクター アイコン Glyphs 要素には、カラー フォントをサポートするための新しい IsColorFontEnabled プロパティと ColorFontPalleteIndex プロパティがあります。フォント ファイルを使用してフォント ベースのアイコンをレンダリングできるようになりました。 カラー パレットの切り替えに ColorFontPalleteIndex を使用すると、1 つのアイコンを異なるカラー セットでレンダリングできます。たとえば、アイコンの有効バージョンと無効バージョンを表示する場合などです。
[Input Method Editor]\(入力メソッド エディター\) ウィンドウ のイベント ユーザーは、テキスト入力ボックスのすぐ下のウィンドウに表示される入力方法エディターでテキストを入力する場合があります (通常は東アジア言語の場合)。 CandidateWindowBoundsChanged イベントと DesiredCandidateWindowAlignment プロパティを TextBox および RichEditBox で利用することで、IME ウィンドウと連携してアプリの UI をより適切に動作させることができます。
テキスト合成イベント TextBoxRichEditBox には、Input Method Editor を使用してテキストが入力された際に、TextCompositionStarted、TextCompositionEnded、および TextCompositionChanged といった新しいイベントを介してアプリに通知する機能があります。 これらのイベントを処理して、アプリ コードを IME テキスト合成プロセスと調整できます。 たとえば、東アジア言語のインラインオートコンプリート機能を実装できます。
双方向テキストの処理の改善 XAML テキスト コントロールには、双方向テキストの処理を改善するための新しい API が用意されているため、さまざまな入力言語でテキストの配置と段落の方向が向上します。 TextReadingOrder プロパティの既定値が DetectFromContent に変更されたため、読み取り順序の検出のサポートは既定で有効になっています。 TextReadingOrder プロパティは、PasswordBox、RichEditBox、および TextBox にも追加されています。 テキスト コントロールの TextAlignment プロパティを新しい DetectFromContent 値に設定すると、コンテンツから自動的に配置が検出されるようにオプトインできます。
テキスト レンダリング Windows 10 では、XAML アプリのテキストが、ほとんどの状況で Windows 8.1 の約 2 倍の速度でレンダリングされるようになりました。 ほとんどの場合、アプリは変更なしでこの改善の恩恵を受けます。 高速レンダリングに加えて、これらの改善により、XAML アプリの一般的なメモリ消費量も 5%削減されます。

アプリケーション モデル

特徴 説明
Cortana 外部アプリケーションで 1 つのアクションを起動して実行する音声コマンドを使用して、Cortana の基本的な機能を拡張します。 アプリの基本的な機能を統合し、ユーザーがアプリを直接開かずにほとんどのタスクを実行するための中心的なエントリ ポイントを提供することで、Cortana はアプリとユーザーの間の連絡役として機能できます。 多くの場合、ユーザーの時間と労力を大幅に節約できます。 アプリを Cortana キャンバスに統合する方法について説明します。 アイデアが必要な場合は、 ユニバーサル Windows アプリのデザインの基本で、Cortana に固有の設計に関する推奨事項と UX ガイドラインを参照できます。
ファイルエクスプローラー 新しい Windows.System.Launcher.LaunchFolderAsync メソッドを使用すると、エクスプローラーを起動し、指定したフォルダーの内容を表示できます。
共有ストレージ 新しい Windows.ApplicationModel.DataTransfer.SharedStorageAccessManager クラスとそのメソッドを使用すると、URI のアクティブ化を使用して他のアプリを起動するときに共有トークンを渡すことで、ファイルを別のアプリと共有できます。 ターゲット アプリはトークンを引き換えて、ソース アプリによって共有されたファイルを取得します。
設定 LaunchUriAsync メソッドで ms-settings プロトコルを使用して、組み込みの設定ページを表示します。 たとえば、次のコードは、Wi-Fi 設定のページを表示します。 bool result = await Launcher.LaunchUriAsync(new Uri("ms-settings://network/wifi"))

表示できる設定ページの一覧については、「 ms-settings プロトコルを使用して組み込みの設定ページを表示する方法」を参照してください。
アプリ間通信 Windows 10 の新しい アプリ間通信 API により、Windows アプリケーション (および Windows Web アプリケーション) が相互に起動し、データとファイルを交換できるようになります。 これらの新しい API を使用すると、ユーザーが複数のアプリケーションを使用する必要がある複雑なタスクをシームレスに処理できるようになりました。 たとえば、アプリでソーシャル ネットワーキング アプリを起動して連絡先を選択したり、チェックアウト アプリケーションを起動して支払いプロセスを完了したりできます。
アプリ サービス アプリ サービスは、アプリが Windows 10 の他のアプリにサービスを提供する方法です。 アプリ サービスは、バックグラウンド タスクの形式になります。 フォアグラウンド アプリは、別のアプリでアプリ サービスを呼び出して、バックグラウンドでタスクを実行できます。 App Service API のリファレンス情報については、「 Windows.ApplicationModel.AppService」を参照してください。
アプリ パッケージ マニフェスト Windows 10 の パッケージ マニフェスト スキーマ リファレンスの更新には、追加、削除、および変更された要素が含まれます。 スキーマ内のすべての要素、属性、および型の参照情報については、「要素 階層」 を参照してください。

デバイス

特徴 説明
Microsoft Surface Hub Microsoft Surface Hub は、強力なチーム コラボレーション デバイスであり、Surface Hub または接続されたデバイスからネイティブに実行されるユニバーサル Windows アプリ用の大画面プラットフォームです。 大画面、タッチとインクの入力、カメラやセンサーなどの広範なオンボード ハードウェアを活用する、ビジネス専用に設計された独自のアプリを構築します。

ユニバーサル Windows アプリのデザインの基本内で、Surface Hub に固有の設計および UX ガイドラインの推奨事項 をご確認ください。 これらのドキュメントでは、ユニバーサル Windows アプリのレスポンシブ デザイン手法について説明します。

共有共有アプリのサポートの詳細については、「 SharedModeSettings」を参照してください。 新しい InkCanvas コントロールでのインク入力およびマルチポイントのインク機能のサポートの詳細については、「Windows.UI.Input.Inking」と「Windows.UI.Input.Inking.Core」を参照してください。 センサー入力の処理については、「 デバイス、プリンター、センサーの統合」を参照してください。
ロケーション Windows 10 では、場所 である RequestAccessAsync にアクセスするためのアクセス許可をユーザーに求める新しい方法が導入されました。 ユーザーは、設定アプリの場所のプライバシー設定を使用して 、位置情報 データのプライバシーを 設定 します。 アプリがユーザーの位置情報にアクセスできるのは、このデバイスの場所 の 場所がオン になっている (電話の場合は Windows 10 では適用されません)、位置情報サービスの設定 "場所" がオンになっている場合、および [場所を使用できるアプリの選択]で、アプリがオンに設定されている場合のみです。

ユーザーの場所にアクセスする前に RequestAccessAsync を呼び出す必要があります。 その時点で、アプリがフォアグラウンドに存在し、RequestAccessAsync UI スレッドから呼び出す必要があります。 ユーザーが自分の位置情報に対するアクセス許可をアプリに付与するまで、アプリは位置情報データにアクセスできません。
AllJoyn Windows.Devices.AllJoyn Windows ランタイム名前空間には、Microsoft の AllJoyn オープン ソース ソフトウェア フレームワークとサービスの実装が導入されています。 これらの API を使用すると、ユニバーサル Windows デバイス アプリが AllJoyn 主導のモノのインターネット (IoT) シナリオで他のデバイスと参加できるようになります。 AllJoyn C API の詳細については、 AllSeen Alliance のドキュメントをダウンロードしてください。 このリリースに含まれている AllJoynCodeGen ツールを使用して、デバイス アプリで AllJoyn シナリオを有効にするために使用できる Windows コンポーネントを生成します。

手記: Windows 10 IoT Core は、新しいクラスの小型デバイスで使用できるようになりました。これにより、Windows と Visual Studio を使用して "モノのインターネット" (IoT) デバイスを作成できます。 Windows デベロッパー センターでの Windows IoT の詳細を確認します。
モバイルでの API の印刷 (XAML) XAML ベースの UWP アプリからモバイル デバイスを含むデバイス ファミリ間で印刷できる単一の統一された API セットがあります。 Windows.Graphics.Printing 名前空間と Windows.UI.Xaml.Printing 名前空間の使い慣れた印刷関連 API を使用して、モバイル アプリに印刷を追加できるようになりました。
バッテリ Windows.Devices.Power 名前空間のバッテリ API を使用すると、アプリを実行しているデバイスに接続されているバッテリの詳細をアプリで確認できます。 個々のバッテリ コントローラーまたはすべてのバッテリ コントローラーの集計を表す Battery オブジェクトを作成します ( FromIdAsync または AggregateBattery によってそれぞれ作成された場合)。 GetReport メソッドを使用して、対応するバッテリの充電、容量、状態を示す BatteryReport オブジェクトを返します。
MIDI デバイス 新しい Windows.Devices.Midi 名前空間を使用すると、外部 MIDI デバイス、Microsoft GS MIDI ソフトウェア シンセサイザーと直接通信するアプリ、外部デバイスと通信できる A=アプリ、複数のクライアントが同時に 1 つの MIDI ポートにアクセスするシナリオを作成できます。
カスタム センサーのサポート Windows.Devices.Sensors.Custom 名前空間を使用すると、ハードウェア開発者は CO2 センサーなどの新しいカスタム センサーの種類を定義できます。
ホスト ベースのカード エミュレーション (HCE) ホスト カード エミュレーションを使用すると、OS でホストされている NFC カード エミュレーション サービスを実装し、NFC 無線を介して外部リーダー ターミナルと通信することができます。 バックグラウンド タスクをトリガーして NFC 経由でスマートカードをエミュレートするには、 SmartCardTrigger クラスを使用します。 SmartCardTriggerType 列挙型の EmulatorHostApplicationActivated 値を使用すると、アプリは HCE イベントが発生したことを認識できます。

グラフィックス

特徴 説明
DirectX Windows 10 の DirectX 12 では、DirectX の中核となる 3D グラフィックス API である Microsoft Direct3D の次期バージョンが導入されています。 Direct3D 12 グラフィックス を使用すると、低レベルのコンソールのような API の効率とパフォーマンスを実現できます。 Direct3D 12 は、これまで以上に高速かつ効率的です。 これにより、より豊富なシーン、より多くのオブジェクト、より複雑な効果、最新のグラフィックス ハードウェアの使用が可能になります。
ソフトウェアビットマップソース ユニバーサル Windows アプリでは、新しい SoftwareBitmapSource 型を XAML イメージ ソースとして使用できます。 これにより、エンコードされていないイメージを XAML フレームワークに渡して、XAML フレームワークによる画像デコードをバイパスして、すぐに画面に表示できます。 カメラから直接低ラグの写真をレンダリングしたり、カスタムイメージデコーダーを使用したり、DirectX サーフェスからフレームをキャプチャしたり、メモリ内の画像をゼロから作成して XAML で直接レンダリングしたりするなど、はるかに高速な画像レンダリングを実現できます。待機時間が短く、メモリオーバーヘッドが少なくなります。
遠近カメラ ユニバーサル Windows アプリでは、XAML に新しい Transform3D API があります。これにより、パースペクティブ変換を XAML ツリー (またはシーン) に適用できます。これにより、その単一のシーン全体の変換 (またはカメラ) に従ってすべての XAML 子要素が変換されます。 以前は MatrixTransform と複雑な数学を使用してこれを行うことができますが、Transform3D を使用すると、この効果が大幅に簡略化され、効果をアニメーション化することもできます。 詳細については、 UIElement.Transform3D プロパティ、 Transform3DCompositeTransform3DPerspectiveTransform3D を参照してください。

メディア

特徴 説明
HTTP ライブ ストリーミング 新しい AdaptiveMediaSource クラスを使用して、アダプティブ ビデオ ストリーミング機能をアプリに追加できます。 オブジェクトは、ストリーミング マニフェスト ファイルを指すことによって初期化されます。 サポートされているマニフェスト形式には、Http Live Streaming (HLS) と Dynamic Adaptive Streaming over HTTP (DASH) があります。 オブジェクトが XAML メディア要素にバインドされると、アダプティブ再生が開始されます。 使用可能なビットレート、最小ビットレート、最大ビットレートなどのストリームのプロパティは、必要に応じてクエリおよび設定できます。
Media Foundation Transcode Video Processor (XVP) による Media Foundation Transforms (MFT) のサポート Media Foundation Transforms (MFT) を使用する Windows アプリでは、 Media Foundation Transcode Video Processor (XVP) を使用して生のビデオ データを変換、スケーリング、変換できるようになりました。新しい MF_XVP_CALLER_ALLOCATES_OUTPUT 属性を使用すると、Microsoft DirectX ビデオ アクセラレーション (DXVA) モードでも呼び出し元が割り当てたテクスチャに出力できます。 新しい IMFVideoProcessorControl2 インターフェイスを使用すると、アプリでハードウェア効果を有効にし、サポートされているハードウェア効果のクエリを実行し、ビデオ プロセッサによって実行される回転操作をオーバーライドできます。
コード変換 新しい MediaProcessingTrigger API を使用すると、アプリはバックグラウンド タスクでメディア トランスコードを実行できるため、フォアグラウンド アプリが終了した場合でもコード変換操作を続行できます。
MediaElement メディア障害イベント ユニバーサル Windows アプリでは、メディア コンテンツに少なくとも 1 つの有効なストリームが含まれている限り、いずれかのストリームをデコードするエラーが発生した場合でも、 MediaElement は複数のストリームを含むコンテンツを再生します。 たとえば、オーディオとビデオ ストリームを含むコンテンツ内のビデオ ストリームが失敗した場合でも、 MediaElement はオーディオ ストリームを再生します。 PartialMediaFailureDetected は、ストリーム内のストリームの 1 つをデコードできなかったことを通知します。 また、失敗したストリームの種類を確認して、その情報を UI に反映することもできます。 メディア ストリーム内のすべてのストリームが失敗すると、 MediaFailed イベントが発生します。
MediaElement を使用したアダプティブ ビデオ ストリーミングのサポート MediaElement には、アダプティブ ビデオ ストリーミングをサポートする新しい SetPlaybackSource メソッドがあります。 このメソッドを使用して、メディア ソースを AdaptiveMediaSource に設定します。
MediaElement と Image を利用したキャスト MediaElement コントロールと Image コントロールには、GetAsCastingSource メソッド 新しいメソッドがあります。 このメソッドを使用すると、プログラムによって任意のメディアまたはイメージ要素から、Miracast、Bluetooth、DLNA などの幅広いリモート デバイスにコンテンツを送信できます。 MediaElement で AreTransportControlsEnabled を true に設定すると、この機能が自動的に有効になります。
デスクトップ アプリのメディア トランスポート コントロール ISystemMediaTransportControls インターフェイスと関連 API を使用すると、デスクトップ アプリは組み込みのシステム メディア トランスポート コントロールと対話できます。 これには、トランスポート コントロール ボタンを使用したユーザー操作への応答や、現在再生中のメディア コンテンツに関するメタデータを表示するようにトランスポート コントロールの表示を更新することが含まれます。
ランダム アクセス JPEG エンコードとデコード 新しい WIC メソッド IWICJpegFrameEncodeIWICJpegFrameDecode を使用すると、JPEG イメージのエンコードとデコードが可能になります。 また、画像データのインデックス作成を有効にすることもできるようになりました。これにより、大きなメモリ占有領域を犠牲にして、大きな画像に効率的にランダムにアクセスできます。
メディアコンポジションのオーバーレイ 新しい MediaOverlay API と MediaOverlayLayer API を使用すると、メディアコンポジションに静的または動的なメディア コンテンツの複数のレイヤーを簡単に追加できます。 不透明度、位置、タイミングはレイヤーごとに調整でき、入力レイヤー用に独自のカスタム コンポジターを実装することもできます。
新しい効果フレームワーク Windows.Media.Effects 名前空間は、オーディオストリームとビデオストリームにエフェクトを追加するためのシンプルで直感的なフレームワークを提供します。 フレームワークには、カスタムのオーディオおよびビデオ効果を作成し、メディア パイプラインに挿入するために実装できる基本的なインターフェイスが含まれています。

ネットワーキング

特徴 説明
ソケット ソケットの更新には次のものが含まれます。

ソケット ブローカー: ソケット ブローカーは、アプリのライフサイクルの任意の状態で、アプリに代わってソケット接続を確立して閉じることができます。 これにより、提供されるアプリとサービスの検出が容易になります。 たとえば、ソケット ブローカーを使用すると、Win32 サービスは、実行中でない場合でも、受信ソケット接続を受け入れることもできます。

スループットの向上: ソケット スループットは、Windows.Networking.Sockets 名前空間を使用するアプリ用に最適化されています。
バックグラウンド転送の後処理タスク Windows.Networking.BackgroundTransfer 名前空間の新しい API を使用すると、後処理タスクのグループを登録できます。 そのため、アプリは、ユーザーが次回アプリを再開するのを待つ代わりに、フォアグラウンドではない場合でも、バックグラウンド転送の成功または失敗にすぐに対処できます。
広告のBluetoothサポート Windows.Devices.Bluetooth.Advertisement 名前空間を使用すると、アプリで Bluetooth LE 広告を送信、受信、およびフィルターすることができます。
Wi-Fi Direct API の更新 デバイス ブローカーが更新され、アプリを離れることなくデバイスとのペアリングが有効になります。 Windows.Devices.WiFiDirect 名前空間への拡張により、デバイス自体が他のデバイスに対して検出可能になり、着信接続通知を受け取ることができるようになります。

手記: このリリースでは、Wi-Fi Direct 機能の機能強化は UX に組み込まれていません。また、プッシュ ボタン のペアリングのみがサポートされています。 また、このリリースでは、アクティブな接続が 1 つだけサポートされています。
JSON サポートの機能強化 Windows.Data.Json 名前空間では、デバッグ セッション中に JSON オブジェクトを変換するときの既存の標準定義と開発者エクスペリエンスがサポートされるようになりました。

安全

特徴 説明
ECC 暗号化 Windows.Security.Cryptography 名前空間の新しい API では、楕円曲線 (ECC) のサポートが提供されます。これは、有限フィールド上の楕円曲線に基づく公開キー暗号化の実装です。 ECC は RSA よりも数学的に複雑であり、キー サイズが小さくなり、メモリ消費量が削減され、パフォーマンスが向上します。 RSA キーと NIST が承認した曲線パラメーターの代替手段として、Microsoft のサービスと顧客に提供されます。
Microsoft Passport Microsoft Passport は、パスワードを非対称暗号化とジェスチャに置き換える認証の代替方法です。 KeyCredentialManger などの Credentials 名前空間のクラスを使用すると、開発者は暗号化や生体認証の複雑さなしで Microsoft Passport を使用してアプリケーションを簡単に作成できます。
Microsoft Passport for Work Microsoft Passport for Work は、パスワード、スマート カード、仮想スマート カードを使用しない Azure Active Directory アカウントを使用して Windows にサインインするための代替方法です。 このポリシー設定を無効にするか有効にするかを選択できます。
トークン ブローカー トークン ブローカーは、アプリがオンライン ID プロバイダー (Facebook など) に簡単に接続できるようにする新しい認証フレームワークです。 アカウントユーザー名とパスワード管理、合理化された UI などの機能により、ユーザーの認証エクスペリエンスが大幅に向上します。

システム サービス

特徴 説明
パワー バッテリー節約機能が有効または無効になったときに、Windows デスクトップ アプリケーションに通知できるようになりました。 電源状態の変化に対応することで、アプリケーションはバッテリ寿命の延長に役立つ機会を得られます。

GUID_POWER_SAVING_STATUS: この新しい GUID を PowerSettingRegisterNotification 関数を使用して、バッテリーセーバーが有効または無効になったときに通知を受け取ります。

SYSTEM_POWER_STATUS: この構造体は、バッテリ セーバーをサポートするように更新されました。 4 番目のメンバー である SystemStatusFlag (以前の名前は Reserved1) は、バッテリ セーバーが使用されているかどうかを示すようになりました。 GetSystemPowerStatus 関数を使用して、この構造体へのポインターを取得します。
バージョン バージョン ヘルパー関数を使用して、オペレーティング システムのバージョンを確認できます。 Windows 10 の場合、これらのヘルパー関数には新しい関数 IsWindows10OrGreater が含まれています。 システムのバージョンを確認する場合は、非推奨の GetVersionEx および GetVersion 関数ではなく、ヘルパー関数を使用する必要があります。 システム バージョンを取得する方法の詳細については、「システム バージョン の取得」を参照してください。

非推奨の GetVersionEx または GetVersion 関数を使用して OSVERSIONINFOEX または OSVERSIONINFO 構造体のバージョン情報を取得する場合は、これらの構造体に含まれるバージョン番号が Windows 8.1 の場合は 6.3 から Windows 10 の場合は Windows 2012 R2 から 10.0 に増加します。 オペレーティング システムのバージョン番号の詳細については、「オペレーティング システムの バージョン」を参照してください。

また、GetVersionEx または GetVersion 関数を使用して、これらのバージョンの正しいバージョン情報を取得するには、アプリケーションで Windows 8.1 または Windows 10 を具体的にターゲット 必要があります。 これらのバージョンの Windows でアプリケーションをターゲットにする方法については、「アプリケーションを Windows 用にターゲットにする」を参照してください。
ユーザー情報 Windows.System 名前空間の新しい API を使用すると、ユーザー名やアカウントの画像など、ユーザーに関する情報に簡単にアクセスできます。 また、ログインやログアウトなどのユーザー イベントに応答する機能も提供されます。
メモリ管理とプロファイリング Windows.System でのメモリ プロファイル API のサポートはすべてのプラットフォームに拡張され、その全体的な機能は新しいクラスと関数で強化されました。

ストレージ

特徴 説明
Windows Phone で使用できるファイル検索 API アプリの発行元は、アプリ マニフェストに拡張機能を追加することで、公開する他のアプリとストレージ フォルダーを共有するようにアプリを登録できます。 次に、 Windows.Storage.ApplicationData.GetPublisherCacheFolder メソッドを呼び出して、共有ストレージの場所を取得します。 Windows ランタイム アプリの強力なセキュリティ モデルでは、通常、アプリ間でデータを共有できなくなります。 ただし、同じ発行元のアプリで、ユーザーごとにファイルと設定を共有すると便利な場合があります。

ツール

特徴 説明
Visual Studio のライブ ビジュアル ツリー Visual Studio には、新しいライブ ビジュアル ツリー機能があります。 デバッグ中に使用して、アプリのビジュアル ツリーの状態をすばやく把握し、要素のプロパティがどのように設定されたかを確認できます。 また、アプリの実行中にプロパティ値を変更できるため、再起動することなく調整や実験を行うことができます。
トレースログ記録 TraceLogging は、ユーザー モード アプリとカーネル モード ドライバー用の新しいイベント トレース API です。これは 、Windows イベント トレーシング (ETW) に基づいています。 この API は、個別のインストルメンテーション マニフェスト XML ファイルを必要とせずに、コードをインストルメント化し、イベントに構造化データを含める簡単な方法を提供します。 WinRT、.NET、および C/C++ TraceLogging API は、さまざまな開発者対象ユーザーにサービスを提供するために使用できます。

ユーザー エクスペリエンス

特徴 説明
音声認識 ユニバーサル Windows プラットフォームでは、長い形式のディクテーション シナリオに対する継続的な音声認識がサポートされるようになりました。 音声操作ドキュメントで継続的なディクテーションを有効にする方法を参照してください。
さまざまなアプリケーション プラットフォーム間のドラッグ アンド ドロップ機能 新しい Windows.ApplicationModel.DataTransfer.DragDrop 名前空間は、ドラッグ アンド ドロップ機能をユニバーサル Windows アプリに提供します。 以前は、デスクトップ プログラムの一般的なドラッグ アンド ドロップ シナリオ (フォルダーから Outlook メール メッセージにドキュメントをドラッグして添付するなど) は、ユニバーサル Windows アプリでは使用できません。 これらの新しい API を使用すると、ユーザーはさまざまなユニバーサル Windows アプリとデスクトップ間でデータを簡単に移動できます。

アプリ間のドラッグ アンド ドロップをサポートするために、これらの新しい API が XAML に追加されました: ListViewBase.DragItemsCompleted;
UIElement: CanDrag, DragStarting, StartDragAsync, DropCompleted;
DragOperationDeferral, DragUI, DragUIOverride;
DragEventArgs: AcceptedOperation, DataView, DragUIOverride, GetDeferral, 修飾子;
DragItemsCompletedEventArgsDropCompletedEventArgsDragStartingEventArgs
カスタム ウィンドウのタイトル バー デスクトップ デバイス ファミリ用の UWP アプリの場合、 ApplicationViewTitleBar クラスと ApplicationView.TitleBar プロパティと Window.SetTitleBar メソッドを使用して、既定の Windows タイトル バーのコンテンツを独自のカスタム XAML コンテンツに置き換えることができます。 XAML は "システム クロム" として扱われるので、Windows はアプリの代わりに入力イベントを処理します。 つまり、カスタム タイトル バーのコンテンツをクリックしても、ユーザーはウィンドウをドラッグしてサイズを変更できます。

ウェブ

特徴 説明
Microsoft Edge Microsoft Edge は、Windows 10 用に構築された新しい既定のブラウザーです。 最新の JavaScript 機能を含む、Microsoft Edge に含まれる開発者向け機能と標準の詳細と概要については、 Microsoft Edge 開発者ガイドを参照してください。
WebView の閲覧 WebView コントロールは、新しい Microsoft Edge ブラウザーと同じレンダリング エンジンを使用します。 これにより、HTML レンダリングの最も正確で標準に準拠したモードが提供されます。
スレッド外 WebView WebView.ExecutionMode を指定して、別のバックグラウンド スレッドで Web コンテンツの処理と表示を有効にすることができます。 これにより、特定の特定のシナリオでパフォーマンスを向上させることができます。
WebView.UnsupportedUriSchemeIdentified イベント 新しい WebView.UnsupportedUriSchemeIdentified イベントを使用すると、アプリがサポートされていない URI スキームをどのように扱うべきかを決定できます。 このイベントを処理して、アプリがサポートされていない URI スキームのカスタム処理を提供できるようにします。 HTML WebView コントロールについては、MSWebViewUnsupportedUriSchemeIdentified イベントを参照してください。
WebView.NewWindowRequested イベント 新しい WebView.NewWindowRequested イベントを使用すると、WebView 内のスクリプトが新しいブラウザー ウィンドウを要求したときに応答できます。 HTML WebView コントロールについては、 MSWebViewNewWindowRequested イベントを参照してください。
WebView.PermissionRequested イベント 新しい WebView.PermissionRequested イベントを使用すると、WebView コンテンツは、位置情報など、ユーザーからの特別なアクセス許可を必要とする豊富な新しい HTML5 API を利用できます。 HTML WebView コントロールについては、 MSWebViewPermissionRequested イベントを参照してください。
WebView.UnviewableContentIdentified イベント 新しい WebView.UnviewableContentIdentified イベントを使用すると、WebView が PDF ファイルや Office ドキュメントなどの Web 以外のコンテンツに移動したときに応答できます。 HTML WebView コントロールについては、 MSWebViewUnviewableContentIdentified イベントを参照してください。
WebView.AddWebAllowedObject メソッド 新しい WebView.AddWebAllowedObject メソッドを呼び出して、WinRT オブジェクトを XAML WebView に挿入し、その WebView でホストされている信頼された JavaScript から関数を呼び出すことができます。 たとえば、Web コンテンツは、その親アプリが ToastNotificationManager WinRT API を呼び出す必要があることを要求することで、システム通知を表示できます。 HTML WebView コントロールについては、 addWebAllowedObject メソッドを参照してください。
WebView.ClearTemporaryWebDataAsync メソッド ユーザーが XAML WebView 内の Web コンテンツを操作すると、WebView コントロールはそのユーザーのセッションに基づいてデータをキャッシュします。 新しい ClearTemporaryWebDataAsync メソッドを呼び出して、このキャッシュをクリアできます。 たとえば、あるユーザーがアプリからログアウトしたときにキャッシュをクリアして、別のユーザーが前のセッションのデータにアクセスできないようにすることができます。