Hardcore WPF - brains-N

Download Report

Transcript Hardcore WPF - brains-N

Hardcore WPF
(Windows Presentation
Foundation)
casey chesnut
brains-N-brawn.com
Madison .NET 11/06
Source
• Fundamental demos
– http://www.brains-nbrawn.com/artifacts/HardcoreWPF.zip
• /backRow demo
– http://www.brains-N-brawn.com/backRow/
Which of these would
you like to see?
brains-N-brawn.com
• Pervasive Computing
– Tablet PC (MVP 03)
– Compact Framework (MVP 04)
– Advanced Web Services (MVP 05)
– Media Center (MVP 06)
– Speech
– Location Based Services
– Artificial Intelligence
– 3D
OUTLINE
•
•
•
•
Overview
Fundamentals – demos!
Application Models
/backRow demo!
OUTLINE : Overview
Which of these have
you worked with?
Now
• GDI (20 years), GDI+, WinForms
• DirectX (11 years), Direct3D
• Quartz, DirectShow (8 years)
• Problems
– Showing their age
– Each API is different
– Mixing APIs is challenging
Next Gen
• WPF – replaces GDI
• Direct3D – large games, used by WPF
• Media Foundation – ultimately will replace
DirectShow
• MCML –markup language for Media
Center Edition applications
• XNA – small games
WPF
• Compositing
– UI, Documents, Media, 3D, Browser, …
• Declarative programming with XAML markup
• For Designers and Developers
• Rewritten from scratch
–
–
–
–
–
Built on top of Direct3D
Hardware accelerated
Vector based
Resolution independent (1/96 inch)
Retained graphics
Platforms
• Vista
• XP SP2
• Server 2003 SP1
• Renders the same on each
• Remote Desktop transport
• Subsets of WPF (XPS, WPF/E) will make
it to other platforms
Tiers
• Tier 2 – DirectX 9, Shader 2.0, 128 megs
video ram (hardware rendering)
• Tier 1 – DirectX 7, 32 megs video ram
(mixed hw/sw rendering)
• Tier 0 – below (software rendering)
• Defaults to 60 fps
• Anti-aliasing
Timeline
• Pillar of .NET 3.0
– Class libraries built on .NET 2.0
– WPF, WCF, WF, InfoCard
– Past Release Candidate
– Go-live licenses available
• Released with Vista
• “Orcas”, .NET 3.X coming after that
Installation
• Visual Studio 2005
• .NET 3.0 (pre-installed with Vista)
– Runtime
• Windows SDK
– MSBuild, XAMLPad, samples
• Orcas extension for VS 2005
– Visual designer, schemas, project templates
XAMLPad
Microsoft Expression
Interactive Designer
Tools
• Windows SDK
– XAMLPad, Perforator, UISpy, XPS Conformance,
WICExplorer
• VS 2005
– Orcas Extensions (beta)
• Electric Rain Zam 3D
• Mobiform Aurora
• Microsoft Expression
– Graphics Designer
– Interactive Designer
• “Orcas”, Cider
OUTLINE : Fundamentals
• XAML, Application, Navigation, Layout,
Content, Data Binding, Dependency
Property, Styles, Templates, Controls,
Events, Shapes, Documents, Imaging,
BitmapEffects, Animation, Media, Brushes,
3D
HelloWorldXamlPage
HelloWorldCodePage
XAML
• Declarative object instantiation
• Not exclusive to WPF
• Separates UI and logic
–
–
–
–
Common language for Designers and Developers
Parallel development
Localization, Branding
Targeted UI (devices, users, …)
• Tool support
• Supports C# and VB.NET
VS.NET WPF app from
scratch
DragDrop Cider controls
from Toolbox
•
•
•
•
•
•
Application
Global
Message handling
App events (e.g. startup, shutdown)
NavigationService
Properties collection
StartupUri
XamlSyntax
XAML
•
•
•
•
•
Object elements, Attribute syntax
Property elements, Abbreviated syntax
Content syntax
Attached properties, Attached events
Markup extensions
– Binding syntax, Resource syntax
• Xml Namespaces
• Code-behind vs Inline vs Code-only
MainWindowTransparency
Window
• Window
• NavigationWindow
• Page
http://localhost/PageNavigation/PageNavigation.xbap
Navigation
•
•
•
•
•
•
•
NavigationWindow and Frame
Hyperlink
NavigationService
URI, fragment support
Events
Journal
PageFunctions
Events
• RoutedEvents
– Tunneling (Preview*) and Bubbling
•
•
•
•
•
ElementTree
Stylus support for Tablet PCs
Attach handler in XAML or Code
Styles/Templates can handle events
Bind to element with Name or x:Name
PanelLayout
Layout
• Dynamic sizing and positioning
• Panels are key
– Grid, StackPanel, DockPanel, WrapPanel, Canvas, …
• Alignment
– Stretch (Size to container)
– Left, Right, Center (Size to content)
• Margin (parent) and Padding (content)
• Overflow
– Clip, Wrap, Scroll, Scale
ToolTip
Content
• Rich Content
– ContentControl
– HeaderedContentControl
– ItemsControl
– HeaderedItemsControl
InteropWinForm
Interop
• HwndSource, HwndHost
• Interops with WinForms, Win32, DirectX,
…
• ActiveX interop is through WinForms
interop
• Cannot share airspace, so compositing will
not work
TwoWayBinding
Data Binding
• Data models : XML, Objects, DataSets,
WCF, LINQ, …
• Binding syntax
• DependencyProperty
• DataContext, DataTemplate
• INotifyPropertyChanged,
INotifyCollectionChanged
• Modes : OneTime, OneWay, TwoWay,
OneWayToSource
DependencyProperty
• Value depends on some other property
– User for DataBinding, Styles, Animation, …
•
•
•
•
Validation
Inheritance
AttachedProperties
Default values
StyledButton
Styles
•
•
•
•
•
•
•
Similar to CSS
Resources
Setters
Triggers
Inheritance
… Templates
… Animation
TemplateButton
Templates
• Controls are built based on their
functionality
• The default template can be changed to
radically change how the control renders
• The goal is to avoid having to create user
drawn controls
VS.NET Toolbox
Controls
• Comes with a set of standard set of
common controls for UI
• UserControl
– Simple reusable control
– Similar to application development
• Control
– Provides templating
– For reuse between many applications
Shapes
Shapes
• 2D Geometric Shapes
– Ellipse
– Line
– Path
– Polygon
– Polyline
– Rectangle
FlowDocument
File – Print - XPS
Documents
•
•
•
•
Flow vs Fixed (XPS)
Packaging
Document viewing
Typography
– ClearType
– OpenFont
– Font can be deployed with an Application
• Printing
• Annotating
Imaging
Imaging
•
•
•
•
•
•
•
•
BMP, JPEG, PNG, TIFF, WDP, GIF, ICON
BitmapFrame
Rotation
Image, BitmapImage for XAML
CroppedBitamp, FormatConvertedBitmap
Clipping
Stretching
Metadata
BitmapEffect
BitmapEffect
•
•
•
•
•
•
•
Applied to Visuals
Can be chained
Blur
OuterGlow
DropShadow
Bevel
Emboss
AnimatedButton
Animation
• Dependency Properties
• Animation Types : Double, Color, String,
Point, Int32, Path, …
• Targets : From, To, By
• Time based : duration, repetition, start
times, …
• Storyboards : pausing, stopping, resume
• Key-Frame support
MediaInk
Media
• Audio
• Video
Brushes
Brushes
• SolidColorBrush
• Gradients
– LinearGradientBrush
– RadialGradientBrush
• ImageBrush
• DrawingBrush – vector and bitmap
• VisualBrush – any Visual!
ThreeD
3D
•
•
•
•
•
•
•
•
•
Basic 3D Support
Viewport3D
Cameras
Models
Materials
Lights
Transforms
Hit Testing
Animations
OUTLINE : App Models
•
•
•
•
•
Loose XAML
Windows Application
XBAP / WBA
WPF/E
XPS
Loose XAML
• XAML without any code
• Opens in IE
• Can be dynamically generated
Applications
•
•
•
•
•
Windows application
EXE with a Window or NavigationWindow
Installed
Offline and Online
Full access
XBAP / WBA
• Hosted in a browser, IE6 and above
– Other browsers, FireFox with a plugin
• Online only
• Internet zone permissions
• Embed in webpage using IFrame
– Cannot interact with hosting page
• Media Center, Sidebar Gadgets
WPF/E
• Multiple browsers
– Browsers IE5.5+, Mozilla, Firefox, Opera,
Safari
• Multiple platforms
– MS : Win2K+, MAC OS X 10
– 3rd party : Linux, Solaris
• Multiple devices
– Desktop, PPC, SP
WPF/E
•
•
•
•
•
Subset of WPF e.g. no 3D
Shooting for 2 meg runtime install
Object tag for embedding in HTML
WPF + JScript, IL
Public beta bits are late (Q3 06), browser
release (1st half 07), device support (2nd
half 07)
XPS
•
•
•
•
•
XML Paper Specification
Subset of WPF
Fixed immutable layout
Zip format with resources
Viewers can be ported to other platforms
– Open package specification
– XPS
• Vista printer spool format
OUTLINE : /backRow Demo
• brains-N-brawn.com/backRow/
Resources
• Books
– Applications = Code + Markup
– Programming Windows Presentation Foundation
– XAML in a Nutshell
• Forum
Windows Presentation Foundation ("Avalon“)
• Newsgroup
microsoft.public.windows.developer.winfx.avalon
Resources
• Webcasts
http://sessions.mix06.com
• eLearning
Developing Rich Experiences with Microsoft®
.NET Framework 3.0 and Visual Studio® 2005
• Samples
C:\Program
Files\Microsoft\SDKs\Windows\v6.0\Samples\WPFSa
mples.zip
Resources
•
Sites
– http://wpf.netfx3.com/
– WPF Windows SDK Documentation
– My Five Day Course For Hitting the WPF
Curve/Cliff
– www.brains-N-brawn.com/backRow/
Questions