contents
preface
acknowledgments
about this book
about the cover illustration
Part 1 Introducing Silverlight
- 1 Introducing Silverlight
- 1.1 Silverlight and the web
- 1.2 Silverlight and WPF
- 1.3 Types of Silverlight applications
- 1.4 What’s new since the first edition
- 1.5 Getting started with Silverlight development
- 1.6 Building your first Silverlight web application
- 1.7 Summary
- 2 Core XAML
- 2.1 XAML basics
- 2.2 Object trees and namescope
- 2.3 XAML extensions and type converters
- 2.4 Loading XAML at runtime
- 2.5 Tools for working in XAML
- 2.6 Summary
- 3 The application model and the plug-in
- 3.1 The Silverlight application model
- 3.2 Creating the Silverlight plug-in
- 3.3 Integrating the Silverlight plug-in
- 3.4 Summary
- 4 Integrating with the browser
- 4.1 Silverlight and the HTML DOM
- 4.2 Managing the web page from managed code
- 4.3 Working with the user’s browser window
- 4.4 Bridging the scripting and managed code worlds
- 4.5 Hosting HTML in Silverlight
- 4.6 Summary
- 5 Integrating with the desktop
- 5.1 Silverlight out of the browser
- 5.2 Creating out-of-browser applications
- 5.3 Escaping the sandbox—elevated trust
- 5.4 Local file access
- 5.5 COM automation
- 5.6 Controlling the host window
- 5.7 Running in full screen
- 5.8 Storing data in isolated storage
- 5.9 Summary
- 6 Rendering, layout, and transforming
- 6.1 The UIElement and FrameworkElement
- 6.2 The rendering process
- 6.3 The layout system
- 6.4 Render transforms
- 6.5 3D projection transforms
- 6.6 Summary
- 7 Panels
- 7.1 Canvas 172 n Arranging content of a Canvas
- 7.2 The StackPanel
- 7.3 The Grid
- 7.4 Summary
- 8 Human input
- 8.1 Capturing the keyboard
- 8.2 Mouse input
- 8.3 Using multi-touch
- 8.4 Collecting ink drawings
- 8.5 Summary
- 9 Text
- 9.1 The text system
- 9.2 Displaying text
- 9.3 Embedding fonts
- 9.4 Entering and editing text
- 9.5 Entering and displaying rich text
- 9.6 Summary
- 10 Controls and UserControls
- 10.1 Control
- 10.2 ContentControl
- 10.3 Button controls
- 10.4 ItemsControls
- 10.5 Creating UserControls
- 10.6 Summary
Part 2 Structuring your application
- 11 Binding
- 11.1 Binding with your data
- 11.2 Understanding your binding source
- 11.3 Customizing the display
- 11.4 Creating data templates
- 11.5 Summary
- 12 Data controls: DataGrid and DataForm
- 12.1 The DataGrid
- 12.2 The DataForm
- 12.3 Annotating for display
- 12.4 Summary
- 13 Input validation
- 13.1 The validation example source and UI
- 13.2 Exception-based property validation
- 13.3 Synchronous validation with IDataErrorInfo
- 13.4 Asynchronous validation with INotifyDataErrorInfo
- 13.5 Annotating for validation
- 13.6 Comparison of validation approaches
- 13.7 Summary
- 14 Networking and communications
- 14.1 Trust, security, and browser limitations
- 14.2 Connecting to data sources
- 14.3 The client HTTP stack
- 14.4 Making the data usable
- 14.5 Using advanced services
- 14.6 Connecting to other Silverlight applications
- 14.7 Summary
- 15 Navigation and dialogs
- 15.1 Browser navigation background
- 15.2 The Navigation Application template
- 15.3 Navigating to pages
- 15.4 Navigation out of the browser
- 15.5 Showing dialogs and pop-ups
- 15.6 Summary
- 16 Structuring and testing with the MVVM/ViewModel pattern
- 16.1 Project setup and traditional code-behind approach
- 16.2 Model-View-ViewModel basics
- 16.3 Factoring out reusable code
- 16.4 Better separation from the UI
- 16.5 Testing
- 16.6 Summary
- 17 WCF RIA Services
- 17.1 WCF RIA Services architecture, tooling, and template
- 17.2 Exposing data with the domain service
- 17.3 Filtering, sorting, grouping, and paging
- 17.4 Updating data
- 17.5 Loose coupling: using presentation models
- 17.6 Business logic
- 17.7 Authentication and authorization
- 17.8 Summary
Part 3 Completing the experience
- 18 Graphics and effects
- 18.1 Shapes
- 18.2 Geometry
- 18.3 Brushes
- 18.4 Effects
- 18.5 Summary
- 19 Printing
- 19.1 How Silverlight printing works
- 19.2 Printing onscreen Information
- 19.3 Multipage printing dedicated trees
- 19.4 Summary
- 20 Displaying and capturing media
- 20.1 Audio and video
- 20.2 Playlists
- 20.3 Interactive playback
- 20.4 Using protected content
- 20.5 Using the Silverlight Media Framework
- 20.6 Working with raw media
- 20.7 Using the webcam
- 20.8 Summary
- 21 Working with bitmap images
- 21.1 Basic imaging
- 21.2 Creating images at runtime
- 21.3 Deep Zoom
- 21.4 Dealing with dead space
- 21.5 Summary
- 22 Animation and behaviors
- 22.1 Animation: it’s about time
- 22.2 Mastering the timeline
- 22.3 Storyboarding
- 22.4 Keyframing
- 22.5 Easing functions
- 22.6 Behaviors, triggers, and actions
- 22.7 Summary
- 23 Resources, styles, and control templates
- 23.1 Being resourceful
- 23.2 Giving your elements style
- 23.3 Creating templates
- 23.4 Dealing with visual states
- 23.5 Sharing your visual states
- 23.6 Summary
- 24 Creating panels and controls
- 24.1 Creating a custom panel
- 24.2 Creating a custom control
- 24.3 Summary
- 25 The install experience and preloaders
- 25.1 Handling the “Silverlight not installed” scenarios
- 25.2 Using a custom preloader
- 25.3 Summary
 
appendix Database, connection, and data model setup
index