Universal Windows Apps with XAML and C# Unleashed

Adam Nathan  
Sams Publishing
Total pages
February 2015
Related Titles

Product detail

Product Price CHF Available  
Universal Windows Apps with XAML and C# Unleashed
55.40 approx. 7-9 days


Full Color: Figures and code appear as they do in Visual Studio.

Universal Windows apps are a total game-changer. You can now write once and deploy your app to any modern PC, tablet, phone, or other Windows device. Suddenly, it’s quick and easy to serve new devices and form factors, sharing unified assets ranging from code to styles to user controls. It has never been easier to reach multiple-device markets!

Now, the world’s #1 expert on Microsoft XAML brings together all the knowledge Windows developers need to build universal apps that adapt smoothly for any device running Windows 8.1, Windows Phone 8.1, or their successors. Drawing on his unsurpassed personal experience and direct input from Microsoft’s Windows and Visual Studio teams, Adam Nathan illuminates core development concepts, answers your most important questions, and candidly assesses the technology’s strengths and limitations.

This full-color guide walks you through every key task involved in building a universal Windows app: layout and input, working with the app model, using advanced controls, leveraging XAML’s powerful rich media features, and much more.

Detailed information on how to...

  • Quickly build universal, localized apps that exploit the vast global scale of the Windows Store
  • Size, position, and transform elements within layouts that gracefully adapt to different devices
  • Handle input from touch, mouse, pen, keyboard, and any sensor
  • Monetize apps with Windows Store sales, in-app purchases, and advertising
  • Make the most of controls for managing content, items, text, images, media, speech, and more
  • Create efficient 2D vector graphics and animations
  • Use styles, templates, and visual states to redesign controls without losing functionality
  • Bind data sources to simplify data presentation and updates
  • Easily integrate data from apps, users, and networks
  • Support Windows app commands: Search, Share, Print, Play, Project, Settings
  • Use contracts to build apps that cooperate to perform complex tasks
  • Improve the user experience even when your app isn’t running

Table of Contents

Introduction   1
Who Should Read This Book?   3
Software Requirements   3
Code Examples   3
How This Book Is Organized   3
Conventions Used in This Book   5
Part I: Getting Started
Chapter 1: Hello, Real World!   7

Creating, Deploying, and
Profiling an App   7
Understanding the App
Packages   10
Updating XAML and C# Code   21
Making the App World-Ready   29
Making the App Accessible   35
Submitting to the Windows Store   40
Summary   42
Chapter 2: Mastering XAML   43
Elements and Attributes   44
Namespaces   45
Property Elements   47
Type Converters   49
Markup Extensions   49
Children of Object Elements   52
Mixing XAML with C#   56
XAML Keywords   59
Summary   60
Part II: Building an App
Chapter 3: Sizing, Positioning, and Transforming Elements   63

Controlling Size   64
Controlling Position   68
Applying 2D Transforms   72
Applying 3D Transforms   79
Summary   82
Chapter 4: Layout   83
Discovering Your Window Size and Location   84
Panels   88
Handling Content Overflow   103
Summary   115
Chapter 5: Handling Input: Touch, Mouse, Pen, and Keyboard   117
Touch Input   118
Mouse Input   141
Pen Input   144
Keyboard Input   153
Summary   159
Part III: Working with the App Model
Chapter 6: App Lifecycle   161

Killing   163
Suspending   164
Resuming   166
Terminating   167
Launching   168
Activating   171
Managing Session State with SuspensionManager   173
Programmatically Launching Apps   176
Summary   179
Chapter 7: Threading, Windows, and Pages   181
Understanding the Threading Model for Universal Apps   181
Displaying Multiple Windows   186
Navigating Between Pages   189
Summary   198
Chapter 8: The Many Ways to Earn Money   199
Adding Advertisements to Your App   200
Supporting a Free Trial   205
Supporting In-App Purchases   210
Validating Windows Store Receipts   218
Testing Windows Store
Features   220
Summary   225
Part IV: Understanding Controls
Chapter 9: Content Controls   227

Button   230
AppBarButton   234
HyperlinkButton   241
RepeatButton   242
ToggleButton   243
AppBarToggleButton   243
CheckBox   244
RadioButton   245
ToolTip   246
App Bars   249
Summary   257
Chapter 10: Items Controls   259
Items in the Control   260
Items Panels   262
ComboBox   265
ListBox   267
ListView   269
GridView   273
FlipView   274
SemanticZoom   276
MenuFlyout   279
Summary   281
Chapter 11: Text   283
TextBlock   283
RichTextBlock   296
TextBox   301
RichEditBox   309
PasswordBox   311
Summary   313
Chapter 12: Images   315
The Image Element   316
Multiple Files for Multiple
Environments   325
Decoding Images   330
Encoding Images   339
Rendering PDF Content as an Image   347
Summary   353
Chapter 13: Audio, Video, and Speech   355
Playback   356
Capture   367
Transcoding   378
Speech Synthesis   383
Summary   386
Chapter 14: Other Controls   387
Range Controls   387
SearchBox   390
Popup Controls   397
Hub   403
Date and Time Controls   407
ProgressRing   411
ToggleSwitch   412
WebView   413
Summary   419
Part V: Leveraging the Richness of XAML
Chapter 15: Vector Graphics   421

Shapes   421
Geometries   428
Brushes   436
Summary   450
Chapter 16: Animation   453
Dependency Properties   454
Theme Transitions   455
Theme Animations   466
Custom Animations   472
Custom Keyframe Animations   485
Easing Functions   490
Manual Animations   495
Summary   497
Chapter 17: Styles, Templates, and Visual States   499
Styles   500
Templates   509
Visual States   519
Summary   528
Chapter 18: Data Binding   529
Introducing Binding   529
Controlling Rendering   538
Customizing the View of a Collection   546
High-Performance Rendering with ListView and GridView   550
Summary   554
Part VI: Exploiting Windows
Chapter 19: Working with Data   555

An Overview of Files and Folders   555
App Data   557
User Data   563
Networking   572
Summary   582
Chapter 20: Supporting App Commands   583
Search   584
Share   589
Print   596
Play   604
Project   606
Settings   606
Summary   611
Chapter 21: Leveraging Contracts   613
Account Picture Provider   615
AutoPlay Content and
AutoPlay Device   617
File Type Associations   620
Protocol   623
File Open Picker   624
File Save Picker   627
Contact Picker   628
The Contact Contract   631
The Appointments Provider
Contract   635
Background Tasks   637
Summary   646
Chapter 22: Reading from Sensors   647
Accelerometer   647
Gyrometer   651
Inclinometer   651
Compass   651
Light Sensor   651
Orientation   652
Location   652
Proximity   659
Summary   662
Chapter 23: Controlling Devices   663
Fingerprint Readers   664
Image Scanners   664
Barcode Scanners   668
Magnetic Stripe Readers   671
Custom Bluetooth Devices   673
Custom Bluetooth Smart
Devices   676
Custom USB Devices   679
Custom HID Devices   682
Custom Wi-Fi Direct Devices   684
Summary   686
Chapter 24: Thinking Outside the App: Live Tiles, Notifications, and the Lock Screen   687
Live Tiles   687
Badges   701
Secondary Tiles   703
Toast Notifications   705
Setting Up Push Notifications   711
The Lock Screen   719
Summary   721
Index   723


Adam Nathan is a principal software architect for Microsoft, a best-selling technical author, and a prolific developer of apps for Windows. He introduced XAML to countless developers through his books on a variety of Microsoft technologies. Currently a part of Microsoft’s Windows division, Adam has previously worked on Visual Studio and the Common Language Runtime. He was the founding developer and architect of Popfly, Microsoft’s first Silverlight-based product, named by PCWorld as one of its year’s most innovative products. He is also the founder of PINVOKE.NET, the online resource for .NET developers who need to access Win32. His apps have been featured on Lifehacker, Gizmodo, ZDNet, ParentMap, and other enthusiast sites.

Adam’s books are considered required reading by many inside Microsoft and throughout the industry. Adam is the author of Windows 8.1 Apps with XAML and C# Unleashed (Sams, 2013), 101 Windows Phone 7 Apps (Sams, 2011), WPF 4.5 Unleashed (Sams, 2013), .NET and COM: The Complete Interoperability Guide (Sams, 2002), and several other books. You can find Adam online at www.adamnathan.net, or @adamnathan on Twitter.