You know you haven't blogged in awhile when you can't even remember how to log in and post. :)
I've been holed up in my writing cave but I wanted to take a moment to clarify something. There will NOT be a Volume II for my 101 Windows Phone 7 Apps book. I know there has been some confusion and I see a backlog of tweets asking me about it, so I'm sorry about that. I don't know why Amazon still lists the book, but if they haven't already cancelled your pre-order then you should go ahead and do so.
Why no Volume II? This was a joint decision between SAMS and me because:
- The existing book is self-contained
- Version 7.5 happened much faster than I was prepared for (which is a great thing!)
- I figured I have one book left in me, and we decided it was better to have me write about Windows 8
Therefore, disregard the info on Amazon about Volume II. The Windows 8 book, however, is real. :) Its name will probably change to Windows 8 Apps with XAML and C# Unleashed. Amazon's date of publication probably isn't quite right, but I'll tell you as soon as I know a firmer date.
Thanks!
1. Page 35: "// For the Setting class" should be "// For the Setting class from Chapter 20"
2. Page 218: The filename in the title of Listing 9.3 should be IncomingCallPage.xaml (not IncomingCall.xaml)
3. Page 221: The filename in the title of Listing 9.4 should be IncomingCallPage.xaml.cs (not IncomingCall.xaml.cs)
4. Page 226: The filename in the title of Listing 9.5 should be CallInProgressPage.xaml (not CallInProgress.xaml)
5. Page 230: The filename in the title of Listing 9.6 should be CallInProgressPage.xaml.cs (not CallInProgress.xaml.cs)
6. Page 261: The "containg" in the comment should be "containing"
7. Page 276: "SwitchViewButton_Click" should be "ViewButton_Click"
8. Page 386: The last comment line should use the word "Vary" instead of "Very"
9. Page 413: The last sentence in the 2nd paragraph should say "Rogers" instead of "Rodgers"
10. Page 453: In the first line of the last paragraph, "transitions can automatically" should be "transitions that can automatically"
11. Page 583: "IncludedStartingLetters" should instead be "ExcludedStartingLetters"
12. Page 750: The "imag" in the comment toward the bottom of the page should be "image"
13. Page 767: The "Add the animations to the storyboad" comment should instead be "Add the animations to the storyboard"
14. Page 771: The "Threshold" on the 6th-to-last line of the listing should be "Sensitivity"
15. Page 790: Toward the bottom of the page, the "stream.Read(SquawkBuffer," should be "stream.Read(bytes,"
Thanks to Jesus Rodriguez and Tad Anderson for finding these! More details for anyone stuck on Chapter 1's "using WindowsPhoneApp": You've got three options to make your project compile:
- Copy Settings.cs from the Chapter 1 code download and include it in your project.
- Create a new Settings.cs file in your project and type in the Settings.cs code from Chapter 20.
- Just use the project from the Chapter 1 code download.
I suppose I’m the most biased opinion available, but here’s why I think my Windows Phone 7 book is something special: - The content. An immense amount of useful info has been packed into it. As my wife will tell you, it took a ridiculous amount of time to write it. (In case you’re wondering, it usually took much longer to write about each app than it took to create the app.) It did help that this is my 4th (gasp!) book on XAML and WPF/Silverlight concepts, so I pretty much knew how to explain layout, styling, and so on. But I certainly can’t take all the credit. I had a fantastic technical editor – Dave Relyea – whom I can’t thank enough. He even got other notable team members involved, such as Jeff Wilcox and David Anson. As a result, the person who wrote the Panorama control reviewed the Panorama chapter, the person who wrote the Pivot control reviewed the Pivot chapter, the person who wrote the charting controls reviewed the charting controls chapter, and so on. It can’t get better than that!
- Full color printing. It’s just beautiful to see C# and XAML with its Visual-Studio-style coloring, and of course the screenshots and other figures look great in color.
- The design. I spent a lot of time thinking about the appearance of the book – inside and out – and I’m grateful that SAMS basically let me do whatever I wanted! The rest of this post highlights some aspects of the design.
The Cover From the start, SAMS was on-board with the idea of “lets make the book look like the phone.” It’s a bit of a risk to do a book that isn’t tied to a well-known series like “Unleashed,” but it was one we were all willing to take. Here’s my initial, very rough, sketch of what the cover could look like (way back when Windows Phone 7 was Windows Phone 7 Series):  Here’s what I came up with after making the fateful decision to cover 101 apps:  Volume I uses the Windows Phone blue & orange colors; Volume II uses Windows Phone green & orange. Although these are placeholder icons, the idea from this point onward was to use the actual 101 app icons from both volumes. The hardest part for me was coming up with a decent arrangement for the odd number of icons. My name & face are supposed to resemble a pinned contact, and the SAMS area is supposed to be somewhat like a double-wide tile. SAMS always liked emphasizing “full color” on the cover of my past books, so I figured it would be a good thing to fill the missing three spaces. Later, I imagined what the rest of the cover should look like, and decided it would be better to use an avatar rather than an actual photo of me:  I did many more revisions not shown here, including placing the real app icons and coming up with a final avatar. I also moved the “FULL COLOR” rectangle so it would separate the 50 Volume I apps from the 51 Volume II apps. Here’s the final result by SAMS (who also felt my “Building Your First” title was too long):  By the way, the latter 51 icons that hint at Volume II's apps are basically placeholders. Given that I’m still working on Volume II, and I change/reorder apps as I write, I don’t even know the final list yet. Maybe a future printing of Volume I will correct the Volume II icons, making the current printing a collector’s item.  Chapters The first page of each chapter looks a bit like a panorama and a bit like the phone’s Start experience. Here’s my first sketch of what a chapter’s first page should look like:  After this, we made the call to simply name each chapter with the app name, otherwise it would get too cumbersome. Here’s my next sketch, after a few more tweaks:  I wanted each chapter’s title to be presented roughly like a featured app in the marketplace, with an all-caps Segoe WP Black caption under the icon. Here’s the final result:    I think it also ended up working well for non-chapter sections like the introduction. And the blue area does a nice job of showing where each chapter begins and ends when you hold a physical book and see all the little blue stripes along the paper edges. Sidebars I love sidebars. I’ve always used a lot of them, and four different kinds of them. Naturally, I wanted them to fit the Windows Phone style. I don’t need to show my original sketches here, because SAMS did such a good job recreating them in the book:  Notice the ellipsis used for “digging deeper” rather than a left-aligned icon. This sidebar is mimicking an expanded application bar, as if you’re digging deeper into an app. In fact, the grey matches the color of the standard application bar under the light theme. I like their style much better than the style from my WPF books:  Misc. Other Pages Finally, here’s a smattering of pages from the book:               
I had no idea you could do this until now! Does your WP7 app have a bad review, and you wish you could get in touch with the person who left the review? (Not to harass the person! To get more info, fix the problem, and turn them into a happy customer.) In Zune, click on social, then INBOX, then the teeny-tiny NEW MESSAGE button at the bottom of the screen. You can send them a message using their screen name shown in the review. And it’s better than Twitter: You can use up to 230 characters!  Unfortunately, the recipient’s new-message notification is very subtle. (Some text appears under their name in the top-right corner.) And messages expire after 30 days. Still, it’s much better than nothing!
I love the Windows Phone hardware Back button. Sure, it's currently a lousy way to switch between apps (this is fixed in the "Mango" release), but I love the consistency when it comes to navigating within an app or returning to an app after launching something like the web browser. I certainly miss the button when using my iPad. However, the hardware Back button is a source of grief for developers submitting apps to the Windows Phone Marketplace due to requirement 5.2.4: 5.2.4 Use of Back Button To maintain a consistent user experience, the Back button must only be used for backwards navigation in the application. a. Pressing the Back button from the first screen of an application must exit the application. b. Pressing the Back button must return the application to the previous page. c. If the current page displays a context menu or a dialog, the pressing of the Back button must close the menu or dialog and cancel the backward navigation to the previous page. d. For games, when the Back button is pressed during gameplay, the game can choose to present a pause context menu or dialog or navigate the user to the prior menu screen. Pressing the Back button again while in a paused context menu or dialog closes the menu or dialog. I’ve had my Pool game rejected for part (d) because it didn’t enable pausing. To me, the phrasing makes that seem optional! I’ve had apps such as Metro Web Browser rejected for part (c) because I didn’t realize that an inline list picker counts as a "dialog" or "context menu." But fair enough, I see that the built-in apps collapse an expanded list picker when the hardware Back button is pressed, so my apps should do that, too. This post is about (b). I was surprised to be told that I violated this rule for my new Baby Name Eliminator app (get it now!), which had the following page navigation structure: Attempt #1:  Every blue arrow represents either a forward navigation to another page or the opening of a dialog, so pressing the hardware Back button returns to the previous state. The issue was with MainPage, and its state transition represented by the orange arrow. This page has two modes: a “getting started” mode that only appears until the user taps “start eliminating,” and a “list of names” mode that appears once the button is tapped. The user can only ever return to the “getting started” mode by tapping the “start over” app bar button. Therefore, no matter which mode MainPage is in, pressing the hardware Back button exits the app. So the certification tester complained that after tapping “start eliminating,” pressing Back didn’t return to the previous page. Of course, there is no previous page! Although this was obvious to me and I thought it would be obvious to the tester (because the app bar doesn’t animate in & out like it would for a true page navigation), I could appreciate that users might be surprised by this behavior. However, it made no sense to navigate back to the “getting started” mode once elimination was underway, and it would be an unnecessary extra step to continue showing it each subsequent time the app is launched. I view this “getting started” mode to be much like an initial login into an app, and I should be able to do this without adding an extra back-navigation step. Therefore, I did a quick fix and changed the style of the “getting started” UI to look a bit more like a temporary overlay rather than a page on its own: Attempt #2:  I’m ashamed to admit it, but I even added an obnoxious message box that appears after the user tapped “start eliminating” that explained that this page will now enter elimination mode, and that the way to start over was to tap “start over”; the Back button would exit the app. This, of course, was for the benefit of the tester rather than users. (Yes, I know that the app submission form has a “tester notes” box in which you can leave special instructions, as well as a “requires technical exception” check box. But frankly, I’m terrified to use either of these. I can imagine these putting my app into some special queue that requires certain testers and therefore increases the certification time. I don’t know if this is actually true.) This second attempt failed certification the exact same way. How could this be? I started doubting if I even remembered to attach the new binary! After this second failure, I decided to change the navigation structure. Instead of using an initial “getting started” UI, MainPage would start out looking like an empty list, but with instructions to tap the “settings” button to get started. The new SettingsPage is just the old FilterPage, but with the rest of the “getting started” UI merged in (the gender radio buttons and an OK button): Attempt #3:  In this scheme, the user must explicitly navigate forward to do the initial configuration, then navigate back to what becomes the list of names. There’s no need for a “start over” button… the user can start over by changing the settings at any time. This version of the app passed certification, and is now live here. Although I’d say this specific enforcement of the Back button rule is questionable, I do feel like the final scheme is the best one. It’s a bit more clear for users, a bit more flexible (the user can explore a different gender or filters without damaging their list-in-progress), and I think the consolidated settings makes sense. So, at least in this case, I lost a little time, but the users won!
I think Appendix A is the most important appendix. It provides a list of lessons ordered alphabetically, rather than the app-by-app organization in the Table of Contents. Here is the list:
|
2D Transforms
|
Chapter 13, "Metronome"
|
|
3D Transforms
|
Chapter 17, "Pick a Card Magic Trick"
Chapter 45, "Coin Toss"
Chapter 19, "Animation Lab"
|
|
Accelerometer Basics
|
Chapter 44, "Boxing Glove"
|
|
Accelerometer Calibration
|
Chapter 47, "Moo Can"
|
|
Accelerometer Data Smoothing
|
Chapter 47, "Moo Can"
|
|
Accelerometer, 2D Motion
|
Chapter 49, "Balance Test"
|
|
AccelerometerHelper
|
Chapter 47, "Moo Can"
Chapter 48, "Level"
Chapter 49, "Balance Test"
Chapter 50, "Pedometer"
|
|
Activated Event
|
Chapter 10, "Tip Calculator"
|
|
Alignment
|
Chapter 4, "Stopwatch"
|
|
Angle, Based on Accelerometer
|
Chapter 48, "Level"
|
|
Animation Basics
|
Chapter 12, "Silly Eye"
|
|
Animations, Creating in C#
|
Chapter 16, "Lottery Numbers Picker"
|
|
Animations, Sharing
|
Chapter 16, "Lottery Numbers Picker"
|
|
Application Bar
|
Chapter 2, "Flashlight"
|
|
Application Lifecycle
|
Chapter 10, "Tip Calculator"
|
|
Application Manifest
|
Chapter 1, "Tally"
|
|
Application State
|
Chapter 10, "Tip Calculator"
|
|
ApplicationIdleDetectionMode
|
Chapter 9, "Fake Call"
|
|
Audio Files, Saving
|
Chapter 36, "Sound Recorder"
|
|
Binary Resources
|
Chapter 1, "Tally"
Chapter 2, "Flashlight"
Chapter 6, "Baby Sign Language"
|
|
Background Worker
|
Chapter 11, "XAML Editor"
Chapter 24, "Baby Name Eliminator"
Chapter 25, "Book Reader"
|
|
Bitmap Caching
|
Chapter 19, "Animation Lab"
|
|
Brushes
|
Chapter 2, "Flashlight"
|
|
Build Actions, Content Versus Resource
|
Chapter 1, "Tally"
Chapter 2, "Flashlight"
Chapter 6, "Baby Sign Language"
|
|
Button
|
Chapter 1, "Tally"
|
|
Cache Mode (Cached Composition)
|
Chapter 19, "Animation Lab"
|
|
Canvas
|
Chapter 5, "Ruler"
|
|
Capabilities
|
Chapter 1, "Tally"
|
|
Charts
|
Chapter 29, "Weight Tracker"
|
|
Check Box
|
Chapter 10, "Tip Calculator"
|
|
Clipping
|
Chapter 12, "Silly Eye"
Chapter 13, "Metronome"
|
|
Closing Event
|
Chapter 10, "Tip Calculator"
|
|
Color Animations
|
Chapter 15, "Mood Ring"
|
|
Color Picker
|
Chapter 12, "Silly Eye"
|
|
Combo Box
|
Chapter 25, "Book Reader"
|
|
Composition Target's Rendering Event
|
Chapter 30, "Cowbell"
|
|
Content Controls
|
Chapter 5, "Ruler"
|
|
Content Presenter
|
Chapter 10, "Tip Calculator"
|
|
Context Menu
|
Chapter 26, "TODO List"
|
|
Control Templates
|
Chapter 10, "Tip Calculator"
|
|
Coordinates
|
Chapter 8, "Vibration Composer"
|
|
Copy & Paste
|
Chapter 11, "XAML Editor"
|
|
Currency Formatting
|
Chapter 10, "Tip Calculator"
|
|
Custom Controls
|
Chapter 19, "Animation Lab"
|
|
Custom Fonts
|
Chapter 20, "Alarm Clock"
|
|
Data Binding
|
Chapter 6, "Baby Sign Language"
Chapter 10, "Tip Calculator"
Chapter 23, "Baby Milestones"
|
|
Data Contract Attributes
|
Chapter 26, "TODO List"
|
|
Data, Shipping with Your App
|
Chapter 24, "Baby Name Eliminator"
Chapter 25, "Book Reader"
|
|
Data Templates
|
Chapter 6, "Baby Sign Language"
|
|
DataContractJsonSerializer
|
Chapter 39, "Paint"
|
|
DataContractSerializer
|
Chapter 39, "Paint"
|
|
Date Picker
|
Chapter 7, "Date Diff"
|
|
DateTimeOffset
|
Chapter 21, "Passwords & Secrets"
|
|
Deactivated Event
|
Chapter 10, "Tip Calculator"
|
|
Decryption
|
Chapter 21, "Passwords & Secrets"
|
|
Deep Zoom
|
Chapter 41, "Deep Zoom Viewer"
|
|
Dependency Properties
|
Chapter 18, "Cocktails"
|
|
Deserialization
|
Chapter 39, "Paint"
|
|
Disabling Automatic Screen Lock
|
Chapter 9, "Fake Call"
|
|
DoubleAnimation
|
Chapter 12, "Silly Eye"
|
|
Double-Tap Gesture
|
Chapter 41, "Deep Zoom Viewer"
|
|
Drag Gesture
|
Chapter 42, "Jigsaw Puzzle"
|
|
Drop Shadows
|
Chapter 15, "Mood Ring"
|
|
Dynamic XAML
|
Chapter 11, "XAML Editor"
|
|
Easing Functions
|
Chapter 12, "Silly Eye"
|
|
Ellipse
|
Chapter 5, "Ruler"
|
|
Email Launcher
|
Chapter 11, "XAML Editor"
|
|
Embedded Resources
|
Chapter 24, "Baby Name Eliminator"
|
|
Emulator-Specific Code
|
Chapter 3, "In Case of Emergency"
|
|
Encryption
|
Chapter 21, "Passwords & Secrets"
|
|
Event Bubbling
|
Chapter 10, "Tip Calculator"
|
|
Event Triggers
|
Chapter 12, "Silly Eye"
|
|
Filmstrip-Style Swiping
|
Chapter 28, "Alphabet Flashcards"
|
|
FindElementsInHostCoordinates
|
Chapter 40, "Darts"
|
|
Flick Gesture
|
Chapter 40, "Darts"
|
|
Fonts, Custom
|
Chapter 20, "Alarm Clock"
|
|
Frame Rate Counter
|
Chapter 13, "Metronome"
|
|
FrameReported Event
|
Chapter 37, "Reflex Test"
|
|
Gesture Listener
|
Chapter 40, "Darts"
Chapter 41, "Deep Zoom Viewer"
Chapter 42, "Jigsaw Puzzle"
Chapter 43, "Spin the Bottle!"
|
|
Gradient Brushes
|
Chapter 15, "Mood Ring"
|
|
Graphs
|
Chapter 29, "Weight Tracker"
|
|
Grid
|
Chapter 4, "Stopwatch"
|
|
Hardware Back, Start, & Search Buttons
|
Chapter 5, "Ruler"
|
|
Hit Testing
|
Chapter 5, "Ruler"
Chapter 11, "XAML Editor"
Chapter 40, "Darts"
|
|
Icons
|
Chapter 1, "Tally"
|
|
Image
|
Chapter 6, "Baby Sign Language"
|
|
Image Brush
|
Chapter 17, "Pick a Card Magic Trick"
|
|
Image Cropping
|
Chapter 42, "Jigsaw Puzzle"
|
|
Indeterminate Progress Bars
|
Chapter 18, "Cocktails"
|
|
Ink Presenter
|
Chapter 39, "Paint"
|
|
INotifyPropertyChanged
|
Chapter 21, "Passwords & Secrets"
|
|
Input Scopes
|
Chapter 3, "In Case of Emergency"
|
|
Inertia, Simulating
|
Chapter 43, "Spin the Bottle!"
|
|
Isolated Storage
|
Chapter 20, "Alarm Clock"
|
|
JSON Serialization
|
Chapter 39, "Paint"
|
|
Keyboard, On-Screen & Hardware
|
Chapter 3, "In Case of Emergency"
|
|
Keyframe Animations
|
Chapter 14, "Love Meter"
|
|
Launching Event
|
Chapter 10, "Tip Calculator"
|
|
Line
|
Chapter 5, "Ruler"
Chapter 9, "Fake Call"
|
|
Line Breaks
|
Chapter 8, "Vibration Composer"
|
|
Line Height
|
Chapter 9, "Fake Call"
|
|
List Box
|
Chapter 6, "Baby Sign Language"
|
|
List Box Item
|
Chapter 10, "Tip Calculator"
|
|
List Box Items, Stretching
|
Chapter 25, "Book Reader"
|
|
List Box, Multi-Selection
|
Chapter 36, "Sound Recorder"
|
|
List Picker
|
Chapter 25, "Book Reader"
Chapter 26, "TODO List"
|
|
Local Databases
|
Chapter 24, "Baby Name Eliminator"
|
|
Lock Screen (Disabling or Running During)
|
Chapter 8, "Vibration Composer"
Chapter 9, "Fake Call"
Chapter 30, "Cowbell"
|
|
LongListSelector
|
Chapter 18, "Cocktails"
|
|
Looping Selector
|
Chapter 16, "Lottery Numbers Picker"
|
|
Looping Sound
|
Chapter 31, "Trombone"
|
|
Manipulation Events
|
Chapter 40, "Darts"
|
|
Margins
|
Chapter 3, "In Case of Emergency"
|
|
MediaElement
|
Chapter 33, "Subservient Cat"
Chapter 30, "Cowbell"
|
|
Message Box
|
Chapter 2, "Flashlight"
|
|
Microphone Audio Playback
|
Chapter 35, "Talking Parrot"
Chapter 36, "Sound Recorder"
|
|
MultiScaleImage
|
Chapter 41, "Deep Zoom Viewer"
|
|
Multithreading
|
Chapter 11, "XAML Editor"
Chapter 24, "Baby Name Eliminator"
Chapter 25, "Book Reader"
|
|
Multi-Touch
|
Chapter 38, "Musical Robot"
|
|
NetworkInterface.InterfaceType
|
Chapter 32, "Local FM Radio"
|
|
Object Animations
|
Chapter 15, "Mood Ring"
|
|
Obscured Event
|
Chapter 10, "Tip Calculator"
|
|
Observable Collections
|
Chapter 21, "Passwords & Secrets"
|
|
One-Time Actions
|
Chapter 17, "Pick a Card Magic Trick"
Chapter 50, "Pedometer"
|
|
Opacity Masks
|
Chapter 17, "Pick a Card Magic Trick"
|
|
Orientation Basics
|
Chapter 3, "In Case of Emergency"
|
|
Orientation Lock
|
Chapter 4, "Stopwatch"
|
|
Padding
|
Chapter 3, "In Case of Emergency"
|
|
Page Navigation
|
Chapter 6, "Baby Sign Language"
|
|
Page State
|
Chapter 10, "Tip Calculator"
|
|
Pagination
|
Chapter 25, "Book Reader"
|
|
Panorama
|
Chapter 27, "Groceries"
Chapter 28, "Alphabet Flashcards"
|
|
Password Box
|
Chapter 21, "Passwords & Secrets"
|
|
Path
|
Chapter 5, "Ruler"
Chapter 9, "Fake Call"
Chapter 10, "Tip Calculator"
|
|
PerformanceProgressBar
|
Chapter 18, "Cocktails"
|
|
Perspective Transforms
|
Chapter 17, "Pick a Card Magic Trick"
|
|
Phone Launcher
|
Chapter 3, "In Case of Emergency"
|
|
Phone Theme Resources
|
Chapter 1, "Tally"
|
|
Photo Chooser
|
Chapter 23, "Baby Milestones"
Chapter 39, "Paint"
Chapter 42, "Jigsaw Puzzle"
|
|
Picker Box
|
Chapter 19, "Animation Lab"
Chapter 25, "Book Reader"
|
|
Pie Charts
|
Chapter 29, "Weight Tracker"
|
|
Pinch Gesture
|
Chapter 41, "Deep Zoom Viewer"
Chapter 42, "Jigsaw Puzzle"
|
|
Pivot
|
Chapter 26, "TODO List"
Chapter 29, "Weight Tracker"
|
|
Point Animations
|
Chapter 15, "Mood Ring"
|
|
Polygon
|
Chapter 5, "Ruler"
|
|
Polyline
|
Chapter 5, "Ruler"
|
|
Popup
|
Chapter 11, "XAML Editor"
Chapter 39, "Paint"
|
|
Progress Bar
|
Chapter 4, "Stopwatch"
|
|
Progress Bar, Indeterminate
|
Chapter 18, "Cocktails"
|
|
Property Paths
|
Chapter 15, "Mood Ring"
|
|
Quick Jump Grid
|
Chapter 18, "Cocktails"
|
|
Radio Button
|
Chapter 10, "Tip Calculator"
|
|
Radio Tuner
|
Chapter 32, "Local FM Radio"
|
|
Reading & Writing Files
|
Chapter 22, "Notepad"
|
|
Reading & Writing Pictures
|
Chapter 23, "Baby Milestones"
|
|
Rectangle
|
Chapter 5, "Ruler"
Chapter 9, "Fake Call"
|
|
Repeat Button
|
Chapter 5, "Ruler"
|
|
Resources
|
Chapter 9, "Fake Call"
Chapter 12, "Silly Eye"
|
|
Rotate Gesture
|
Chapter 43, "Spin the Bottle!"
|
|
RotateTransform
|
Chapter 13, "Metronome"
|
|
Routed Events
|
Chapter 10, "Tip Calculator"
|
|
Runs
|
Chapter 20, "Alarm Clock"
|
|
ScaleTransform
|
Chapter 14, "Love Meter"
|
|
Screenshots, Taking from Phone
|
Chapter 42, "Jigsaw Puzzle"
|
|
Scroll Viewer
|
Chapter 3, "In Case of Emergency"
|
|
Seadragon
|
Chapter 41, "Deep Zoom Viewer"
|
|
Serialization
|
Chapter 23, "Baby Milestones"
Chapter 39, "Paint"
|
|
Settings
|
Chapter 20, "Alarm Clock"
|
|
Settings Pages
|
Chapter 12, "Silly Eye"
|
|
Settings Page Guidelines
|
Chapter 20, "Alarm Clock"
|
|
Shaking Detection
|
Chapter 46, "Noise Maker"
|
|
Silverlight for Windows Phone Toolkit
|
Chapter 7, "Date Diff"
|
|
Silverlight Toolkit
|
Chapter 29, "Weight Tracker"
|
|
Size Properties
|
Chapter 3, "In Case of Emergency"
|
|
Slider
|
Chapter 5, "Ruler"
|
|
Sound Detection
|
Chapter 34, "Bubble Blower"
|
|
Sound Effects
|
Chapter 30, "Cowbell"
|
|
Sound Looping
|
Chapter 31, "Trombone"
|
|
Sound Manipulation
|
Chapter 31, "Trombone"
|
|
Sound, Playing Backwards
|
Chapter 36, "Sound Recorder"
|
|
SoundEffectInstance
|
Chapter 31, "Trombone"
|
|
Splash Screen
|
Chapter 1, "Tally"
|
|
Stack Panel
|
Chapter 4, "Stopwatch"
|
|
Status Bar
|
Chapter 1, "Tally"
|
|
Storyboard Basics
|
Chapter 12, "Silly Eye"
|
|
Storyboards as Timers
|
Chapter 18, "Cocktails"
|
|
Storyboards, Checking Status
|
Chapter 14, "Love Meter"
|
|
Stretch Gesture
|
Chapter 41, "Deep Zoom Viewer"
|
|
Styles
|
Chapter 9, "Fake Call"
|
|
Tag
|
Chapter 8, "Vibration Composer"
|
|
Text Box
|
Chapter 3, "In Case of Emergency"
Chapter 11, "XAML Editor"
|
|
Theme Detection
|
Chapter 10, "Tip Calculator"
|
|
Throwing Detection
|
Chapter 44, "Boxing Glove"
Chapter 45, "Coin Toss"
|
|
Tilt Effect
|
Chapter 19, "Animation Lab"
|
|
Time Picker
|
Chapter 9, "Fake Call"
|
|
Timers
|
Chapter 2, "Flashlight"
|
|
Toggle Button
|
Chapter 10, "Tip Calculator"
|
|
Toggle Switch
|
Chapter 20, "Alarm Clock"
|
|
Tombstoning
|
Chapter 10, "Tip Calculator"
|
|
Touch Points
|
Chapter 37, "Reflex Test"
|
|
Tracking Individual Fingers
|
Chapter 38, "Musical Robot"
Chapter 39, "Paint"
|
|
Triggers
|
Chapter 12, "Silly Eye"
|
|
Turning-Over Detection
|
Chapter 47, "Moo Can"
|
|
Two-Way Data Binding
|
Chapter 23, "Baby Milestones"
|
|
Undo & Redo
|
Chapter 39, "Paint"
|
|
Unobscured Event
|
Chapter 10, "Tip Calculator"
|
|
URL Encoding & Decoding
|
Chapter 18, "Cocktails"
|
|
User Controls
|
Chapter 4, "Stopwatch"
|
|
UserIdleDetectionMode
|
Chapter 9, "Fake Call"
Chapter 30, "Cowbell"
|
|
Value Converters
|
Chapter 21, "Passwords & Secrets"
|
|
Vector Graphics
|
Chapter 5, "Ruler"
|
|
Vibration
|
Chapter 8, "Vibration Composer"
Chapter 9, "Fake Call"
|
|
Video
|
Chapter 33, "Subservient Cat"
|
|
Visibility
|
Chapter 4, "Stopwatch"
|
|
Visual State Manager (VSM)
|
Chapter 19, "Animation Lab"
|
|
Walking Motion
|
Chapter 50, "Pedometer"
|
|
Web Browser Control
|
Chapter 18, "Cocktails"
|
|
Wrap Panel
|
Chapter 8, "Vibration Composer"
Chapter 45, "Coin Toss"
|
|
WriteableBitmap
|
Chapter 42, "Jigsaw Puzzle"
|
|
XAML Reader
|
Chapter 11, "XAML Editor"
|
|
XAML Resources
|
Chapter 9, "Fake Call"
|
|
XAML-Defined Elements, Naming
|
Chapter 1, "Tally"
|
|
XML Namespaces
|
Chapter 1, "Tally"
|
|
XmlSerializer
|
Chapter 39, "Paint"
|
|
XNA
|
Chapter 2, "Flashlight"
Chapter 30, "Cowbell"
Chapter 31, "Trombone"
Chapter 34, "Bubble Blower"
Chapter 35, "Talking Parrot"
Chapter 36, "Sound Recorder"
|
|
Z-Index
|
Chapter 4, "Stopwatch"
|
|
Zoom Gesture
|
Chapter 41, "Deep Zoom Viewer"
|
Part I Getting Started
1 Tally
The Application Manifest
Capabilities
Icons
Splash Screen
XML Namespaces
Status Bar
Phone Theme Resources
Naming XAML-Defined Elements
Button
2 Flashlight
Application Bar
Timers
Brushes
Message Box
3 In Case of Emergency
Orientation
On-Screen Keyboard
Hardware Keyboard
Text Box
Input Scopes
Scroll Viewer
Size Properties
Margins and Padding
Emulator-Specific Code
4 Stopwatch
Grid
StackPanel
User Controls
Alignment
Progress Bar
Visibility
Orientation Lock
5 Ruler
Canvas
Vector Graphics
Slider
Repeat Button
Hardware Back, Start, & Search Buttons
Hit Testing
Content Controls
6 Baby Sign Language
Page Navigation
Data Binding
Data Templates
List Box
Image
Resource Versus Content Build Actions
7 Date Diff
Silverlight for Windows Phone Toolkit
Date Picker
8 Vibration Composer
Vibration
Wrap Panel
Running While the Screen is Locked
Getting Coordinates of an Element
The Tag Property
Line Breaks
9 Fake Call
Resources
Styles
Time Picker
Text Line Height
Disabling Automatic Screen Lock
10 Tip Calculator
Application Lifecycle
Control Templates
Routed Events
Theme Detection
Toggle Button, Radio Button, & Check Box Controls
List Box Items
Data Binding to a Named Element
11 XAML Editor
Dynamic XAML
Popup
TextBox Manipulation
Background Worker
Copy & Paste
Part II Transforms & Animations
12 Silly Eye
Animation
Event Triggers
Named Resources
Settings Page
Color Picker
Clipping
13 Metronome
2D Transforms
Animating Rotation
Animation Completed Event
Frame Rate Counter
14 Love Meter
Keyframe Animations
Animating Scale
Checking Storyboard Status
15 Mood Ring
Color Animations
Property Paths
Gradient Brushes
Object Animations
Point Animations
Drop Shadows
16 Lottery Numbers Picker
Sharing Animations
Creating Animations in C#
Looping Selector
17 Pick a Card Magic Trick
3D Transforms
Opacity Masks
Image Brush
One-Time Actions
18 Cocktails
Quick Jump Grid
Dependency Properties
URL Encoding & Decoding
Storyboards as Timers
Indeterminate Progress Bars
LongListSelector
19 Animation Lab
Custom Controls
Visual State Manager
Bitmap Caching
Tilt Effect
Part III Storing & Retrieving Local Data
20 Alarm Clock
Isolated Storage
Settings
Settings Page Guidelines
Toggle Switch
Using Custom Fonts
Runs
21 Passwords & Secrets
Encryption & Decryption
Password Box
Value Converters
DateTimeOffset
Observable Collections
INotifyPropertyChanged
22 Notepad
Reading & Writing Files
23 Baby Milestones
Reading & Writing Pictures
Serialization
Two-Way Data Binding
24 Baby Name Eliminator
Local Databases
Shipping Data with Your App
25 Book Reader
Pagination
List Picker
Stretching List Box Items
Part IV Pivot, Panorama, Charts & Graphs
26 TODO List
Pivot
Context Menu
Data Contract Attributes
27 Groceries
Panorama
28 Alphabet Flashcards
Filmstrip-Style Swiping
29 Weight Tracker
Charts & Graphs
Part V Audio & Video
30 Cowbell
Playing Sound Effects
Composition Target's Rendering Event
31 Trombone
Sound Manipulation
Sound Looping
SoundEffectInstance
32 Local FM Radio
Radio Tuner
The NetworkInterface.InterfaceType Property
33 Subservient Cat
Playing Video
MediaElement
Part VI Microphone
34 Bubble Blower
Sound Detection
Reversing a Slider
35 Talking Parrot
Microphone Audio Playback
36 Sound Recorder
Saving Audio Files
Playing Sound Backwards
Multi-Selection List Box
Part VII Touch & Multi-Touch
37 Reflex Test
The Touch.FrameReported Event
Touch Points
38 Musical Robot
Multi-Touch
Tracking Individual Fingers
39 Paint
Ink Presenter
Manual Serialization and Deserialization
XmlSerializer
DataContractSerializer
DataContractJsonSerializer
Undo & Redo
40 Darts
Gesture Listener
Manipulation Events
Flick Gesture
Hit Testing with FindElementsInHostCoordinates
41 Deep Zoom Viewer
Pinch & Stretch Zooming Gestures
Double-Tap Gesture
MultiScaleImage
42 Jigsaw Puzzle
Drag Gesture
Image Cropping
WriteableBitmap
43 Spin the Bottle!
Rotate Gesture
Simulating Inertia
Part VIII Accelerometer Tricks
44 Boxing Glove
Accelerometer Basics
45 Coin Toss
Throwing Detection
46 Noise Maker
Shaking Detection
47 Moo Can
Turning-Over Detection
AccelerometerHelper
Data Smoothing
Accelerometer Calibration
48 Level
Determining the Phone's Angle
49 Balance Test
2D Motion
50 Pedometer
Analyzing Walking Motion
Appendices
A Lessons Index
B XAML Reference
C Theme Resources Reference
D Animation Easing Reference
E Geometry Reference
|