accelerometers, 525
simulating acceleration via emulator, 529-530
accuracy, location aware apps, 560
DesiredAccuracy property, 565
DesiredAccuracyInMeters property, 565
monitoring position changes, 566
MovementThreshold property, 565-566
PositionChanged events, 566-584
ad hoc testing, 737
Add New Project dialog (Visual Studio Express 2012), 2
Additional Tools window (Windows Phone Emulator), 4
AddressChooserTask, choosers/launchers and, 447-449
A-GPS (Assisted Global Positioning System), location aware apps and, 560-561
alarms (scheduled notifications)
registering, 1001
animation/graphics
live tiles, 391
page orientation
animating entire pages when orientation changes, 108-110
animating page elements when orientation changes, 106-107
App Instant Answer, 996
App List (Windows Phone Emulator), 6
App.RootFrame_Navigated method (Fast App Resume), 60-61
App.RootFrame_Navigating method (Fast App Resume), 59-61
Application Analysis tool, 21, 26
CPU Usage Graph, 25
External Events view, 25
Frame Rate Graph, 25
GC Events, 26
Image Loads, 26
Memory Usage MB Graph, 26
performance metrics, viewing, 24
Performance Warnings view, 26-27
Storyboards, 26
built-in application bar, 231-233
customizing colors, 234
expanding, 233
hiding, 233
minimizing Icon Button Tray, 234
system tray dimensions, 234
custom application bar, 237
customizing system tray, 247-248
disabling application bar menu, 242-243
extending icon base classes, 250-252
extending menu item base classes, 250-252
item visibility, 250
minimizing Icon Button Tray, 243
opacity, 244
switching to full-screen, 244-246
multiple applications bars, hosting via Pivot control, 333-343
Application Deployment tool, 15
application state, 49
transient state, 97
restoring, 55
ApplicationCurrentMemoryUsage property (Device Status class), 28
ApplicationMemoryUsageLimit property (DeviceStatus class), 27-29
ApplicationPeakMemoryUsage property (DeviceStatus class), 28
appointments, 464
apps
animated page transitions, 110-114
auto-launching via
protocol associations, 977-981
Windows.System.Launcher class, 981
background file transfers, 1043
app termination/resubscription to transfer events, 1048
background processing, 997
background tasks, 998
battery life and, 997
multitasking and, 997
Mutex and shared resources, 1038-1041
scheduled notifications, 998-1010
Bookshop sample app, 83
displaying product lists, 86-92
ProductsViewModel class, 84-85
capabilities
defining, 16
determining via Marketplace Test Kit, 17
ID_CAP_NETWORK capability, 16
ID_HW_FFCCAMERA capability, 16
customizing
XAML and Windows Phone Emulator, 5-7
deploying via Application Deployment tool, 15
exiting apps programmatically, 53
FAS, 56
App.RootFrame_Navigated method, 60-61
App.RootFrame_Navigating method, 59-61
FastAppResumeViewModel class, 61-62
optimizing, 57
recommended resume behaviors, 58
auto-launching apps via file associations, 968-975
effects on user experience, 976
foreground apps
background file transfers, 1043
multitasking and, 997
Mutex and shared resources, 1038-1041
helium voice app, creating, 692-698
integration testing, 739
launching via voice commands, 723-732
icon creation, 689
life cycle of, 49
subscribing to events, 51
location aware apps, 559
background location tracking, 569-570
cell tower triangulation and, 561-562
DesiredAccuracy property, 565
DesiredAccuracyInMeters property, 565
geographic location API, 563
Geolocator class, 563, 570-575
hardware layer, 563
location viewer sample code, 575-580
managed layer, 563
monitoring position changes, 566
MovementThreshold property, 565-566
native code layer, 563
PositionChanged events, 566-584
retrieving current location, 563-565
Wi-Fi triangulation and, 562
Maps app
downloading maps, 612
showing directions via, 611
showing locations via, 610-611
Marketplace
allowing app user reviews, 426
navigating to apps in, 422-425
memory usage, determining, 27-29
canceling, 77
cross-page communication, 77-78
handling, 76
navigation history stacks, 72-73
NavigationService property, 75-76
passing page arguments via query strings, 71-73
page orientation
animating entire pages when orientation changes, 108-110
animating page elements when orientation changes, 106-107
PhoneApplicationPage class, 99-104
performance, Windows Phone Marketplace requirements, 21
PhotoCamera app, building, 658-668
protocol associations, 967-968
auto-launching apps via protocol associations, 977-981
effects on user experience, 976
retitling, 6
running under Lock screen, 63-64
LockScreenService class, 64-66
LockScreenViewModel class, 66-67
search integration, 983
App Instant Answer, 996
application manifests, 985-987
creating landing pages to display quick card information, 994-995
defining quick card target page, 989-994
speech-driven apps, 699
launching apps via voice commands, 723-732
Voice Paint app creation, 703-721
automatic state preservation system build, 890-903
IsolatedStorageSettings class, 889-890
managed storage, 882
.NET Isolated Storage API, 883-886
transient state, 49, 53-55, 97
WinPRT Windows Storage API, 883, 887-889
terminating apps, 53
AssemblyCleanup attribute, 746
AssemblyInitialize attribute, 745-746
Asynchronous attribute, 749
ClassCleanup attribute, 746
ClassInitialize attribute, 746
creating a test project, 740-741, 747
creating test classes, 741-743
Description attribute, 748
ExpectedException attribute, 749
hiding Expressions Editor, 752-753
Priority attribute, 750
Tag attribute, 749
testable chat client app example, 754-764
TestClass attribute, 744
testing multiple assemblies, 753
testing nonpublic members, 753
TestInitialize attribute, 747
TestMethod attribute, 745
TestProperty attribute, 747
Timeout attribute, 748
WorkItemTest class, 751
WCF services, consuming, 44-45
web content, hosting within apps, 70-71
Windows Phone Application Analysis tool, 21, 26
CPU Usage Graph, 25
External Events view, 25
Frame Rate Graph, 25
GC Events, 26
Image Loads, 26
Memory Usage MB Graph, 26
Performance Warnings view, 26-27
Storyboards, 26
viewing performance metrics, 24
Windows Phone Marketplace
capability discovery phase, 16-17
WMAppManifest.xml files, defining app capablitites, 16
assertions (UTF), 751
collection conditions, verifying, 752
CollectionAssert, 752
string conditions, verifying, 752
StringAssert, 752
associations
auto-launching apps via file associations, 968-975
effects on user experience, 976
protocol associations, 967-968
auto-launching apps via protocol associations, 977-981
effects on user experience, 976
asynchronous testing (UTF), 762-763
asynchronous validation, 824
decoupling validation, 830
INotifyDataErrorInfo interface, 824, 842-844
reusable NotifyDataErrorInfo interface, 825-827
validating all properties, 833-836
validating changing properties, 830-833
ValidationSummary control, adding INotifiyDataErrorInfo support for, 842-844
audio
background audio playback, 1059
audio streaming agents, 1076-1079
AudioPlayerAgent class, 1060, 1064-1075
AudioStreamingAgent class, 1060
AudioTrack class, 1061
BackgroundAudioPlayer class, 1060-1061
controlling playback from foreground app, 1070-1075
creating custom audio player agent, 1061-1064
overview of, 1060
playing assembly resources via MediaStreamSource, 1078-1079
microphone, 691
helium voice app, creating, 692-698
music
deleting from media library, 205-207
saving to media library, 205
playing via MediaElement, 193-194
controlling audio output, 194
streaming content, 194
XNA SoundEffect class, 201-202
speech-driven apps, 699
launching apps via voice commands, 723-732
Voice Paint app creation, 703-721
AudioPlayerAgent class, 1060, 1064-1075
AudioStreamingAgent class, 1060
AudioTrack class, 1061
authentication, cloud services and, 511
AutoCompleteBox component (Toolkit), 259-260
defining custom filters, 264-266
suggested lists
dynamically populating, 266-267
auto-launching apps via
file associations, 968
receiving file launch requests, 970-973
registering file associations, 968-970
protocol associations, 977
launching protocol URI, 979-980
receiving protocol launch requests, 977-979
registering protocol associations, 977
reserved protocol names, 981
Windows.System.Launcher class, 981
choosers, testing via, 769-771
integration testing, 739
launchers, testing via, 769-771
trial conditions, testing, 767-769
AssemblyCleanup attribute, 746
AssemblyInitialize attribute, 745-746
Asynchronous attribute, 749
ClassCleanup attribute, 746
ClassInitialize attribute, 746
creating a test project, 740-741, 747
creating test classes, 741-743
Description attribute, 748
ExpectedException attribute, 749
hiding Expressions Editor, 752-753
Priority attribute, 750
Tag attribute, 749
testable chat client app example, 754-764
TestClass attribute, 744
testing multiple assemblies, 753
testing nonpublic members, 753
TestInitialize attribute, 747
TestMethod attribute, 745
TestProperty attribute, 747
Timeout attribute, 748
WorkItemTest class, 751
Back button, page navigation via, 79-80
background agents, 1011-1012, 1059-1060
background audio playback, 1059
assembly resources, playing via MediaStreamSource, 1078-1079
audio streaming agents, 1076-1079
AudioPlayerAgent class, 1060, 1064-1075
AudioStreamingAgent class, 1060
AudioTrack class, 1061
BackgroundAudioPlayer class, 1060-1061
custom audio player agent, creating, 1061-1064
foreground app, controlling playback from, 1070-1075
overview of, 1060
background file transfers, 590
backing up local databases, 1052-1055
restoring local databases, 1055-1058
retrieving user Windows Live Anonymous IDs, 1050-1052
URL rerouting with WCF services, 1049-1050
background images (lock screen), setting, 399-401
Background layer (Panorama control), 348-349
background processing, 997
background tasks, 998
battery life and, 997
multitasking and, 997
Mutex, shared resources and, 1038-1041
scheduled notifications, 998-1001
alarm registration, 1001
reminder registration, 1005-1006
scheduled tasks, 1010-1011, 1014-1017
debugging, 1025
resource intensive tasks, 1014
scheduled task agents, 1011-1012, 1017-1018, 1035-1036
banking, Wallet hub and, 773
payment instruments, storing in, 775-777
Payment Instruments sample app, 777-789
updating payment instruments, 789-792
required capabilities for wallet integration, 775
battery life (power management)
background processing and, 997
push notifications and, 493-494
BingMapsDirectionTask, choosers/launchers and, 409-412
BingMapsTask, choosers/launchers and, 413
Bookshop sample app, 83
product lists, displaying, 86-92
ProductsViewModel class, 84-85
Boolean option, providing via ToggleSwitch component (Toolkit), 293-295
localizing ToggleSwitch component, 295-297
switch color, changing, 297
built-in fonts (text), 160-162
buttons
Button Click mode, 124
Hyperlink button, 124
Icon Button Tray (application bar), minimizing, 234
icon buttons (application bar)
custom application bar, 237-238
disabling, 235
retrieving at runtime, 236-237
tap and click events, 123
buying items, Wallet hub and, 773
payment instruments, storing in, 775-777
Payment Instruments sample app, 777-789
updating payment instruments, 789-792
required capabilities for wallet integration, 775
calls (phone), placing, 435-436
CameraCaptureTask, choosers/launchers and, 450-452
cameras, 655
icon creation, 689
building PhotoCamera app, 658-678
selection criteria, 656
thumbnails, viewing in PhotoCamera app, 672-678
video effects, adding to PhotoCamera app, 668-671
Silverlight webcam API, 655-656, 678-685
canceling page navigation, 77
CanExecute (object) method (iCommand interface), 38
CanExecuteChanged method (iCommand interface), 38
capabilities (apps)
app submissions to Windows Phone Marketplace, capability discovery phase, 16-17
defining, 16
ID_CAP_NETWORK capability, 16
ID_HW_FFCCAMERA capability, 16
Marketplace Test Kit, determining via, 17
cartographic modes (Map control), 589-590
cell tower triangulation and location aware apps, 561-562
certification requirements, launching events, 50
chat client app UTF testing example, 754-758
automation peers, manipulating UI elements at runtime, 763-764
code driven UI testing, 760-763
application execution model, 406-408
appointments, 464
BingMapsDirectionTask, 409-412
BingMapsTask, 413
ChooserBase.Completed events, 406-408
connection setting pages, navigating to, 413-414
ConnectionSettingsTask, 413-414
contacts, 464
converting stored contacts to/from vCards, 478
deleting changes to stored contacts, 477-478
saving to contact lists, 449-450
storing in Custom Contacts Store, 469-477
driving directions, retrieving, 409-412
saving contact addresses, 418-421
selecting email addresses, 414-417
EmailAddressChooserTask, 414-417
GameInviteTask, 453
games, inviting players to, 453
links, sending to contacts, 444
map locations, displaying, 413
Marketplace
allowing app user reviews, 426
navigating to apps in, 422-425
MarketplaceDetailTask, 422-425
MarketplaceReviewTask, 426
MarketplaceSearchTask, 427-428
phone numbers
PhoneNumberChooserTask, 437-438
Photo Hub, selecting photos from, 454-459
ShareLinkTask, 444
ShareStatusTask, 445
SMS, composing, 445
SmsComposeTask, 445
status updates, posting to social networks, 445
web pages, navigating, 446-447
click events (buttons), 123
clipboard, placing text on, 179-180
Close button (Windows Phone Emulator), 5
cloud services, authenticating, 511
club memberships, Wallet hub and, 773
required capabilities for wallet integration, 775
coded UI testing, 739
CodePlex.com, Toolkit source code, 254
color
application bar color, customizing
built-in application bar, 234
custom application bar, 246-247
colored fonts (text), 160
switch color, changing via ToggleSwitch component (Toolkit), 297
ComboBox control, 142
Commanding.Event property (iCommand interface), 39
commands, iCommand interface
CanExecute (object) method, 38
CanExecuteChanged method, 38
Commanding.Event property, 39
DelegateCommand constructor, 38-39
Execute (object) method, 38
playCommand constructor, 38-39
compatibility, Windows Mobile 6.5 apps and Windows Phone 8, 1
composite validation
decoupling validation, 830
INotifyDataErrorInfo interface, 824, 842-844
reusable NotifyDataErrorInfo interface, 825-827
validating
ValidationSummary control, adding INotifiyDataErrorInfo support for, 842-844
Composition (Render) Thread Frame Rate (FPS) field (Frame Rate Counter), 22
composition thread (XAML animation/graphics), 18-20
concurrency, LINQ to SQL and, 962-965
connection setting pages, navigating to, 413-414
ConnectionSettingsTask, choosers/launchers and, 413-414
connectivity (network), monitoring, 850-855
contacts, 464
contact lists, saving contacts to, 449-450
Custom Contacts Store, storing in, 469-477
stored contacts
converting to/from vCards, 478
content controls, Windows Phone FCL, 119-121
ContextMenu component (Toolkit)
hosting in a ListBoxItem, 275-277
control headers, adding to TimePicker component (Toolkit), 281
controls
buttons
Button Click mode, 124
Hyperlink button, 124
tap and click events, 123
FrameworkElement class, 116
ComboBox control, 142
Selector class members, 139
range controls
ProgressBar control, 144
RangeBase class properties, 143-144
scrollbars, 152
sensors
gyroscope sensors, 525, 548-552
ToolTip control, 138
touch input
double tap gestures, 370
manipulation events, 357, 363-367
mouse events, 357-359, 361-362
Toolkit gestures, 291-293, 372-386
TouchPoint class, 357, 360-363
UIElement gesture events, 357-358, 368-372
Windows Phone Emulator, 358
Windows Phone FCL
control types within, 117
Silverlight controls not in FCL, 118-119
unsupported Silverlight controls, 119
CPU Usage Graph (Windows Phone Application Analysis tool), 25
credit/debit cards, Wallet hub and, 773
payment instruments, storing in, 789-792
required capabilities for wallet integration, 775
storing in Wallet hub, 775-789
cross-page communication and page navigation, 77-78
cross-platform development, IMessageService interface, 41-44
Custom Contacts Store, storing contacts in, 469-477
customizing
DatePicker/TimePicker components
full-screen picker pages, 282-286
switch color, changing via ToggleSwitch component (Toolkit), 297
system tray, custom application bar, 247-248
data binding
AutoCompleteBox component (Toolkit), 270-271
Pivot control, populating via data bound collections, 344-347
Data Sense, monitoring data usage via, 877-879
databases (local), data storage and, 905
database schemas
isolated storage, deploying databases to, 943-946
code-first data model creation, 909-910
mapping inheritance hierarchies, 958-962
platform differences, 909
viewing queries via custom log, 948-950
navigation services, abstracting, 946-948
SQL Server Compact, 906
SqlMetal and database-first data model creation, 942-943
Twitter timeline viewer example, 910-912
Association attribute, 917-918
leveraging custom Twitter services, 924-929
one-to-many relationships, 917-918
tracking data context changes, 915
TwitterDataContext class, 918-919
user credentials, gathering in Sign In view, 929-932
viewing tweets in Timeline view, 932-937
DatePicker/TimePicker components (Toolkit), 277-281
control headers, adding to TimePicker component (Toolkit), 281
customizing
full-screen picker pages, 282-286
deactivating events (life cycle of apps), 52-53
deals/special offers, Wallet hub and, 796-802
debit/credit cards, Wallet hub and, 773
payment instruments, storing in, 789-792
required capabilities for wallet integration, 775
storing in Wallet hub, 775-789
debugging
Lock screen, engaging while debugging via Simulation Dashboard, 63
scheduled tasks, 1025
Deep Zoom technology, viewing high-resolution images via MultiScaleImage element, 207-217
DelegateCommand constructor (iCommand interface), 38-39
deleting
changes to stored contacts, 477-478
music to media library, 205-207
deploying apps via Application Deployment tool, 15
DeviceExtendedProperties class. See DeviceStatus class
DeviceFirmwareVersion property (DeviceStatus class), 28
DeviceHardwareVersion property (DeviceStatus class), 28
DeviceManufacturer property (DeviceStatus class), 28
DeviceName property (DeviceStatus class), 28
DeviceStatus class, 27
ApplicationCurrentMemoryUsage property, 28
ApplicationMemoryUsageLimit property, 27-29
ApplicationPeakMemoryUsage property, 28
DeviceFirmwareVersion property, 28
DeviceHardwareVersion property, 28
DeviceManufacturer property, 28
DeviceName property, 28
DeviceTotalMemory property, 28
IsKeyboardDeployed property, 28
IsKeyboardPresent property, 28
KeyboardDeployedChanged event, 29-30
PowerSourceChanged event, 29-30
properties, viewing, 27
DeviceTotalMemory property (DeviceStatus class), 28
dictation grammars (speech recognition), 701-703
directions
driving directions, retrieving, 409-412
Maps app, showing in, 611
disabling
icon buttons (application bar), 235
double tap gestures (touch input), 370, 374, 382
drag gestures (touch input), 375-377, 383
drawing surface, presenting via InkPresenter element, 186-193
driving directions, retrieving, 409-412
eBay OData consumer application, building, 862
EbaySearchViewModel class, 864-867
extending OData entity classes, 874
fetching data when user scrolls to the end of a list, 871-873
OData wrapper creation, 862-864
ScrollViewerMonitor class, 871-873
edge tracing photo extras application, creating, 634-645
contact addresses, saving, 418-421
email addresses, selecting, 414-417
EmailAddressChooserTask, choosers/launchers and, 414-417
EmailComposeTask, choosers/launchers and, 417-418
embedding fonts (text), 162-164
emulators. See Windows Phone Emulator
events (life cycle of apps)
subscribing to, 51
Execute (object) method (iCommand interface), 38
execution model, 48
application life cycle, 49
subscribing to events, 51
application state, 49
restoring transient state, 55
saving persistent state, 56
transient state requirements, 54-55
apps
exiting programmatically, 53
terminating, 53
execution profiling (Windows Phone Application Analysis tool), 21-23
exiting apps programmatically, 53
expanding application bar, 233
Expression Blend for Windows Phone, 2
Expressions Editor (UTF), hiding, 752-753
External Events view (Windows Phone Application Analysis tool), 25
FAS (Fast App Switching), 56
App.RootFrame_Navigated method, 60-61
App.RootFrame_Navigating method, 59-61
FastAppResumeViewModel class, 61-62
optimizing, 57
recommended resume behaviors, 58
auto-launching apps via file associations, 968
receiving file launch requests, 970-973
registering file associations, 968-970
user experience, effects on, 976
file transfers (background), 1043
app termination/resubscription to transfer events, 1048
backing up local databases, 1052-1055
restoring local databases, 1055-1058
retrieving user Windows Live Anonymous IDs, 1050-1052
URL rerouting with WCF services, 1049-1050
financial information, storing in Wallet hub, 773
payment instruments, storing in, 775-777
Payment Instruments sample app, 777-789
updating payment instruments, 789-792
required capabilities for wallet integration, 775
Fit to Screen button (Windows Phone Emulator), 5
flexible layouts via WrapPanel component (Toolkit), 297
child element spacing, 298
flick gestures (touch input), 377-378, 384-386
floating menu (Windows Phone Emulator), 4
fonts (text)
assigning, 164
colored fonts, 160
OpenType fonts, 159
Segoe font, 160
selecting, 159
stretching, 159
styling, 159
Windows Font Preview tool, 163
foreground apps
background audio playback, controlling, 1070-1075
background file transfers, 1043
multitasking and, 997
Mutex and shared resources, 1038-1041
foreign languages/cultures. See internationalization
Frame Rate Graph (Windows Phone Application Analysis tool), 25
FrameworkElement class, 116
full-screen, switching application bar to, 244-246
full-screen picker pages, customizing, 282-286
game loops, controlling via GameTimer class, 202-203
update intervals, controlling, 203
XNA environment initialization, 203-204
GameInviteTask, choosers/launchers and, 453
games, inviting players to, 453
GC Events (Windows Phone Application Analysis tool), 26
geographic location API, 563
DesiredAccuracy property, 565
DesiredAccuracyInMeters property, 565
Geolocator class, 563
location simulator sample code, 571-575
monitoring position changes, 566
MovementThreshold property, 565-566
PositionChanged events, 566-584
retrieving current location, 563-565
geographically aware apps. See location aware apps
gesture events (touch input), 357-358, 368-369
double tap gestures, 370
GestureCompleted events, 380-381
graphics/animation
page orientation
animating entire pages when orientation changes, 108-110
animating page elements when orientation changes, 106-107
XAML
group validation, 818-820, 844-847
grouped lists, 307
Marketplace app list sample, 307-314
user contacts list sample, 316-323
gyroscope sensors, 525, 548-552
headers
control headers, adding to TimePicker component (Toolkit), 281
heading, adjusting in Map control, 593
helium voice app, creating, 692-698
hiding
application bar, 233
Expressions Editor (UTF), 752-753
high-resolution images, viewing via MultiScaleImage element, 207-208
Deep Zoom Viewer sample code, 212-217
image tiling, 208
hold gestures (touch input), 371-372, 375, 382
HTTP services, 850
Hyperlink button, 124
iCommand interface, 38
CanExecute (object) method, 38
CanExecuteChanged method, 38
Commanding.Event property, 39
DelegateCommand constructor, 38-39
Execute (object) method, 38
playCommand constructor, 38-39
Icon Button Tray (application bar), minimizing, 234
icon buttons (application bar)
built-in application bar
disabling, 235
custom application bar
minimizing Icon Button Tray, 243
ID_CAP_NETWORK capability, 16
ID_HW_FFCCAMERA capability, 16
Image Loads (Windows Phone Application Analysis tool), 26
images
background images (lock screen), setting, 399-401
caching, Bookshop sample app, 93-95
cameras, 655
Silverlight webcam API, 655-656, 678-685
drawing surface, presenting via InkPresenter element, 186-193
high-resolution images, viewing via MultiScaleImage element, 207-208
Deep Zoom image creation, 208-209
Deep Zoom Viewer sample code, 212-217
image tiling, 208
icon buttons (application bar), 235-236
live tiles, 390
localizability (internationalization), 620-621, 625-629
Photo Hub, selecting photos from, 454-459
picture viewer, 631
edge tracing extras application, 634-645
photo extras applications, 631-645
photo share applications, 631, 645-654
photo upload share application, 647-654
pixel density/picture quality, 632
stock ticker application example, 520-521
thumbnail images, viewing in PhotoCamera app, 672-678
IMessageService interface, 41-44
InkPresenter element, drawing surfaces, 186-193
INPC (INotifyPropertyChanged) class, MVVM property change notification
alternative implementation approach, 35-37
traditional implementation approach, 33-35
in-place selection in Toolkit, 255-258
input validation, 805
asynchronous validation, 824
decoupling validation, 830
INotifyDataErrorInfo interface, 824, 842-844
reusable NotifyDataErrorInfo interface, 825-827
validating all properties, 833-836
validating changing properties, 830-833
ValidationSummary control, adding INotifyDataErrorInfo support for, 842-844
composite validation
decoupling validation, 830
INotifyDataErrorInfo interface, 824, 842-844
reusable NotifyDataErrorInfo interface, 825-827
validating all properties, 833-836
validating changing properties, 830-833
ValidationSummary control, adding INotifyDataErrorInfo support for, 842-844
group validation, 818-820, 844-847
critical exceptions, 809
validation class, 809
validation limitations, 823-824
semantic validation, 806
synchronous validation
decoupling validation, 830
validating changing properties, 830-833
syntactic validation, 806
validation visual states, defining, 810-815
displaying error details, 820-823
property setter validation limitations, 823-824
validating textboxes as user types, 815-818
inputting text via TextBox control, 165
IntelliSense support, 168
word prediction, 168
installing
Toolkit, 254
Windows Phone SDK 8.0, 2
integration testing, 739
IntelliSense text support, 168
Intermediate Surface Counter field (Frame Rate Counter), 22
internationalization, 613
defining, 613
localizability
defining, 614
dynamic localizability, 618-620
UI updates when cultures change, 618-620
Internet
links, sending to contacts, 444
web pages, navigating, 446-447
invitations (games), 453
IoC (Inversion of Control), 765-767
IsKeyboardDeployed property (DeviceStatus class), 28
IsKeyboardPresent property (DeviceStatus class), 28
isolated storage
IsolatedStorageSettings class, 889-890
local databases, deploying to, 943-946
SQL CE database files, 940-942
storing/browsing web content in, 225-228
Windows Phone SDK Isolated Storage Explorer, 938-939
WP7 Isolated Storage Explorer, 939-940
item visibility, custom application bar, 250
ComboBox control, 142
Selector class members, 139
Items layer (Panorama control), 349
itineraries, displaying via visual states in Map control, 604-610
JavaScript, web page behaviors, 222-223
KeyboardDeployedChanged event (DeviceStatus class), 29-30
keyboards, SIP layouts, 165-166
languages (internationalization), 613
internationalization, 613
localizability
defining, 614
dynamic localizability, 618-620
UI updates when cultures change, 618-620
appointments, 464
BingMapsDirectionTask, 409-412
BingMapsTask, 413
connection setting pages, navigating to, 413-414
ConnectionSettingsTask, 413-414
contacts, 464
converting stored contacts to/from vCards, 478
deleting changes to stored contacts, 477-478
saving to contact lists, 449-450
storing in Custom Contacts Store, 469-477
driving directions, retrieving, 409-412
saving contact addresses, 418-421
selecting email addresses, 414-417
EmailAddressChooserTask, 414-417
games, inviting players to, 453
links, sending to contacts, 444
map locations, displaying, 413
Marketplace
allowing app user reviews, 426
navigating to apps in, 422-425
MarketplaceDetailTask, 422-425
MarketplaceReviewTask, 426
MarketplaceSearchTask, 427-428
PhoneNumberChooserTask, 437-438
Photo Hub, selecting photos from, 454-459
ShareLinkTask, 444
ShareStatusTask, 445
SMS, composing, 445
SmsComposeTask, 445
status updates, posting to social networks, 445
web pages, navigating, 446-447
launching events (life cycle of apps), 50-51
layouts (flexible) via WrapPanel component (Toolkit)
child element spacing, 298
flexible layouts via WrapPanel component (Toolkit), 297
icons, creating, 689
life cycle of apps, 49
events
subscribing to, 51
light (low), Map control adjustments, 588-589
LineBreak objects, TextBlock element, 155-158
links, sending to contacts, 444
LINQ
maps and, 597
LINQ to SQL
inheritance hierarchies, mapping, 958-962
local databases, data storage and, 905, 908
code-first data model creation, 909-910
platform differences, 909
queries, viewing via custom log, 948-950
list grammars (speech recognition), 701-710, 731-732
ListPicker component (Toolkit), 255-258
lists
grouped lists, 307
Marketplace app list sample, 307-314
user contacts list sample, 316-323
live tiles, 389
animation, 391
changing templates, 391
configuring, 390
images, 390
large tiles, 390
lock screen customization, 397-399
creating lock screen icons, 403-404
resolution, 391
schedules, updating tile notifications, 504-505
sound, 391
Start Experience (Windows Phone Emulator), 389-390
local databases, data storage and, 905
database schemas
isolated storage, deploying databases to, 943-946
code-first data model creation, 909-910
mapping inheritance hierarchies, 958-962
platform differences, 909
viewing queries via custom log, 948-950
navigation services, abstracting, 946-948
SQL Server Compact, 906
SqlMetal and database-first data model creation, 942-943
Twitter timeline viewer example, 910-912
Association attribute, 917-918
leveraging custom Twitter services, 924-929
one-to-many relationships, 917-918
tracking data context changes, 915
TwitterDataContext class, 918-919
user credentials, gathering in Sign In view, 929-932
viewing tweets in Timeline view, 932-937
local folder, state preservation and, 881-882
.NET Isolated Storage API, 883-886
WinPRT Windows Storage API, 883, 887-889
localizability
defining, 614
dynamic localizability, 618-620
localizability sample code, 621-630
UI updates when cultures change, 618-620
location aware apps. See also maps, 559
background location tracking, 569-570
cell tower triangulation and, 561-562
geographic location API, 563
DesiredAccuracy property, 565
DesiredAccuracyInMeters property, 565
Geolocator class, 563, 570-575
monitoring position changes, 566
MovementThreshold property, 565-566
PositionChanged events, 566-584
retrieving current location, 563-565
hardware layer, 563
location viewer sample code, 575
civic address resolution, 580
displaying location via GeoLocationView page, 577-579
GeoLocationViewModel class, 575-577
managed layer, 563
native code layer, 563
Wi-Fi triangulation and, 562
location tracking via Map control, 594-596
lock screen
customizing via live tiles, 397-399
creating lock screen icons, 403-404
LockScreenService class, 64-66
LockScreenViewModel class, 66-67
Windows Phone Emulator, engaging Lock screen within, 63
LockablePivot control (Toolkit), 355
grouped lists, 307
Marketplace app list sample, 307-314
user contacts list sample, 316-323
visual structure of, 304
LoopingSelector component (Toolkit), 287-291
low light conditions, adjusting Map control for, 588-589
loyalty cards, Wallet hub and, 773
membership information
required capabilities for wallet integration, 775
managed storage, state preservation and, 882
manipulation events (touch input), 357, 363-367
maps. See also location aware apps, 559
LINQ and, 597
Application ID, 587
AuthenticationToken, 587
calculating shortest routes between two points, 598-601
centering to current location, 590-591
customizing page elements via visual states, 604-610
heading adjustments, 593
panning/zooming, 590
pitch adjustments, 593
searching for routes via RouteSearchView, 602-604
setting viewable area of map, 592-593
showing directions via Maps app, 611
showing locations via Maps app, 610-611
Maps app
downloading maps, 612
showing directions via, 611
showing locations via, 413, 610-611
Marketplace
apps
allowing user reviews, 426
Marketplace Test Kit, determining app capabilities via, 17
MarketplaceDetailTask, choosers/launchers and, 422-425
MarketplaceHubTask, choosers/launchers and, 425-426
MarketplaceReviewTask, choosers/launchers and, 426
MarketplaceSearchTask, choosers/launchers and, 427-428
media library, saving/deleting music, 205-207
MediaElement, playing audio/video, 193-194
controlling audio output, 194
streaming content, 194
XNA SoundEffect class, 201-202
MediaPlayerLauncher, choosers/launchers and, 428-435
memberships (club), Wallet hub and, 773
membership information
required capabilities for wallet integration, 775
memory usage
Memory Usage MB Graph (Windows Phone Application Analysis tool), 26
menu items (application bar)
built-in application bar, customizing, 234-235
custom application bar, 237-238
runtime, retrieving at, 236-237
MessageService property and IMessageService interface, 41-44
metadata, UTF (Unit Test Framework) and, 745-751
Metro. See Microsoft Design Language
microphone, 691
helium voice app, creating, 692-698
Microsoft Design Language, 153
Microsoft Expression Blend for Windows Phone, 2
Microsoft.Phone.Info.DeviceStatus class. See DeviceStatus class
minimizing
Icon Button Tray (application bar), 243
Windows Phone Emulator window, 4-5
mouse events (touch input), 357-359, 361-362
MPNS (Microsoft Push Notification Service), 487-488, 509-511
MSIL (Microsoft Intermediate Language), XAP files, 16-17
multiple languages/cultures (internationalization), 613
internationalization, 613
localizability
defining, 614
dynamic localizability, 618-620
UI updates when cultures change, 618-620
MultiScaleImage element, viewing high-resolution images, 207-208
Deep Zoom Viewer sample code, 212-217
image tiling, 208
multitasking, background processing and, 997
music, saving to/deleting from media library, 205-207
Mutex, shared resources and, 1038-1041
MVVM (Model-View-ViewModel) pattern, 31
AutoCompleteBox component (Toolkit) and, 260-264
ContextMenu component (Toolkit) and, 273-275
property change notification, 33
INPC implementation, alternative approach, 35-37
INPC implementation, traditional approach, 33-35
ViewModelBase class, 32
canceling, 77
cross-page communication, 77-78
handling, 76
navigation history stacks, 72-73
NavigationService property, 75
backward navigation, 76
forward navigation, 76
query strings, passing page arguments via, 71-73
unmapped URI, 69
external navigation via button control, 69-70
external navigation via HyperlinkButton control, 70
hosting web content within apps, 70-71
internal URI, 69
navigation history stacks, 72-73
.NET Isolated Storage API, 883-885
reading/writing data to isolated storage, 884-886
serialization performance, 886-887
network connectivity, monitoring, 850-855
network services, 849
Data Sense, monitoring data usage via, 877-879
hosting, 850
HTTP services, 850
network connectivity, monitoring, 850-855
eBay consumer application build, 862-874
EbaySearchViewModel class, 864-867
extending OData entity classes, 874
fetching data when user scrolls to the end of a list, 871-873
generating proxies, 858
ScrollViewerMonitor class, 871-873
REST services, 850
Simulation Dashboard, 876
SOAP services, 850
notification text, lock screen customization, 401-403
notifications (push), 485
cloud service authentication, 511
enabling, 489
notifications in HttpWebResponse, identifying, 509
stock ticker application example, 521-523
sending, 495
SLA and, 488
stock ticker application example, 511-524
channel errors, handling, 492-493
HttpNotificationChannel events, 491-492
tile notifications, 486, 500-501
stock ticker application example, 520
updating via shell tile schedules, 504-505
toast notifications, 485, 495-496
stock ticker application example, 520
Windows Phone Marketplace requirements, 489
notifications (scheduled), 998-1001
alarm registration, 1001
reminder registration, 1005-1006
numbers (phone)
eBay consumer application, building, 862
EbaySearchViewModel class, 864-867
extending OData entity classes, 874
fetching data when user scrolls to the end of a list, 871-873
OData wrapper creation, 862-864
ScrollViewerMonitor class, 871-873
proxies
generating, 858
opacity
application bar, changing in
built-in application bar, 234
custom application bar, 244
XAML element visibility and performance, 20
OpenType fonts, 159
orientation
page orientation
animating entire pages when orientation changes, 108-110
animating page elements when orientation changes, 106-107
PhoneApplicationPage class, 99-104
PanoramaItem control, 350
Windows Phone Emulator display, changing, 4-5
page navigation. See also Pivot control; Panorama control, 67-69, 325
canceling, 77
cross-page communication, 77-78
handling, 76
navigation history stacks, 72-73
NavigationService property, 75
backward navigation, 76
forward navigation, 76
query strings, passing page arguments via, 71-73
unmapped URI, 69
external navigation via button control, 69-70
external navigation via HyperlinkButton control, 70
hosting web content within apps, 70-71
internal URI, 69
page orientation
animating
entire pages when orientation changes, 108-110
page elements when orientation changes, 106-107
PhoneApplicationPage class, 99-100
OrientationChanged event, 100-102
PhoneApplicationPage orientation property, 102-104
page transitions (animated), Windows Phone Toolkit, 110-114
panning/zooming via Map control, 590
Panorama control. See also Pivot control; page navigation, 325, 327-328, 347
Items layer, 349
Pivot control, differences and similarities, 326
style assumptions, 326
things to avoid, 355
Title layer, 349
Windows Phone 8 performance, 329
Windows Phone FCL, placement within, 328
PasswordBox element, 154
passwords, receiving via PasswordBox control, 175-176
payments, making via Wallet hub, 773
payment instruments, storing in, 775-777
Payment Instruments sample app, 777-789
updating payment instruments, 789-792
required capabilities for wallet integration, 775
performance
apps, Windows Phone Marketplace requirements, 21
Windows Phone 8, Pivot and Panorama controls, 329
Windows Phone Application Analysis tool, 21, 26
CPU Usage Graph, 25
External Events view, 25
Frame Rate Graph, 25
GC Events, 26
Image Loads, 26
Memory Usage MB Graph, 26
Performance Warnings view, 26-27
Storyboards, 26
viewing performance metrics, 24
XAML element visibility and performance, 19-20
Performance Warnings view (Windows Phone Application Analysis tool), 26-27
persistent application state. See also transient application state, 49, 56, 97
phone numbers
PhoneApplicationPage class, page orientation, 99-100
OrientationChanged event, 100-102
PhoneApplicationPage orientation property, 102-104
PhoneApplicationPage.State dictionary, state preservation and, 49
PhoneCallTask, choosers/launchers and, 435-436
PhoneNumberChooserTask, choosers/launchers and, 437-438
Photo Hub, selecting photos from, 454-459
PhotoChooserTask, choosers/launchers and, 454-459
photos
cameras, 655
PhotoCamera class, 655-656, 678
Silverlight webcam API, 655-656, 678-685
picture viewer, 631
edge tracing extras application, 634-645
photo extras applications, 631-645
photo share applications, 631, 645-654
photo upload share application, 647-654
pixel density/picture quality, 632
thumbnail photos, viewing in PhotoCamera app, 672-678
phrase list grammars (speech recognition), 701-710, 731-732
picker pages, customizing, 282-286
picture viewer, 631
photo extras applications, 631
edge tracing extras application, 634-645
photo share applications, 631
photo upload share application, 647-654
pixel density/picture quality, 632
pinch gestures (touch input), 378-380, 383-384
pitch, adjusting in Map control, 593
Pivot control. See also Panorama control; page navigation, 325, 327, 329
application bars, hosting multiple, 333-343
load events, 333
LockablePivot control (Toolkit), 355
Panorama control, differences and similarities, 326
placing Pivot on a page, 329-331
populating via data bound collections, 344-347
setting active PivotItem presenters, 332
style assumptions, 326
things to avoid, 355
Visual Studio New Project dialog, creating Pivot applications in, 331
Windows Phone 8 performance, 329
Windows Phone FCL, placement within, 328
pixel density/picture quality (picture viewer), 632
playCommand constructor (iCommand interface), 38-39
position changes, monitoring (location aware apps), 566-584
power management, push notifications and, 493-494
PowerSource property (DeviceStatus class), 28, 30
PowerSourceChanged event (DeviceStatus class), 29-30
preserving app state/settings, 47-48
automatic state preservation system, building, 890-893
creating property accessor delegates, 902-903
customizing ViewModel state preservation, 892-893
identifying stateful ViewModels, 893-898
Silverlight Serializer and, 898-901
unwinding property lambda expressions, 901-902
IsolatedStorageSettings class, 889-890
managed storage, 882
.NET Isolated Storage API, 883-885
reading/writing data to isolated storage, 884-886
serialization performance, 886-887
WinPRT Windows Storage API, 883, 887-888
measuring available free space, 888
serialization requirements, 889
previewing fonts (text), 163
product lists, displaying (Bookshop sample app), 86-92
ProductsView class, Bookstore sample app, 85-86
ProductsViewModel class, Bookshop sample app, 84-85
ProgressBar control, 144
property change notification (MVVM), 33-37
protocol associations, 967-968
auto-launching apps via protocol associations, 977
launching protocol URI, 979-980
receiving protocol launch requests, 977-979
registering protocol associations, 977
reserved protocol names, 981
user experience, effects on, 976
purchases, making via Wallet hub, 773
payment instruments, storing in, 775-777
Payment Instruments sample app, 777-789
updating payment instruments, 789-792
required capabilities for wallet integration, 775
push notifications, 485
cloud service authentication, 511
enabling, 489
notifications in HttpWebResponse, identifying, 509
stock ticker application example, 521-523
sending, 495
SLA and, 488
stock ticker application example, 511-524
channel errors, handling, 492-493
HttpNotificationChannel events, 491-492
tile notifications, 486, 500-501
stock ticker application example, 520
updating via shell tile schedules, 504-505
toast notifications, 485, 495-496
stock ticker application example, 520
Windows Phone Marketplace requirements, 489
query strings, passing page arguments via (page navigation), 71-73
quick cards, search integration and, 983-984
application manifests, 985-987
captions, customizing, 987-989
landing pages, creating to display quick card information, 994-995
quick card target pages, defining, 989-994
range controls
ProgressBar control, 144
RangeBase class properties, 143-144
scrollbars, 152
stock ticker application example, 521-523
reading device information. See DeviceStatus class
ready-to-use grammars (speech recognition), 701-703
redirecting pages, page navigation, 78-79
reminders (scheduled notifications)
resolution
live tiles, 391
Windows Phone Emulator, changing settings in, 5
resource intensive tasks, 1014
REST services, 850
restoring transient state, 55
retitling apps, Windows Phone Emulator, 6
retrieving
device information. See DeviceStatus class
reusing code, IMessageService interface, 41-44
reviews (apps), allowing in Marketplace, 426
rich content, displaying via RichTextBox control, 176-179
Rotate Orientation button (Windows Phone Emulator), 5
routes (maps), calculating
displaying via visual states in Map control, 604-610
searching for routes via RouteSearchView, 602-604
shortest routes between two points, 598-601
RTL, localizability support, 629-630
Run objects, TextBlock element, 155-158
Rx, 580
SaveContactTask, choosers/launchers and, 449-450
SaveEmailAddressTask, choosers/launchers and, 418-421
SavePhoneNumberTask, choosers/launchers and, 439-442
SaveRingtoneTask, choosers/launchers and, 461-463
saving
contacts
Custom Contacts Store, 469-477
music to media library, 205
scaling, Fit to Screen button (Windows Phone Emulator display window), 5
scheduled notifications, 998-1001
alarm registration, 1001
reminder registration, 1005-1006
scheduled tasks, 1010-1011, 1014-1018
debugging, 1025
resource intensive tasks, 1014
creating to-do item shell tiles, 1028-1029
debugging scheduled tasks, 1025
editing existing to-do items, 1030-1035
updating tiles via Scheduled Task Agent, 1035-1036
Screen Fill Rate Counter field (Frame Rate Counter), 22
scrollbars, 152
search integration, 983
App Instant Answer, 996
configuring, 985
application manifests, 985-987
creating landing pages to display quick card information, 994-995
defining quick card target page, 989-994
searching
SearchTask, choosers/launchers and, 442-443
Segoe font (text), 159
Selector class, items controls, 139
semantic validation, 806
sensors
accelerometers, 525
simulating acceleration via emulator, 529-530
gyroscope sensors, 525, 548-552
shake detection, accelerometers and, 537-539
ShareLinkTask, choosers/launchers and, 444
ShareMediaTask, choosers/launchers and, 460-461
ShareStatusTask, choosers/launchers and, 445
sharing
links with contacts, 444
status updates in social networks, 445
shell tiles. See live tiles
Show Resolution Settings button (Windows Phone Emulator), 5
Silverlight
Silverlight Serializer, building an automatic state preservation system, 898-901
Silverlight webcam API, 655-656, 678-685
Windows Phone FCL
Silverlight controls not in FCL, 118-119
unsupported Silverlight controls, 119
XAML, 1
XAML plus .NET, 1
SIP (Software Input Panel), 165
dimensions of, 165
dismissing programmatically, 167-168
opening programmatically, 165-167
sizing
touch input sizing/spacing constraints, 387
Windows Phone Emulator displays, 4
SLA (Service-Level Agreements), push notifications and, 488
SMS, composing, 445
SmsComposeTask, choosers/launchers and, 445
SOAP services, 850
social networks, posting status updates to, 445
Solution Explorer, 3
sound
background audio playback, 1059
audio streaming agents, 1076-1079
AudioPlayerAgent class, 1060, 1064-1075
AudioStreamingAgent class, 1060
AudioTrack class, 1061
BackgroundAudioPlayer class, 1060-1061
controlling playback from foreground app, 1070-1075
creating custom audio player agent, 1061-1064
overview of, 1060
playing assembly resources via MediaStreamSource, 1078-1079
live tiles, 391
special offers/deals, Wallet hub and, 796-802
speech-driven apps, 699
custom speech recognition UI, 718-721
list grammars, 701-710, 731-732
phrase list grammars, 701-710, 731-732
ready-to-use grammars, 701-703
speech recognizer settings, 717-718
XML grammars, 701-702, 710-717
TTS, 732
selecting speaking voice, 732-733
voice commands, launching apps via, 723-724
updating phrase lists in VCD files, 731-732
Voice Paint app, creating, 703-721
SQL CE database files, viewing/modifying, 940-942
SQL Server Compact, local databases and data storage, 906
SqlMetal, database-first data model creation, 942-943
SRGS grammars (speech recognition), 702, 710-717
SSML (Speech Synthesis Markup Language) files, 733-735
Start Experience (Windows Phone Emulator), 6, 389-390
automatic state preservation system, building, 890-893
creating property accessor delegates, 902-903
customizing ViewModel state preservation, 892-893
identifying stateful ViewModels, 893-898
Silverlight Serializer and, 898-901
unwinding property lambda expressions, 901-902
IsolatedStorageSettings class, 889-890
.NET Isolated Storage API, 883-886
WinPRT Windows Storage API, 883, 887-889
managed storage, 882
.NET Isolated Storage API, 883-885
reading/writing data to isolated storage, 884-886
serialization performance, 886-887
WinPRT Windows Storage API, 883, 887-888
measuring available free space, 888
serialization requirements, 889
status updates, posting to social networks, 445
stock ticker application example, push notifications and, 511-524
storage
isolated storage
deploying databases to, 943-946
IsolatedStorageSettings class, 889-890
.NET Isolated Storage API, 883-886
SQL CE database files, 940-942
storing/browsing web content in, 225-228
Windows Phone SDK Isolated Storage Explorer, 938-939
WP7 Isolated Storage Explorer, 939-940
local databases, data storage and, 905
code-first data model creation, 909-910
deploying databases to isolated storage, 943-946
LINQ to SQL, 905, 908-909, 948-950, 958-965
mapping inheritance hierarchies, 958-962
navigation services, abstracting, 946-948
SQL Server Compact, 906
SqlMetal and database-first data model creation, 942-943
Twitter timeline viewer example, 910-937
updating database schemas, 951-957
versioning database schemas, 957-958
viewing database schemas, 937-942
viewing/modifying SQL CE database files, 940-942
Windows Phone SDK Isolated Storage Explorer, 938-939
WP7 Isolated Storage Explorer, 939-940
managed storage, state preservation and, 882
WinPRT Windows Storage API, 883
Storyboards (Windows Phone Application Analysis tool), 26
streaming audio/video content, 194
stretching text, 159
styling text, 159
submitting apps to Windows Phone Marketplace, 15-16
subscribing to
events (life cycle of apps), 51
channel errors, handling, 492-493
HttpNotificationChannel events, 491-492
Surface Counter field (Frame Rate Counter), 22
switch color, changing via ToggleSwitch component (Toolkit), 297
synchronous validation
decoupling validation, 830
validating changing properties, 830-833
syntactic validation, 806
tag expressions in UTF (Unit Test Framework), 743-744
tap and click events (buttons), 123
tap gestures (touch input), 369-370, 373-374, 382
templates (Windows Phone App), 3
terminating apps, 53
ad hoc testing, 737
choosers, testing via, 769-771
integration testing, 739
launchers, testing via, 769-771
trial conditions, testing, 767-769
AssemblyCleanup attribute, 746
AssemblyInitialize attribute, 745-746
Asynchronous attribute, 749
ClassCleanup attribute, 746
ClassInitialize attribute, 746
creating a test project, 740-741, 747
creating test classes, 741-743
Description attribute, 748
ExpectedException attribute, 749
hiding Expressions Editor, 752-753
Priority attribute, 750
Tag attribute, 749
testable chat client app example, 754-764
TestClass attribute, 744
testing multiple assemblies, 753
testing nonpublic members, 753
TestInitialize attribute, 747
TestMethod attribute, 745
TestProperty attribute, 747
Timeout attribute, 748
WorkItemTest class, 751
text
clipboard, placing text on, 179-180
displaying, 155
element types, understanding, 154-155
fonts
assigning, 164
colored fonts, 160
OpenType fonts, 159
Segoe font, 159
selecting, 159
stretching, 159
styling, 159
Windows Font Preview tool, 163
formatting at runtime, 176-179
inputting via TextBox control, 165
IntelliSense support, 168
word prediction, 168
localizability (internationalization), 625-629
Microsoft Design Language, 153
notification text, lock screen customization, 401-403
PasswordBox element, 154
passwords, receiving via PasswordBox control, 175-176
rich content, displaying via RichTextBox control, 176-179
suggesting via AutoCompleteBox component (Toolkit), 259-266
dynamically populating, 266-267
displaying text, 155
multiline text, 158
TTS, 732
selecting speaking voice, 732-733
whitespace, handling, 155
Texture Memory Usage field (Frame Rate Counter), 22
third-party fonts (text), 162-164
thumbnail images, viewing in PhotoCamera app, 672-678
tile notifications, 486, 500-501
stock ticker application example, 520
updating via shell tile schedules, 504-505
Tile options (Windows Phone Emulator), 6
tiling images, 208
TiltEffect component (Toolkit), 291-293
TimePicker/DatePicker components (Toolkit), 277-281
control headers, adding to TimePicker component (Toolkit), 281
customizing
full-screen picker pages, 282-286
Title layer (Panorama control), 349
titles (apps), retitling via Windows Phone Emulator, 6
toast notifications, 485, 495-496
stock ticker application example, 520
to-do list scheduled task example, 1019-1024
creating to-do item shell tiles, 1028-1029
debugging scheduled tasks, 1025
editing existing to-do items, 1030-1035
updating tiles via Scheduled Task Agent, 1035-1036
ToggleSwitch component (Toolkit)
Boolean option, providing, 293-295
switch color, changing, 297
Toolkit, 253
AutoCompleteBox component, 259-260
defining custom filters, 264-266
dynamically populating suggested lists, 266-267
styling suggested lists, 268-270
Boolean option, providing via ToogleSwitch component, 293-295
changing switch color, 297
localizing ToggleSwitch component, 295-297
CodePlex.com, 254
ContextMenu component
hosting in a ListBoxItem, 275-277
DatePicker/TimePicker components, 277-281
adding control headers to TimePicker component, 281
customizing full-screen picker pages, 282-286
customizing value formats, 281-282
flexible layouts via WrapPanel component, 297
child element spacing, 298
installing, 254
LockablePivot control, 355
LoopingSelector component, 287-291
dynamically populating, 266-267
Toolkit gestures (touch input), 372-373
flick gestures, 377-378, 384-386
GestureCompleted events, 380-381
pinch gestures, 378-380, 383-384
touch feedback, providing, 291-293
updating, 254
ToolTip control, 138
touch feedback, providing via Toolkit, 291-293
touch input
designing for, 386
sizing/spacing constraints, 387
double tap gestures, 370, 374, 382
flick gestures, 377-378, 384-386
hold gestures, 371-372, 375, 382
manipulation events, 357, 363-367
mouse events, 357-359, 361-362
pinch gestures, 378-380, 383-384
tap gestures, 369-370, 373-374, 382
flick gestures, 377-378, 384-386
GestureCompleted events, 380-381
pinch gestures, 378-380, 383-384
TouchPoint class, 357, 360-361
Touch.FrameReported events, 362-363
UIElement gesture events, 357-358, 368-369
double tap gestures, 370
Windows Phone Emulator, 358
tracking location via Map control, 594-596
transferring files (background), 1043
app termination/resubscription to transfer events, 1048
backing up local databases, 1052-1055
restoring local databases, 1055-1058
retrieving user Windows Live Anonymous IDs, 1050-1052
URL rerouting with WCF services, 1049-1050
transient application state. See also persistent application state, 49, 97
restoring, 55
transitions (animated), Windows Phone Toolkit, 110-114
Trigger Reminders button (Simulation Dashboard), 877
TTS (Text-to-Speech), 732
selecting speaking voice, 732-733
Twitter timeline viewer example (local databases), 910-912
Association attribute, 917-918
leveraging custom Twitter services, 924-929
one-to-many relationships, 917-918
tracking data context changes, 915
TwitterDataContext class, 918-919
user credentials, gathering in Sign In view, 929-932
viewing tweets in Timeline view, 932-937
UI testing (coded), 739
UI thread (XAML animation/graphics), 18-20
UIElement gesture events (touch input), 357-358, 368-369
double tap gestures, 370
update intervals (XNA game loops), controlling, 203
updating
deals/special offers, Wallet hub and, 796-802
local databases schemas, 951-957
localizability (internationalization), 618-620
membership information, Wallet hub and, 802-804
payment instruments in Wallet hub, 789-792
phrase lists in VCD files, 731-732
status updates, posting to social networks, 445
stock ticker application example, 523-524
tile notifications via shell tile schedules, 504-505
to-do item tiles via Scheduled Task Agent, 1035-1036
Toolkit, 254
upload share application (photos), creating, 647-654
user input (controls)
buttons
Button Click mode, 124
Hyperlink button, 124
icon buttons (application bar), 234-237
icon buttons (custom application bar), 237-238
minimizing Icon Button Tray (application bar), 234, 243
tap and click events, 123
drawing surface, presenting via InkPresenter element, 186-193
items controls
ComboBox control, 142
Selector class members, 139
range controls
ProgressBar control, 144
RangeBase class properties, 143-144
scrollbars, 152
sensors
gyroscope sensors, 525, 548-552
ToolTip control, 138
touch feedback, providing via Toolkit, 291-293
touch input
double tap gestures, 370, 374, 382
flick gestures, 377-378, 384-386
hold gestures, 371-372, 375, 382
manipulation events, 357, 363-367
mouse events, 357-359, 361-362
pinch gestures, 378-380, 383-384
tap gestures, 369-370, 373-374, 382
TouchPoint class, 357, 360-363
UIElement gesture events, 357-358, 368-372
Windows Phone Emulator, 358
validating, 805
asynchronous validation, 824-847
defining validation visual states, 810-824
semantic validation, 806
syntactic validation, 806
Windows Phone FCL
control types within, 117
Silverlight controls not in FCL, 118-119
unsupported Silverlight controls, 119
User Interface Thread Frame Rate (FPS) field (Frame Rate Counter), 22
user reviews (apps), allowing in Marketplace, 426
UTF (Unit Test Framework), 739-740
AssemblyCleanup attribute, 746
AssemblyInitialize attribute, 745-746
assertions, 751
CollectionAssert, 752
StringAssert, 752
verifying collection conditions, 752
verifying string conditions, 752
Asynchronous attribute, 749
ClassCleanup attribute, 746
ClassInitialize attribute, 746
Description attribute, 748
ExpectedException attribute, 749
Expressions Editor, hiding, 752-753
Priority attribute, 750
Tag attribute, 749
test classes, creating, 741-743
test project, creating, 740-741
testable chat client app example, 754-758
automation peers, manipulating UI elements at runtime, 763-764
code driven UI testing, 760-763
TestClass attribute, 744
TestCleanup attribute, 747
testing
multiple assemblies, 753
nonpublic members, 753
TestInitialize attribute, 747
TestMethod attribute, 745
TestProperty attribute, 747
Timeout attribute, 748
WorkItemTest class, 751
validating
group validation, 818-820, 844-847
user input, 805
asynchronous validation, 824-847
defining validation visual states, 810-824
semantic validation, 806
syntactic validation, 806
vCards, converting stored contacts to/from, 478
VCD (Voice Command Definition) files, 723-724
updating phrase lists in, 731-732
video
PhotoCamera app, adding video effects to, 668-671
playing via MediaElement, 193-194
controlling audio output, 194
streaming content, 194
XNA SoundEffect class, 201-202
Silverlight webcam API, displaying video in, 684-685
ViewModelBase class (MVVM), 32
visibility
item visibility in custom application bar, 250
XAML element visibility and performance, 19-20
visual states, customizing maps via, 604-610
Visual Studio Express 2012, 2
Add New Project dialog, 2
OData, 850
SOAP services, 850
Solution Explorer, 3
Windows Phone App template, 3
XAML
XAML design view, 4
Visual Studio New Project dialog, creating Pivot applications in, 331
voice-driven apps, 699
custom speech recognition UI, 718-721
list grammars, 701-710, 731-732
phrase list grammars, 701-710, 731-732
ready-to-use grammars, 701-703
speech recognizer settings, 717-718
XML grammars, 701-702, 710-717, 721-723
TTS, 732
selecting speaking voice, 732-733
voice commands, launching apps via, 723-724
updating phrase lists in VCD files, 731-732
Voice Paint app, creating, 703-721
Wallet hub, 773
deals/special offers
membership information
payment instruments, storing in, 773, 775-777, 789-792
required capabilities for wallet integration, 775
WCF services
web (world wide)
links, sending to contacts, 444
web content
WebBrowser element, displaying in, 217
communicating with web pages, 218-221
injecting behavior into web pages, 222-223
monitoring/canceling navigation, 217-218
storing/browsing web content in isolated storage, 225-228
web pages, navigating, 446-447
web search grammars (speech recognition), 701-703
WebBrowserTask, choosers/launchers and, 446-447
webcam API (Silverlight), 655-656
weight (text), adjusting, 159-160
whitespace, handling in text, 155
Wi-Fi triangulation and location aware apps, 562
Windows Font Preview tool, 163
Windows Live Anonymous IDs, retrieving (background file transfers), 1050-1052
Windows Mobile 6.5 apps, Windows Phone 8 compatibility, 1
Windows Phone 8
performance, Pivot and Panorama controls, 329
Windows Mobile 6.5 app compatibility, 1
Windows Phone App template, 3
Windows Phone Application Analysis tool, 21, 26
CPU Usage Graph, 25
External Events view, 25
Frame Rate Graph, 25
GC Events, 26
Image Loads, 26
Memory Usage MB Graph, 26
performance metrics, viewing, 24
Performance Warnings view, 26-27
Storyboards, 26
Windows Phone Certification Requirements, launching events, 50
Windows Phone Emulator, 2
Additional Tools window, opening, 4
app customization
retitling apps, 6
App List, 6
Close button, 5
display orientation, changing, 4-5
display size, changing, 4
display window, scaling via Fit to Screen button, 5
floating menu, 4
Lock screen, engaging, 63
resolution settings, changing, 5
Show Resolution Settings button, 5
Start Experience, 6
Tile options, 6
touch input, 358
WCF services, consuming, 44-45
XAML apps
Windows Phone execution model. See execution model
Windows Phone FCL
controls
Button Click mode, 124
ComboBox control, 142
control types within FCL, 117
Hyperlink button, 124
ProgressBar control, 144
scrollbars, 152
Silverlight controls not in FCL, 118-119
tap and click events, 123
ToolTip control, 138
unsupported Silverlight controls, 119
Panorama control placement within, 328
Pivot control placement within, 328
Windows Phone Marketplace
Marketplace Test Kit, determining app capabilities via, 17
push notification requirements, 489
submitting apps to
app performance, 21
capability discovery phase, 16-17
Windows Phone SDK 8.0
installing, 2
lock screen/app integration, 397-399
creating lock screen icons, 403-404
Microsoft Expression Blend for Windows Phone, 2
requirements for, 2
Simulation Dashboard, 876
support for, 2
text
formatting at runtime, 178-179
inputting via TextBox control, 165-176
rich content, displaying via RichTextBox control, 176-179
Visual Studio Express 2012, 2
Add New Project dialog, 2
Solution Explorer, 3
Windows Phone App template, 3
XAML design view, 4
App List, 6
changing display orientation, 4-5
changing display size, 4
changing resolution settings, 5
floating menu, 4
opening Additional Tools window, 4
retitling apps, 6
scaling display window, 5
Start Experience, 6
Tile options, 6
Windows Phone SDK Isolated Storage Explorer, 938-939
Windows Phone Toolkit. See Toolkit
Windows.System.Launcher class, auto-launching apps via, 981
WinPRT Windows Storage API, 883, 887-888
measuring available free space, 888
serialization requirements, 889
WMAppManifest.xml files, defining app capabilities, 16
word prediction, inputting text, 168
WP7 Isolated Storage Explorer, 939-940
WrapPanel component (Toolkit), flexible layouts via, 297
child element spacing, 298
XAML
apps
creating via Visual Studio Express 2012, 2-3
graphics/animation
iCommand interface, 38
CanExecute (object) method, 38
CanExecuteChanged method, 38
Commanding.Event property, 39
DelegateCommand constructor, 38-39
Execute (object) method, 38
playCommand constructor, 38-39
input validation, 805
asynchronous validation, 824-847
defining validation visual states, 810-824
MVVM, 31
property change notification, 33-37
ViewModelBase class, 32
opacity of elements, 20
Silverlight in, 1
todoListView XAML in to-do list scheduled task example, 1025-1028
Toolkit, components of, 254
visibility of elements and performance, 19-20
Windows Phone Emulator
XAML design view, 4
XAML plus .NET, 1
XAML plus .NET, 1
XAP files, 14
Application Deployment tool, 15
components of, 14
defining, 14
local database deployments, 906-907
purpose of, 14
requirements for, 14
Windows Phone Marketplace, submitting apps to, 15-16
XML grammars (speech recognition), 701-702, 710-717
XNA game loops, controlling via GameTimer class, 202-203
update intervals, controlling, 203
XNA environment initialization, 203-204
XNA microphone API, 691
helium voice app, creating, 692-698
XNA SoundEffect class, 201-202
zooming/panning via Map control, 590
18.217.124.83