WPF 4

WPF 4の革新 画像



WPF(Windows Presentation Foundation)は、開発者がリッチでさまざまなWindowsアプリケーションを作成できるようにする.NET Frameworkカーネルのコンポーネントの1つです。 WPF 4には、特にコントロール、XAML、テキスト、グラフィックス、Windows 7の統合(マルチタッチ、タスクバーへの統合など)、操作の基本原則、展開の分野で、生産性、生産性、機能の重要な改善が含まれています。 。 これは、イノベーションを説明するシリーズの最初の記事にすぎません。



VS 2010のWPFおよびSilverlightコンストラクターで行われる重要な変更について説明する別の記事を作成します。



コントロール



豊富なアプリケーションを構築するためのコントロール 画像



WPF 4は、ビジネスアプリケーションをさらに高速かつ簡単にするためのさまざまなコントロールを追加します。 新しい豊富なコントロールセットには、DataGrid、DatePicker、CalendarなどのLOBが必要なコントロールが含まれます。 これらの新しいコントロールは、振る舞いが99%で、Silverlightの対応するAPIと互換性があるため、開発者は互換性のあるWebおよびクライアントアプリケーションを作成し、SilverlightおよびWPFコードを再利用してワークフローを合理化できます。



トリック



また、「WPF Bag O 'Tricks」と呼ばれる8つのコントロールのセットをリリースします。 セットには、AnimatingTilePanel、ColorPicker、InfoTextBox、ListPager、NumericUpDown、Reveal、TransitionsPresenter、TreeMapPanelが含まれます。



Windows 7およびOfficeリボンコントロール



新しいWPFリボンコントロールは、WPF 4のリリース後すぐに使用可能になります。エンドユーザーが使い慣れているすべての標準機能をサポートします。ブックマークとグループ、動的サイズ変更、クイックアクセスパネル、アプリケーションメニュー、コンテキスト依存ブックマーク、ホットキーなど。



画像



WPFリボンは、将来のリリースでのマニュアルの変更に対応するために完全に拡張可能です。 現在、限定されたCTPバージョンが利用可能です。



グラフィックス



キャッシュされたアプリケーションの構築

画像

新しいWPF4機能-キャッシュコンポジションを使用すると、パフォーマンスを大幅に向上させることができます。これにより、ライブおよび完全にインタラクティブなコントロール、ベクタージオメトリ、ビデオメモリに保存されたビットマップなど、任意のコンテンツをキャッシュできます。 要素をキャッシュに一度配置するだけで、キャッシュされた要素を再描画することなく、任意に変換、アニメーション、制御、効果を適用できます。



これはすべて、CPUとGPUがコンテンツを再描画するのを防ぎ、GPUがキャッシュから直接再描画できるようにします。 キャッシュは「ダーティ」領域を理解するため、たとえば、キャッシュされたテキストブロックで点滅するカーソルは、フレーム間でカーソルを再描画するだけで済みます。 「スマート」キャッシュを使用する新しいブラシもあります。実際には、パフォーマンスが向上したVisualBrushです。



サードピクセルシェーダーのサポート



WPFは、WPF 3.5 SP1で最初に導入された人気のShaderEffectのサポートに基づいており、第3バージョンのピクセルシェーダーを使用してエフェクトを作成できます。 PS 3.0はPS 2.0よりも複雑であるため、サポートされているハードウェアで魅力的な効果を作成できます。



レイアウト



WPF 4は、Silverlight 2で導入されたUseLayoutRoundingプロパティを採用しました。レイアウトエンジンは、サブピクセルの位置座標を計算することがよくあります。 これにより、要素がサブピクセル境界の接合部に位置し、いくつかの物理ピクセルにわたって平滑化されている場合、レンダリング時にアーティファクトが発生します。



UseLayoutRoundingは、レイアウトエンジンがすべてのピクセル境界に沿って要素を配置するように強制します。したがって、この問題によって引き起こされるレンダリングアーティファクトのほとんどが削除され、デフォルトでクリーンでクリアなUIを作成できます。



アニメーションを容易にする機能

画像

離散アニメーション、線形アニメーション、スプラインアニメーションは、以前のバージョンのWPFで既にサポートされています。 WPF 4には、開発者がさまざまなアニメーションを作成できる新しいイージング関数の概念が導入されています。 たとえば、弾力性のある動きやアニメーションへのリードの追加。 イージング関数は、アニメーションを最初から最後まで開始する方法を決定します。 組み込みの簡素化機能は、アニメーションにさまざまなモードを提供します:円形、指数、弾性、弾力性。 単純化機能は、開発者が独自に作成できるように、簡単に拡張できるように設計されています。 この革新により、デザイナーはスムーズでオーガニックなアニメーションを簡単に作成できます。



クリアタイプヒント



新しい追加プロパティCleartypeHintを使用すると、アプリケーション開発者は、多くの状況で以前は無効にされていたCleartypeテキストの高品質なレンダリングを有効にできます。 このような状況には、レイヤードウィンドウのテキスト、VisualBrush、DrawingBrush、BitmapCacheBrushのテキスト、および中間レンダリングビューが白黒テキストで前の結果になる場所が含まれます。



テキストスタック



テキストをレンダリングするための新しいスタック



WPF テキストレンダリングスタックは完全に置き換えられました。これにより、テキストレンダリングの精度が大幅に向上し、設定を変更する機能と国際言語のサポートが向上しました。 この新しいテキストスタックは、Win32 / GDIで同等のテキストシャープネスでテキストを表示するために最適化された文字レイヤーをサポートします。



画像



新しいスタックは、エイリアス、グレースケール、ClearTypeなどの明示的に選択可能なテキストレンダリングモードもサポートしています。



画像



新しいテキストスタックにより、アニメーションと静的のテキストバインディングを最適化できます。 さらに、新しいテキストスタックは、統合されたイメージカードを備えたフォントをサポートします。これにより、Win32ユーザーが慣れている明快さで多くの東アジアフォントを描画できます。



バインド可能ラン



WPFのリリースでは、Run.Textは単純なCLRプロパティでした。 これは、Run.TextにはWPFのプロパティ依存システムのすべての利点が欠けていることを意味します。最も重要なのはバインディングです。 WPF 4では、Run.Textを依存プロパティに変換し、開発者がRun for Dataを初めて使用できるようにしました。 これについての詳細はこちら



自分の辞書



WPFにはスペルチェックが含まれており、バージョン4まではOSが提供する辞書を使用していました。 これは、特定の用語を使用するアプリケーションにとって大きな問題でした;これらのアプリケーションは、つづりのスペル通知に悩まされていました。 WPF 4は、WPFがスペルチェックに使用する辞書に単語を追加できるAPIを導入しています。 これについての詳細はこちら



選択ブラシとキャリッジ



開発者がWPFアプリケーションのリッチな外観をカスタマイズできるようにするため、ブラシを変更して、SelectionBrushとCaretBrushの2つの単純なプロパティを使用してテキストとキャリッジを選択できるようになりました。



画像



Windows 7



マルチタッチのサポート

画像

マルチタッチ入力と処理操作のサポートの導入により、WPF 4はWindows 7でクライアントアプリケーションに海賊行為を追加する優れた方法を提供します。新しい操作と慣性イベントが登場しました。



Windows 7インターフェイスとの統合



WPF 4は、WPF開発者向けにWindows 7の新しい重要な機能を提供します。 新しいタスクバーは散らかり、より多くの情報を伝えることができます。 Aeroアイコンはユーザーコマンドをサポートします。 ジャンプリストは、アプリケーションのタスクとファイルのコンテキスト起動へのアクセスを提供します。



WPF 4は、次のようなWindows 7ジャンプリスト機能と統合されます。 画像 以下を含むパネル統合タスクWindows 7:

Windows 7では、タスクバーが完全に再設計され、数回のクリックでタスクを完了する際の煩雑さを軽減し、ユーザーの支援を向上させました。 WPF 4は、XAMLのWindows 7タスクバーとの統合を提供し、オーバーレイアイコン、進行状況インジケーター、アイコンバー、タスクバーのアイコン説明テキスト、ウィンドウサムネイルを使用して、アプリケーションがタスクバーのアイコンを通じてユーザーに有用な情報を表示できるようにします。

依存関係プロパティとして拡張された新しいTaskbarItemInfoクラスも登場しました。 Windows 7のタスクバーのすべての新機能が含まれています。



アイコンオーバーレイ 画像



オーバーレイアイコンを使用すると、アプリケーションはタスクバーの独自のボタンを介して特定の通知とステータスをユーザーに表示し、ボタンの右下隅に表示される小さなオーバーレイを表示できます。



進捗インジケータ



タスクパネルのボタンを使用すると、進行状況に関する簡単な情報を表示でき、ユーザーはウィンドウを開いてステータスを表示する必要がなくなります。 進行状況インジケータを使用して、ファイルのコピー、ダウンロード、インストール、ディスクへのデータの書き込み、または一定の時間がかかる別の操作のプロセスを追跡できます。



サムネイルツールバー

画像

サムネイルパネルを使用すると、ユーザーがアプリケーションウィンドウをアクティブ化または最大化する必要なく、アプリケーションの主要なコマンドにアクセスできます。 この機能により、アプリケーション開発者はアプリケーションコントロールをウィンドウのサムネイルに直接埋め込むことができます。 アプリケーションは、現在の状態に応じて、サムネイルパネルのボタンを有効化、無効化、または非表示にできます。



WPFの基本



新しいXAML / BAMLパーサーエンジン



WPF 4では、XamlReader.Load()の実装、BAMLロード、Control&DataTemplate機能は、新しいSystem.Xaml.dllに基づいて構築された新しいエンジンに置き換えられました。 取り組みの一環として、多くのバグを修正し、多くの新しい機能改善を追加しました。 XamlReader.Load()ユーザーは、ジェネリック型のサポートなど、XAML2009のいくつかの新しい言語機能を利用できます。 MarkupExtensionsおよびTypeConvertersは、オブジェクトグラフを作成することで多くのサービスにアクセスできるようになり、ルートオブジェクトへのアクセスなど、より多くのスクリプトを実行できるようになりました。 System.Xaml.dllで提供される新しい低レベルAPIを使用して、XAMLを分析および操作するためのツールを作成するのがさらに簡単になります。



DLRのデータバインディングサポート



CLRクラスとは異なり、動的オブジェクトのメンバーは実行時に宣言されます。 DynamicObjectは、開発者がIDynamicMetaObjectProviderを簡単に実装できるようにする.NET Framework 4の新しい抽象クラスです。 新しい「dynamic」キーワードを使用したC#のDLRサポートにより、一部のライブラリ実装は、ランタイム宣言されたプロパティおよびオブジェクト文字を拡張する標準的な方法としてDynamicObjectおよびIDynamicMetaObjectProviderの使用に移行する予定です。 WPF 4のIDynamicMetaObjectProviderのデータバインディングサポートにより、通常のプロパティを使用して動的プロパティにアクセスできます。



この機能は、WPFのデータバインディングエンジンを拡張して、既存のプロパティとインデクサーにバインドされたデータにアクセスする構文を示し、提案されたIDynamicMetaObjectProviderの動的メンバーへのアクセスをサポートします。



ビジュアルステートマネージャー(VSM)



もう1つの新しい機能は、VisualStateManagerのWPF-Silverlight連続体です。これは、コントロールの視覚状態を適用する新しい簡単な方法を導入します。 このメカニズムにより、コントロールの外観と動作をカスタマイズし、対応する視覚状態の開始と終了に制御ロジックを示す手段を提供できます。



画像



VSMは、対応する状態への遷移のアニメーションを非常に柔軟に生成するため、コントロールの作成者はコードの記述に費やす時間を減らし、コードを見る時間を増やします。 これは、VSMがコントロールの作成者に、コントロールの動作と外観を簡単に変更できるだけでなく、ユーザーアクションに対するコントロールの視覚的応答を変更できることを意味します。 これらはすべてExpression Blendで完全にサポートされています。



HTML-XBAPスクリプト相互運用



WPF 4は、XBAPとホストされたHTMLページ(XBAPがHTMLフレームまたはIFRAME要素に読み込まれる)内のスクリプト間の直接通信のための機能を提供します。 XBAPは、含まれているHTMLページに埋め込まれたActiveXコントロールを含むHTML DOMに深くアクセスし、DOMイベントを処理できます。



WPFは、ホストされたフレームでメインスクリプトオブジェクトを開きます。 これは、フレームウィンドウオブジェクト、およびHTMLページのスクリプト内の関数またはグローバル変数を表す動的オブジェクトです。 これから、アプリケーションはスクリプト関数を直接呼び出すか、HTML DOMにアクセスできます。 この機能は、部分信頼XBAPと、サポートされているすべてのバージョンのInternet ExplorerおよびFirefoxで使用できます。



UIAutomation仮想化



WPFは、以前のバージョンで仮想化されたコントロールを導入しました。 ただし、仮想化されたコントロールとの対話をクライアントが自動化する標準化された方法はありませんでした。 WPF 4では、コントロールの2つの新しいテンプレート-ItemsContainerPatternとVirtualizedItemPatternが追加され、仮想化された要素へのアクセスと対話をサポートします。 ItemsContainerPatternは、仮想化されたコントロールにアクセスして仮想化されたアイテムを検索するために使用され、VirtualizedItemPatternは仮想化されたアイテムを実装するために使用されます。



SynchronizedInputテンプレート



これは、WPF 4に追加された別のUIAコントロールデザインパターンです。このテンプレートは、フレームワークによって正しいWPF要素への指定された入力イベントの方向を追跡するためにオートメーションクライアントによって使用されます。 このテンプレートには、InputReachedTargetEvent、InputReachedOtherElementEvent、およびInputDiscardedEventの3つの自動化イベントがあり、入力が処理されたかどうかを示します。



展開



.NET Framework 4クライアントプロファイル



.NET 4フレームワークの展開サイズと時間を最適化するために、 .NET Framework 4 CLient Profileと呼ばれる完全な.NET 4フレームワークのサブセットである.NETのコンパクトバージョンがあります。 .NET Framework 4 Client Profileディストリビューションの現在のサイズは約30 MBです。 Microsoft .NET Framework 4のフルバージョンは、Client Profileのわずかに高度なバージョンです。



Client Profileには、ほとんどの一般的なデスクトップアプリケーション(Windows FormsおよびWPFアプリケーションを含む)の機能が含まれているため、ほとんどの開発者は完全なバージョンではなくこのバージョンに焦点を合わせることが期待されます。 このため、ほとんどのVisual Studio 2010 Beta 2クライアントプロジェクトテンプレートは、デフォルトで.NET Framework 4 Beta 2クライアントプロファイルを対象としています。



.NET Framework 3.5 SP1 Client Profileとは異なり、バージョン4は、フルバージョン(Windows Vista、Windows XP、Windows Servers 2003および2008、Windows 7、x86とx64の両方)でサポートされるものを含む、すべてのオペレーティングシステムとプラットフォームをサポートします。



プロジェクトプロパティを開き、[アプリケーション]タブを選択することで、開発のガイドとなるフレームワークのバージョンを表示および変更できます。 次に、「ターゲットフレームワーク」ドロップダウンリストでフルバージョンまたはクライアントプロファイルを選択します。 プロジェクトの「公開」プロパティで、ClickOnce配置に必要なバージョンを選択することもできます。 Beta2では、VS2010は、プロジェクトの主な焦点に応じて、正しいプロファイルを自動的に選択します。



画像



「セットアップと展開」プロジェクトの作成時に同じダイアログボックスが表示されます(「新しいプロジェクトの追加」/「その他のプロジェクトタイプ」)。 NET4クライアントプロファイルは、デフォルトリストで強調表示されます。



.NET 3.5 SP1クライアントプロファイルに関する.NET4クライアントプロファイルの改善



クライアントプロファイルの概念は新しくなく、.NET Framework 3.5 SP1で導入されたという事実にもかかわらず、クライアントプロファイルのバージョン4にはいくつかの重要な改善が含まれています。



.NET Framework 4クライアントプロファイル(新規) .NET Framework 3.5 SP1クライアントプロファイル
対応OS .NET FrameworkをサポートするすべてのプラットフォームおよびOSでサポート(IA64およびW2K8のサーバーコアの役割を除く) .NET FrameworkのバージョンがインストールされていないWindows XP 32ビットでのみサポートされています。
配布 標準またはWebダウンロード ウェブからのみダウンロード
プログラムコンポーネントの追加/削除 フレームワークのフルバージョンは、クライアントプロファイルと「拡張」の2つの部分で構成されています。 これにより、「プログラムの追加と削除」で2つのポイントが得られます。



フレームワークのフルバージョンをインストールした場合、「拡張」を削除してクライアントプロファイルに切り替えることができます
[プログラムの追加と削除]の1つのアイテムのみ
ビジュアルスタジオ Visual Studio 2010でのクライアントプロファイルのターゲティングのサポートの改善。



既定では、Visual Studio Beta2のほとんどのクライアントプロジェクトは.NET4クライアントプロファイルに焦点を当てています。
Visual Studio SP1の唯一のチェックマークは、.NET 3.5プロジェクトのアプリケーションプロジェクトを設定するためのタブにあります。 VS 2008では、すぐに使用できるClient Profileサポートは使用できません。
特徴 .NET 4の新機能(Managed Extensibility Framework(MEF)、C#4 Dynamic Keywordなど)が含まれます。これは、以前の.NET 3.5のフルバージョン(音声、WPFスペルチェックなど)で提示されたものです。 .NET 3.5 SP1のフルバージョンの機能のサブセット




.NET 4フレームワークをインストールする場合、システムに以前のバージョンをインストールする必要はありません。 したがって、.NET 4.0クライアントプロファイルのインストールは、.NET 3.5 SP1クライアントプロファイルよりも数倍高速です。



XBAPアプリケーションの完全信頼展開



WPF 4以降、ClickOnce特権エスカレーションリクエストはイントラネットおよび信頼ゾーンのXAMLブラウザーアプリケーション(XBAP)にも含まれており、完全信頼XBAPアプリケーションの展開がさらに容易になります。 最小限のコードアクセス権(CAS)よりも高いセキュリティ権限を必要とするアプリケーションの場合、必要な権限でXBAPを実行するには、ClickOnce権限を昇格するように求められたときに「実行」を選択する必要があります。



おわりに



上記からわかるように、WPF 4.0には多くの革新があります。以下に、新機能をさらに詳しく調べることができるリンクとリソースをいくつか示します。



All Articles