| |
| |
Foreword | |
| |
| |
Preface | |
| |
| |
Acknowledgments | |
| |
| |
About this book | |
| |
| |
| |
Introducing Silverlight | |
| |
| |
| |
Silverlight up your life | |
| |
| |
Productivity | |
| |
| |
Performance | |
| |
| |
Portability | |
| |
| |
| |
Why can't we be friends? | |
| |
| |
The developer experience | |
| |
| |
The designer experience | |
| |
| |
| |
XAML | |
| |
| |
Code behind | |
| |
| |
Namespaces | |
| |
| |
Compound properties | |
| |
| |
Attached properties | |
| |
| |
| |
Blending it together | |
| |
| |
| |
Summary | |
| |
| |
| |
Harmony with the web | |
| |
| |
| |
The relationship between Silverlight and the Html Dom | |
| |
| |
The HTML Document Object Model | |
| |
| |
The Silverlight plug-in | |
| |
| |
The Silverlight Object Model | |
| |
| |
| |
Creating a Silverlight plug-in | |
| |
| |
The Silverlight utility file: Silverlight.js | |
| |
| |
Creating an instance of the Silverlight plug-in | |
| |
| |
| |
Integrating a Silverlight plug-in | |
| |
| |
Relating the Silverlight application to the HTML DOM | |
| |
| |
Clarifying the initial experience | |
| |
| |
Handling plug-in events | |
| |
| |
Sending initialization parameters | |
| |
| |
| |
The Silverlight Application Model | |
| |
| |
The manifest file | |
| |
| |
The Silverlight application | |
| |
| |
Application dependencies | |
| |
| |
| |
Interacting with the HTML DOM | |
| |
| |
Managing the web page from managed code | |
| |
| |
Working with the user's browser window | |
| |
| |
Bridging the scripting and managed code worlds | |
| |
| |
| |
Summary | |
| |
| |
| |
Back to the basics: Layout and text | |
| |
| |
| |
A Canvas for your imagination | |
| |
| |
Arranging content of a Canvas | |
| |
| |
The Canvas: packing a punch | |
| |
| |
| |
The StackPanel: Stack 'em deep | |
| |
| |
| |
The power Grid | |
| |
| |
Arranging Grid content | |
| |
| |
Sizing it up | |
| |
| |
Working with the Grid programmatically | |
| |
| |
Customizing cell boundaries | |
| |
| |
| |
Displaying text | |
| |
| |
Font properties | |
| |
| |
Flow control | |
| |
| |
Text properties | |
| |
| |
Spacing | |
| |
| |
| |
The UIElement and FrameworkElement | |
| |
| |
Properties | |
| |
| |
Methods | |
| |
| |
| |
Summary | |
| |
| |
| |
Handling user interaction | |
| |
| |
| |
Understanding device support | |
| |
| |
Capturing the keyboard | |
| |
| |
Trapping the mouse | |
| |
| |
| |
Delivering text controls | |
| |
| |
Handling basic text | |
| |
| |
Collecting sensitive data | |
| |
| |
| |
Button controls | |
| |
| |
The Button | |
| |
| |
The HyperlinkButton | |
| |
| |
The RadioButton | |
| |
| |
The CheckBox | |
| |
| |
| |
The ItemsControl | |
| |
| |
The ListBox | |
| |
| |
The ComboBox | |
| |
| |
The TabControl | |
| |
| |
| |
Date controls | |
| |
| |
Calendar | |
| |
| |
DatePicker | |
| |
| |
| |
Choosing from a numeric range | |
| |
| |
Using the ProgressBar | |
| |
| |
Implementing a Slider | |
| |
| |
| |
Displaying visual prompts | |
| |
| |
Popping up a dialog box | |
| |
| |
Prompting for a file | |
| |
| |
| |
Miscellaneous controls | |
| |
| |
Creating a border | |
| |
| |
Collecting drawings | |
| |
| |
| |
Summary | |
| |
| |
| |
Getting down with data binding | |
| |
| |
| |
Binding with your data | |
| |
| |
Mastering the binding syntax | |
| |
| |
Choosing a binding mode | |
| |
| |
| |
Understanding your data source | |
| |
| |
Binding to a property | |
| |
| |
Binding to an object | |
| |
| |
Binding to a collection | |
| |
| |
| |
Customizing the display | |
| |
| |
Converting values during binding | |
| |
| |
Creating data templates | |
| |
| |
| |
The DataGrid | |
| |
| |
Displaying your data | |
| |
| |
Editing grid data | |
| |
| |
Sorting items | |
| |
| |
| |
Language Integrated Query (LINQ) | |
| |
| |
Introducing LINQ | |
| |
| |
LINQ to Objects | |
| |
| |
LINQ to XML | |
| |
| |
LINQ-ing it together | |
| |
| |
| |
Summary | |
| |
| |
| |
Networking and communications | |
| |
| |
| |
Trust, security, and browser limitations | |
| |
| |
It's all a matter of trust | |
| |
| |
Making your application secure | |
| |
| |
Limitations of the browser | |
| |
| |
| |
Connecting to data sources | |
| |
| |
Using SOAP services | |
| |
| |
Time for a REST | |
| |
| |
| |
Making the data usable | |
| |
| |
Reading POX | |
| |
| |
Converting JSON | |
| |
| |
Reading syndicated feeds | |
| |
| |
| |
Using advanced services | |
| |
| |
WCF service enhancements | |
| |
| |
WCF duplex services | |
| |
| |
Connecting to sockets | |
| |
| |
| |
Summary | |
| |
| |
| |
Managing digital media | |
| |
| |
| |
Stunning audio and video | |
| |
| |
Getting to the source | |
| |
| |
Common properties | |
| |
| |
Audio specifics | |
| |
| |
Video specifics | |
| |
| |
The lifecycle of a media file | |
| |
| |
| |
Playlists: for that web-based mixtape | |
| |
| |
Understanding client-side playlists | |
| |
| |
Using server-side playlists | |
| |
| |
| |
Interactive playback | |
| |
| |
Controlling the play state | |
| |
| |
Timely interaction | |
| |
| |
Going full screen | |
| |
| |
| |
Using protected content | |
| |
| |
Requesting protected content | |
| |
| |
Retrieving the PlayReady components | |
| |
| |
Unlocking protected content | |
| |
| |
| |
Using images in your application | |
| |
| |
Basic imaging | |
| |
| |
Deep Zoom | |
| |
| |
| |
The 7th inning stretch: Dealing with dead space | |
| |
| |
I'll have none of this stretching business | |
| |
| |
Uniform sizing | |
| |
| |
Fill the area | |
| |
| |
UniformToFill | |
| |
| |
| |
Summary | |
| |
| |
| |
Getting a grip on graphics | |
| |
| |
| |
Getting in shape | |
| |
| |
A Line in the sand | |
| |
| |
Rectangle | |
| |
| |
The ellipse | |
| |
| |
Polyline | |
| |
| |
Polygon | |
| |
| |
| |
Geometry | |
| |
| |
Simple geometries | |
| |
| |
Path geometries | |
| |
| |
Composite geometries | |
| |
| |
| |
Brushes | |
| |
| |
SolidColorBrush | |
| |
| |
LinearGradientBrush | |
| |
| |
RadialGradientBrush | |
| |
| |
ImageBrush | |
| |
| |
VideoBrush | |
| |
| |
| |
Transforms | |
| |
| |
RotateTransform | |
| |
| |
ScaleTransform | |
| |
| |
SkewTransform | |
| |
| |
TranslateTransform | |
| |
| |
TransformGroup | |
| |
| |
| |
Blending it together | |
| |
| |
| |
Summary | |
| |
| |
| |
Bringing it to life: Animation | |
| |
| |
| |
Animation: It's about time | |
| |
| |
| |
Mastering the timeline | |
| |
| |
What type of property are you animating? | |
| |
| |
Where are you starting from and where are you going? | |
| |
| |
How long should the animation run? | |
| |
| |
| |
Storyboarding | |
| |
| |
Understanding the storyboard | |
| |
| |
Hitting the target | |
| |
| |
Controlling the Storyboard | |
| |
| |
Being resourceful | |
| |
| |
| |
Key framing | |
| |
| |
Interpolation: It's about acceleration | |
| |
| |
Timing is everything | |
| |
| |
| |
Summary | |
| |
| |
| |
Giving it style | |
| |
| |
| |
Being resourceful | |
| |
| |
Declarative resources | |
| |
| |
Accessing loose resources | |
| |
| |
Bundling resources | |
| |
| |
| |
Giving your elements style | |
| |
| |
Defining the look | |
| |
| |
Targeting style definitions | |
| |
| |
| |
Creating templates | |
| |
| |
Building a control template | |
| |
| |
Creating reusable templates | |
| |
| |
| |
Dealing with visual states | |
| |
| |
Understanding the components | |
| |
| |
| |
Leveraging the VisualStateManager | |
| |
| |
| |
Sharing your effects | |
| |
| |
| |
Summary | |
| |
| |
| |
Enhancing the experience | |
| |
| |
| |
Storing data in isolated storage | |
| |
| |
IsolatedStorageFile: The virtual filesystem | |
| |
| |
Reading and writing files: The isolated storage way | |
| |
| |
Administering the isolated storage | |
| |
| |
| |
Using XAML at runtime | |
| |
| |
| |
BackgroundWorker | |
| |
| |
Doing the work | |
| |
| |
Updating the UI | |
| |
| |
| |
Retrieving content on demand | |
| |
| |
Requesting content | |
| |
| |
Managing larger download requests | |
| |
| |
Loading the content | |
| |
| |
| |
The Dynamic Language Runtime (DLR) | |
| |
| |
Dynamic typing | |
| |
| |
Metaprogramming | |
| |
| |
| |
Summary | |
| |
| |
| |
Share the light: Distribution and deployment | |
| |
| |
| |
Creating a user control | |
| |
| |
Defining the appearance | |
| |
| |
Defining the behavior | |
| |
| |
Calling the control | |
| |
| |
| |
Architecting navigation in Silverlight | |
| |
| |
Setting up the architecture | |
| |
| |
Implementing a navigator | |
| |
| |
Navigating between pages (a.k.a. UserControls) | |
| |
| |
| |
Using a custom splash screen | |
| |
| |
Creating the appearance | |
| |
| |
Integrating the custom splash screen | |
| |
| |
Monitoring the load progress | |
| |
| |
| |
Hosting with Silverlight Streaming | |
| |
| |
Preparing to stream! | |
| |
| |
Pack it up! | |
| |
| |
Ship it! | |
| |
| |
Use it! | |
| |
| |
| |
Summary | |
| |
| |
Index | |