Hardcore WPF

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 49

Hardcore WPF

(Windows Presentation
Foundation)

casey chesnut
brains-N-brawn.com

Madison .NET 11/06


Source
• Fundamental demos
– http://www.brains-n-
brawn.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 F


• 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/C
– www.brains-N-brawn.com/backRow/
Questions

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy