WPF Toolkit

マイクロソフト株式会社
ソリューションビジネス統括本部
SE 本部 プリンシパル SE
ジニアス平井(平井昌人)
本資料に掲載されている情報は現時点
で予定されているものであり、今後、
変更される可能性もあります。
当日のセッションで使用する資料は、
内容の変更やスライドの追加を行って
いる場合があります。最新のプレゼン
テーション資料は次のサイトからダウ
ンロードして下さい。
http://www.MasatoHirai.com/Partner/
Release Roadmap
WPF Toolkit
WPF Ribbon
WPF Futures
Visual Studio 2010
WPF 4.0
2005
Visual Studio 2005
codename "Avalon"
2006
.NET Framework 3.0
WPF, WCF VS 2005
Extensions for .NET 3.0
2007
Expression Blend 1.0
.NET Framework 3.5
Visual Studio 2008
2008
Expression Blend 2
.NET Framework 3.5 SP1
Visual Studio 2008 SP1
2009
WPF Futures
WPF Toolkit
WPF Ribbon Preview
More Controls & Tools …
.NET Framework 4.0
Visual Studio 2010
Expression Blend 3
起動(Cold Start)の高速化
エフェクトの拡張
HLSL ピクセルシェーダで
エフェクトを記述
Direct3D との相互運用
BitmapEffect の
HW アクセラレーション
DropShadow と Blur
XBAP の強化
Firefox サポート
Webサービス サポート
.NET Framework Client
Profile
コントロール
Web Browser コントロール
RichTextBox の改善
ListView & ListBox のパ
フォーマンス向上
Container Recycling をサ
ポート
VS2008 WPF デザイナ
プロパティウィンドウの改良
分類 or 名前順
イベントタブ
TabControl デザイン UI
Expander デザイン UI
CodePlex プロジェクト
http://www.codeplex.com/wpf
主にコントロールやツールなどのプレビュー版を提供
ソース、ユニットテスト、サンプルも提供
正式リリースまでに何度かアップデート
よく使われる機能やコントロールはプロダクトやプラットフォー
ムに組み込む
コントロール
コントロール
コントロール
ツール
ツール
ライブラリ...
ツール
ライブラリ...
ライブラリ...
CodePlex
ダウンロード
フィードバック
製品・ランタイム・
SDK へ移動
製品
ランタイム
SDK, Tools
Visual State Manager
DatePicker, Calender
DataGrid
コントロールテンプレートとスタイルの新モデル
状態とその状態でのスタイルおよび遷移のトランジション
を定義
Normal
MouseOver
Pressed
Disabled
Genius
more ...
:
:
:
:
:
赤
0.5 秒で 緑
黄色
灰色
レインボー
WPF Toolkit に Preview 版付属
Blend 3 & .NET 4.0 でサポート
Silverlight 2 の VSM と互換
Blend 2 SP1 WPF プロジェクト
での利用(レジストリ変更&参照追加)
HKLM/Software/Microsoft/Expression/Blend/EnableVSM = 1
参照の追加で \Program Files\WPF Toolkit\WPFToolkit.dll
機能
BlackoutDates
選択不可期間を設定
FirstDayOfWeek
週の開始曜日
SelectionMode
SingleDate
SingleRange
MultipleRange
None
Blackout Dates
DisplayMode
Month
Year
Decade
Style
Selection Mode
多機能 DataGrid コントロール
Windows フォームの DataGrid と類似した機能とデザイン
WPF Toolkit(CodePlex)に含まれ、 .NET 4.0 で統合予定
Sample in "WPF Futures Preview HOL Online"
カラムの自動生成
AutoGenerateColumns = "True"
<my:DataGrid ItemSource = "{Binding}" />
既定で 有効
既定カラムタイプ
DataGridTextBoxColumn
DataGridCheckBoxColumn
DataGridComboBoxColumn
DataGridHyperlinkColumn
行ヘッダー&列ヘッダー
列幅・行高のリサイズ
列のオーダー変更
ソート
編集機能(テンプレート)
CellEditingTemplate
キーボード操作に対応
行高
列順
列幅
編集
スタイリング
カスタム列
CellStyle, RowStyle, ...
Background, AlternatingRowBackground,
カスタム列(テンプレート)
日付 → DatePicker
写真 → Image
割合 → Slider
詳細行(Row Details)
行内にさらに行を追加
DataGrid.RowDetailsTemplate
豊富な行選択モード
デザイン時のサポート
カラムの編集など
行レベルのバリデーションとエラー表示
DataValidationRules, RowValidationErrorTemplate
詳細行
Office 2007 で採用している新 UI コンポーネント
メニューとツールバーが一体化してユーザビリティが向上
Windows 7 では OS コンポーネントに!(Native API)
ワードパッド
ペイント
Office 2007 リボン
WPF Ribbon
T2-402
Windows 7:リボン UI 対応アプリケーションの開発
Office Fluent UI Licensing Requirements 準拠
http://msdn.microsoft.com/officeui/
WPF Ribbon の特徴
コーディングなしでリサイズ時のビヘイビアを設定
RibbonCommand による UI とロジックの分離
☓ コントロール ⇔ イベントハンドラ(コードビハインド)
〇 コントロール ⇔ コマンドシステム ⇔ コードビハインド
Office 2007 と Win7 のスキンをビルトイン
RibbonWindow によるタイトルバーへのインテグレート
RibbonWindow
Quick Access Toolbar
Tab
Application Menu Item
Group
Contextual Tab
WPF Ribbon モデル
RibbonCommand
Ribbon
RibbonTab
RibbonGroup
RibbonButton, ...
RibbonApplicationMenu
QuickAccessToolbar
RibbonWindow
ApplicationMenu を追加
<Window.Resources>
<r:RibbonCommand x:Key="CutCommand"
CanExecute="CanExecute"
LabelTitle="切り取り"
ToolTipTitle="切り取り"
LargeImageSource="Cut.png" />
<r:RibbonCommand x:Key="PasteCommand"
CanExecute="CanExecute"
LabelTitle="貼り付け"
ToolTipTitle="貼り付け"
LargeImageSource="Paste.png" />
</Window.Resources>
<DockPanel>
<r:Ribbon DockPanel.Dock="Top"
Title="ジニアスのリボン">
<r:RibbonTab Label="タブA">
<r:RibbonGroup>
<r:RibbonButton
Command="{StaticResource CutCommand}"/>
<r:RibbonButton
Command="{StaticResource PasteCommand}"/>
</r:RibbonGroup>
</r:RibbonTab>
</r:Ribbon>
</DockPanel>
ビジネスアプリケーションのための優れた UI
Sample in "Southridge Hands-on-Lab"
Shader Effects
Client Profile Configuration Designer
Performance Profiling Tools for WPF
BitmapEffect
Bevel, Blur*, DropShadow*, Emboss,
OuterGlow
* .NET 3.5 SP1 で HW アクセラレーション
ShaderEffect(Pixel Shader)
HLSL(High Level Shading Language)で Pixel Shaderを記述
UIElements.Effect プロパティで指定
Shader Effects BuildTask and Templates
CodePlex の WPF Futures で公開
TransitionEffects も提供
イメージを別のイメージにトランジションできる
Ripple, ZoonBlur, Swirl, Magnify, Pixelate,...
Unmanaged InterOP は .NET 4.0でさらに改善予定
DirectX, XNA, GDI, ...
.NET Framework Client Profile
クライアント専用の .NET Framework サブセット
.NET Framework Redistributable の軽量化と高速化
Windows Forms, WPF, WCF
.NET 3.5 SP1 は 26.5 MB(フルで 197 MB)
Webインストーラは 280 KB
.NET 4.0 は Side-by-Side リリース
In-Process サイド・バイ・サイド をサポート
CLR2.0 + CLR4.0
Client Profile Configuration
Designer
Client Profile を利用したインストール
の簡略化とブランディングを行うツール
http://www.codeplex.com/wpf/Release/
ProjectReleases.aspx?ReleaseId=14962
Visual Studio Team System(VSTS)
TDD:Test Driven Development
MVC アプリケーションへの対応
T3-311
VSTS 2010 概要
Performance Profiling Tools for WPF
WPFのパフォーマンスを解析するツール
アニメーションやエフェクトの
パフォーマンス測定に便利
http://windowsclient.net/wpf/perf/
wpf-perf-tool.aspx
WPF Application Quality Guide
High-Quality WPF アプリのためのガイド
とテストツール & API
Data-Driven Testing, UI Testing, Performance & Scalability Testing,
Globalization & Localization Testing, more...
http://windowsclient.net/wpf/white-papers/wpf-app-quality-guide.aspx
Composite Application Guidance for WPF
http://msdn.microsoft.com/ja-jp/library/dd365013.aspx
柔軟性を持った 複合 WPF クライアント アプリケーション
のデザインおよび構築ガイド
日本語化完了!
Composite Application Library
再利用可能なライブラリ コード
ドキュメント
クイックスタート
チュートリアル
Big Goal
データ
バインディング
自動
レイアウト
プロパティ編集
の簡易化
スタイリング
Silverlight
開発との共通化
XAML 編集作業
の最小限化
リソース(スタイル)の適用
XAML 編集なしでのスタイルの選択と適用
スタイルのビジュアル管理
プロパティ編集
Blend ライクな Property Editor
Brush, Color, Font, Image, ...
Smart Tag
共通プロパティのインライン編集
Auto Layout
"Size to Content" ドリブンレイアウト
UserControl, Page, ...
デザイナによるサポート
※ ほとんどの機能は次の Build 以降で実装予定
デザイン時のデータバインディングを強化
データソース ウィンドウからのドラッグ&ドロップをサポート
プロパティ ウィンドウを拡張
Blend ライクなバインディング設定が可能
データテンプレートの編集機能
値コンバータのサポート
XAML インテリセンスの強化
デザイン時のサンプル
データ
画面デザイン時に実データ
へのアクセス不要
プロジェクト初期段階での
未実装データ層の問題を解決
※ ほとんどの機能は次の Build 以降で実装予定
データソース ウィンドウ
から WPF デザイナに
ドラッグ&ドロップ
WPF 4.0
XAML 2009
New Features & New Controls
BASICS
UX
TOOLS
テキスト描画の改善
マルチタッチ
アプリとラインタイ
ムの配置の容易化
新コントロール
Visual State
Manager
DataGrid
デザイナの改良
データバインディング
プロパティ編集
アクセシビリティと
ローカライズの改善
Ribbon UI
パフォーマンス向上
エフェクト
アニメーション
DX, XNA, GDI との
InterOP の改善
Performance Tool
メディア拡張
RAD LOB 対策
(H.264 on Win7)
XAML エディタ
WPF Toolkit
DataGrid
DatePicker
Calendar
WPF Ribbon Preview
Ribbon
今後の開発予定
Chart
Masked Edit
Smart Edit
Spinner
Auto Complete
PickList
Property Grid
DeepZoom
XAML Specifications
[MS-XAML], [MS-WPFXV], [MS-SLXV], XPS の仕様公開済み
System.Xaml.dll CTP(公開予定)
http://go.microsoft.com/fwlink/?LinkId=132499
Parser の高速化
BAML Read / Write API の追加
XAML 2009
名前参照の向上
Generics サポート
ビルトインタイプ
ファクトリメソッド
プロパティ定義
<Label Target="{x:Reference TextBox1}">
<ObservableCollection x:TypeArguments="Class1">
<x:String>, <x:Char>, <x:Dictionary>,...
<Guid x:FactoryMethod="Guid.NewGuid" />
<x:SchemaType.Members><x:SchemaProperty ...
More ...
T3-402
XAML2009 : .NETにおける宣言型プログラミングの進化
4.0 and Beyond
GPU のさらなる活用
PS 3.0 対応(現在の WPF は PS 2.0)
多くの処理を GPU へオフロード
Software BitmapEffects 廃止予定
ShaderEffect(Pixel Shaders)
Vertex Shaders, ShaderGroup,
WPF 3D でシェーダをサポート
レンダリングクオリティの向上
Direct Write によるテキスト描画の向上
Pixel レベルの Layout Snapping
Media の改善
MediaControl
フルスクリーンのサポート
H.264 on Win 7
T2-402
Windows 7:グラフィックス API 詳解
WPF Multi-Touch サポート
UIElements と UIElements3D を対応
基本コントロールをアップデート
Gesture イベント
TouchGestureStarted,
TouchGestureChanged, TouchGestureEnded
Microsoft Surface
Touch イベント
TouchDown, TouchMove, TouchUp,
TouchEnter, TouchRelease
Mouse イベント ≒ Touch イベント
Touch > Stylus > Mouse
マルチタッチ対応コントロールの提供
ScrollViewer, from Surface Controls, ...
マルチキャプチャのサポート
T2-302
Windows 7:マルチタッチ アプリケーションの開発
Windows 7
WPF Multi-Touch リソース
.NET Framework 4.0 で提供
.NET 4.0 Preview Releases in 2009
.NET 3.5 Update
Windows 7 発売時期に提供予定
Surface SDK 2.0 と互換維持
Native
Application
Win
Forms
WPF
Application
Surface
Application
GUI
Surface SDK 2.0
Managed
Wrapper
and
Interop
WPF 4.0
API & Controls
Windows 7 Multi-Touch API
Surface
Hardware
NUI
PC46 WPF Roadmap
PC45 Data-centric Applications Using the DataGrid and
Ribbon Controls
PC27 WPF and the Microsoft .NET Framework: Sharing Skills
and Code
TL36 Declarative Programming Using XAML
PC07 Extensible BitmapEffects, Pixel Shaders, and WPF
Graphics Futures
TL49 Overview and Applications for Babies
PC03 Developing Multi-touch Applications
PC14 Windows 7 Scenic Ribbon: The next generation user
experience for presenting commands in Win32
PC17 Developing for Microsoft Surface
https://sessions.microsoftpdc.com/public/timeline.aspx
CodePlex
http://www.codeplex.com/wpf/
WPF Toolkit、WPF Futures、WPF Ribbon Preview
WindowsClient.NET
http://windowsclient.net/wpf/
Performance Profiling Tools for WPF
WPF Application Quality Guide
MSDN ライブラリ
http://msdn.microsoft.com/ja-jp/library/ms754130.aspx
Windows Presentation Foundation
Genius Personal Download
http://www.MasatoHirai.com/Partner/
セミナー資料 & デモ
T3-301
Visual Studio 2010 & .NET Framework 4.0 概要
T3-402
XAML2009 : .NETにおける宣言型プログラミングの進化
T2-305
Sliverlight の未来: コントロールとモバイル対応
T2-301
Day2 13:15@RoomE
Windows 7:タスクバーを活用したアプリケーションの開発
T2-401
Day2 16:05@RoomE
Windows 7:リボン UI 対応アプリケーションの開発
T2-402
Day2 16:05@RoomB
Windows 7:グラフィックスAPI詳解
T2-302
Day2 17:30@RoomE
Windows 7:マルチタッチ アプリケーションの開発
優れたユーザーエクスペリエンスを提供する
デスクトップアプリケーションの作成を可能
にします
ファーストクラスのデスクトッププレゼンス
を実現します
ハードウェアの能力を最大限に活用します
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market
conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.
MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.