Thursday, January 12, 2012

FREE eBook: Programming Windows Phone 7, by Charles Petzold, from Microsoft

FREE eBook: Programming Windows Phone 7, by Charles Petzold, from Microsoft
The book "Programming Windows Phone 7" is a gift from the Windows Phone 7 team at Microsoft to the programming community. Within the pages that follow, it show you the basics of writing applications for Windows Phone 7 using the C# programming language with the Silverlight and XNA 2D frameworks.

Download link:

TABLE OF CONTENTS

Part I The Basics

1 Hello, Windows Phone 7

Targeting Windows Phone 7

The Hardware Chassis

Sensors and Services

File | New | Project

A First Silverlight Phone Program

The Standard Silverlight Files

Color Themes

Points and Pixels

The XAP is a ZIP

An XNA Program for the Phone

2 Getting Oriented

Silverlight and Dynamic Layout

Orientation Events

XNA Orientation

Simple Clocks (Very Simple Clocks)

3 An Introduction to Touch

Low-Level Touch Handling in XNA

The XNA Gesture Interface

Low-Level Touch Events in Silverlight

The Manipulation Events

Routed Events

Some Odd Behavior?

4 Bitmaps, Also Known as Textures

XNA Texture Drawing

The Silverlight Image Element

Images Via the Web

Image and ImageSource

Loading Local Bitmaps from Code

Capturing from the Camera

The Phone’s Photo Library

5 Sensors and Services

Accelerometer

A Simple Bubble Level

Geographic Location

Using a Map Service

6 Issues in Application Architecture

Basic Navigation

Passing Data to Pages

Sharing Data Among Pages

Retaining Data across Instances

The Multitasking Ideal

Task Switching on the Phone

Page State

Isolated Storage

XNA Tombstoning and Settings

Testing and Experimentation

Part II Silverlight

7 XAML Power and Limitations

A TextBlock in Code

Property Inheritance

Property-Element Syntax

Colors and Brushes

Content and Content Properties

The Resources Collection

Sharing Brushes

x:Key and x:Name

An Introduction to Styles

Style Inheritance

Themes

Gradient Accents

8 Elements and Properties

Basic Shapes

Transforms

Animating at the Speed of Video

Handling Manipulation Events

The Border Element

TextBlock Properties and Inlines

More on Images

Playing Movies

Modes of Opacity

Non-Tiled Tile Brushes

9 The Intricacies of Layout

The Single-Cell Grid

The StackPanel Stack

Text Concatenation with StackPanel

Nested Panels

Visibility and Layout

Two ScrollViewer Applications

The Mechanism of Layout

Inside the Panel

A Single-Cell Grid Clone

A Custom Vertical StackPanel

The Retro Canvas

Canvas and ZIndex

The Canvas and Touch

The Mighty Grid

10 The App Bar and Controls

ApplicationBar Icons

Jot and Application Settings

Jot and Touch

Jot and the ApplicationBar

Elements and Controls

RangeBase and Slider

The Basic Button

The Concept of Content

Theme Styles and Precedence

The Button Hierarchy

Toggling a Stopwatch

Buttons and Styles

TextBox and Keyboard Input

11 Dependency Properties

The Problem Illustrated

The Dependency Property Difference

Deriving from UserControl

A New Type of Toggle

Panels with Properties

Attached Properties

12 Data Bindings

Source and Target

Target and Mode

Binding Converters

Relative Source

The “this” Source

Notification Mechanisms

A Simple Binding Server

Setting the DataContext

Simple Decision Making

Converters with Properties

Give and Take

TextBox Binding Updates

13 Vector Graphics

The Shapes Library

Canvas and Grid

Overlapping and ZIndex

Polylines and Custom Curves

Caps, Joins, and Dashes

Polygon and Fill

The Stretch Property

Dynamic Polygons

The Path Element

Geometries and Transforms

Grouping Geometries

The Versatile PathGeometry

The ArcSegment

Bézier Curves

The Path Markup Syntax

How This Chapter Was Created

14 Raster Graphics

The Bitmap Class Hierarchy

WriteableBitmap and UIElement

The Pixel Bits

Vector Graphics on a Bitmap

Images and Tombstoning

Saving to the Picture Library

Becoming a Photo Extras Application

15 Animations

Frame-Based vs. Time-Based

Animation Targets

Click and Spin

Some Variations

XAML-Based Animations

A Cautionary Tale

Key Frame Animations

Trigger on Loaded

Animating Attached Properties (or Not)

Splines and Key Frames

The Bouncing Ball Problem

The Easing Functions

Animating Perspective Transforms

Animations and Property Precedence

16 The Two Templates

ContentControl and DataTemplate

Examining the Visual Tree

ControlTemplate Basics

The Visual State Manager

Sharing and Reusing Styles and Templates

Custom Controls in a Library

Variations on the Slider

The Ever-Handy Thumb

Custom Controls

17 Items Controls

Items Controls and Visual Trees

Customizing Item Displays

ListBox Selection

Binding to ItemsSource

Databases and Business Objects

Fun with DataTemplates

Sorting

Changing the Panel

The DataTemplate Bar Chart

A Card File Metaphor

18 Pivot and Panorama

Compare and Contrast

Music by Composer

The XNA Connection

The XNA Music Classes: MediaLibrary

Displaying the Albums

The XNA Music Classes: MediaPlayer

Part III XNA

19 Principles of Movement

The Naïve Approach

A Brief Review of Vectors

Moving Sprites with Vectors

Working with Parametric Equations

Fiddling with the Transfer Function

Scaling the Text

Two Text Rotation Programs

20 Textures and Sprites

The Draw Variants

Another Hello Program?

Driving Around the Block

Movement Along a Polyline

The Elliptical Course

A Generalized Curve Solution

21 Dynamic Textures

The Render Target

Preserving Render Target Contents

Drawing Lines

Manipulating the Pixel Bits

The Geometry of Line Drawing

Modifying Existing Images

22 From Gestures to Transforms

Gestures and Properties

Scale and Rotate

Matrix Transforms

The Pinch Gesture

Flick and Inertia

The Mandelbrot Set

Pan and Zoom

Game Components

Affine and Non-Affine Transforms

23 Touch and Play

More Game Components

The PhingerPaint Canvas

A Little Tour Through SpinPaint

The SpinPaint Code

The Actual Drawing

PhreeCell and a Deck of Cards

The Playing Field

Play and Replay

24 Tilt and Play

3D Vectors

A Better Bubble Visualization

The Graphical Rendition

Follow the Rolling Ball

Navigating a Maze



No comments:

Post a Comment