N

Name keyword, 38, 50

named elements, 434

named styles, 421-422

NamespaceDeclaration value (NodeType property), 788

namespaces

explained, 22-24

implicit .NET namespaces, 23

mapping, 22

naming elements, 38-39

Navigate method, 196-197

navigation

keyboard navigation, supporting in Win32 controls, 683-687

views, 391-392

XAMLBrowser applications, 210-211

navigation-based desktop applications

explained, 193-194

hyperlinks, 197-198

journal, 198-200

Navigate method, 196-197

navigation containers, 194-196

navigation events, 200-201

Page elements, 194-196

returning data from pages, 203-204

sending data to pages, 202-203

NavigationCommands class, 172

NavigationProgress event, 201

NavigationStopped event, 201

NavigationWindow class, 194-196

nearest-neighbor bitmap scaling, 310

.NET properties, binding to, 365-367

NodeType property (XAML), 787-788

None ProgressState, 230

None value

InkCanvasEditingMode, 318

NodeType property, 788

SelectionMode, 337

nonprinciple axis, scaling about, 557

NonZero fill (FillRule property), 480

NoRegisteredHandler value (JumpItemRejectionReason enumeration), 228

Normal ProgressState, 230

normals, 579

Normals property (MeshGeometry3D class), 579-581

notifications (toast)

audio, 778

canceling, 780

changing color of, 775

notification events, 778-779

prerequisites, 771-773

scheduled notifications, 779-780

sending, 774-775

templates, 775-778

NotificationsExtensions project, 777

Null keyword, 52

null regions and mouse events, 153

O

Object class, 55

object elements

attributes, 21

content property, 31-32

declaring, 21

dictionaries, 33-34

explained, 20-21

lists, 32-33

naming, 38-39

positioning

content alignment, 84-85

explained, 83

flow direction, 85-86

horizontal and vertical alignment, 83-84

stretch alignment, 84

processing child elements, 36

sizing

explained, 78

explicit sizes, avoiding, 79

height and width, 78-80

margin and padding, 80-82

visibility, 82-83

transforms

applying, 86-88

combining, 94

explained, 86

MatrixTransform, 93

RotateTransform, 88-90

ScaleTransform, 90-92

SkewTransform, 92

support for, 94-95

TranslateTransform, 92-93

values type-converted to object elements, 34

Object keyword, 51

ObjectDataProvider class, 400-402

objects

binding to, 367-368

instantiating via factory methods, 47-48

instantiating with non-default constructors, 47

live objects, writing to, 791-793

logical trees, 57-58

visual trees, 58-62

on-demand download, 212-213

OneTime binding, 403

OneWay binding, 403

OneWayToSource binding, 403-404

OnMnemonic method, 687

OnNoMoreTabStops method, 686

opacity masks, brushes as, 525-527

Opacity property (brushes), 525

OpacityMask property (brushes), 525-527

OpenGL, 8

opening project files in Visual Studio, 348

OR relationships (logical), 429

order of property and event processing, 22

Orientation property

ProgressBar control, 335

StackPanel, 100

WrapPanel, 102

OriginalSource property (RoutedEventArgs class), 144

OrthographicCamera class

blind spots, 543

compared to PerspectiveCamera class, 549-551

LookDirection property, 542-546

Position property, 541-542

UpDirection property, 546-548

Z-fighting, 543

OuterConeAngle property (PointLights), 566

OverlapPanel, 759-764

overlapping content, 673

overlapping visuals, hit testing with, 501-503

Overlay property (TaskbarItemInfo), 231

overlays, adding to taskbar items, 231

overriding

ArrangeOverride method, 750-751

MeasureOverride method, 748-750

P

packageURI, 347

Padding property (FrameworkElements class), 80-82

Page elements, 194-196

PageFunction class, 203-204

pages

loose XAML pages, 213-214

Page elements, 194-196

refreshing, 199

returning data from, 203-204

sending data to, 202-203

stopping loading, 199

panels, 77

Canvas, 98-100, 119

content overflow, handling

clipping, 122-124

explained, 122

scaling, 126-130

scrolling, 124-126

custom panels

communication between parents and children, 748-751

explained, 747-748

FanCanvas, 764-768

OverlapPanel, 759-764

SimpleCanvas, 751-756

SimpleStackPanel, 756-759

DockPanel

examples, 105-107

explained, 105

interaction with child layout properties, 107-108

mimicking with Grid, 119

properties, 105

explained, 97-98

Grid

cell properties, 111

compared to other panels, 119

explained, 108

interaction with child layout properties, 120

interactive sizing with GridSplitter, 115-116

mimicking Canvas with, 119

mimicking DockPanel with, 119

mimicking StackPanel with, 119

sharing row/column sizes, 117-119

ShowGridLines property, 112

sizing rows/columns, 112-115

start page with Grid, 108-112

SelectiveScrollingGrid, 121-122

StackPanel

explained, 100

interaction with child layout properties, 101

mimicking with Grid, 119

TabPanel, 120

ToolBarOverflowPanel, 121

ToolBarPanel, 121

ToolBarTray, 121

UniformGrid, 121

Visual Studio-like panes, creating

sequential states of user interface, 130-134

VisualStudioLikePanes.xaml, 134-136

VisualStudioLikePanes.xaml.cs, 136-140

WrapPanel

and right-to-left environments, 104

examples, 103-104

explained, 102

interaction with child layout properties, 104-105

properties, 102

panning

enabling with touch events, 164-165

with inertia, 166-167

Paragraph Blocks, 320

Parse method, 794

parsing XAML at runtime, 36-38

partial keyword, 40

partial-trust applications, 13

parts (control), 447-449

PasswordBox control, 316

Path class, 509-510

path-based animations, 635

PathGeometry class

ArcSegment, 478

BezierSegment, 478

example, 478-480

explained, 477

FillRule property, 480-481

LineSegment, 478

PolyBezierSegment, 478

PolyLineSegment, 478

PolyQuadraticBezierSegment, 478

QuadraticBezierSegment, 478

Paused ProgressState, 230

Pen class, 487-489

percentage sizing, 114

performance

cached composition

BitmapCache class, 531-533

BitmapCacheBrush class, 533

Viewport2DVisual3D support for, 589

improving rendering performance

BitmapCache class, 531-533

BitmapCacheBrush class, 533

RenderTargetBitmap class, 530-531

XAML, 53

WPF 3.5 enhancements, 14

WPF 4 enhancements, 15

WPF 4.5 enhancements, 16

persisting application state, 192

PerspectiveCamera class

blind spots, 543

compared to OrthographicCamera class, 549-551

LookDirection property, 542-546

Position property, 542

UpDirection property, 546-548

Z-fighting, 543

Petzold, Charles, 19

PinToStart() method, 773

PixelFormats enumeration, 311

pixels

device-independent pixels, 82

pixel boundaries, 15

pixel shaders, 529

Play method, 652

PlayingCard control

behavior

code-behind file, 730

final implementation, 733-735

initial implementation, 729-733

resources, 730-731

generic resources, 737-738

placing into ListBox, 738

user interface, 735-738

PointLight, 562-564

PolyBezierSegment class, 478

Polygon class, 509

Polyline class, 508

PolyLineSegment class, 478

PolyQuadraticBezierSegment class, 478

Position property (Cameras), 541-542

positioning elements

content alignment, 84-85

explained, 83

flow direction, 85-86

horizontal and vertical alignment, 83-84

stretch alignment, 84

Positions property (MeshGeometry3D class), 577

power easing functions, 635-636

PreferUnconvertedDictionaryKeys property, 46

PressureFactor property (StylusPoint object), 157

PreviewKeyDown event, 150

PreviewKeyUp event, 150

printing logical/visual trees, 60-61

PrintLogicalTree method, 61

PrintVisualTree method, 60

PriorityBinding class, 411-412

procedural code

accessing binary resources from, 347-348

animation classes

AutoReverse property, 616

BeginTime property, 614-615

DoubleAnimation, 609-610

Duration property, 612

EasingFunction property, 618

explained, 606-608

FillBehavior property, 619

From property, 612-614

IsAdditive property, 619

IsCumulative property, 619

lack of generics, 608-609

linear interpolation, 610-611

RepeatBehavior property, 616-617

reusing animations, 611

SpeedRatio property, 615

To property, 612-614

Binding object in, 361-363

compared to XAML, 20

defining and applying resources in, 357-358

embedding PropertyGrid with, 696-698

frame-based animation, 607

markup extensions in, 31

mixing XAML with

BAML (Binary Application Markup Language), 41-44

CAML (Compiled Application Markup Language), 42

compiling XAML, 39-41

generated source code, 42

loading and parsing XAML at runtime, 36-38

naming XAML elements, 38-39

procedural code inside XAML, 43

skins, 462

timer-based animation, 606

type converters in, 27

procedural code, timer-based animation, 607

ProgressBar control, 335

adding to taskbars, 230

pie chart control template, 442-444, 453-455

ProgressState property (TaskbarItemInfo), 230

ProgressValue property (TaskbarItemInfo), 230

project files, opening in Visual Studio, 348

PromptBuilder class, 663-665

properties. See also specific properties

attributes, 21

dependency properties

attached properties, 72-75

attached property providers, 74-75

change notification, 65-67

explained, 62-63

implementation, 63-65

property value inheritance, 67-69

support for multiple providers, 69-72

.NET properties, binding to, 365-367

order of processing, 22

property triggers, 65-67

property wrappers, 64-65

Properties collection, 185

property elements, 25-26

Property keyword, 49-51

property paths, 257

property triggers, 65-67, 424-427, 626-627

property value inheritance, 67-69

property wrappers, 64-65

PropertyGrid

embedding with procedural code, 696-698

embedding with XAML, 698-699

PropertyGroupDescription class, 389

proportional sizing, 113

protecting controls from accidental usage, 723-724

pure-XAML Twitter client, 412-414

Q

QuadraticAttenuation property (PointLights), 564

QuadraticBezierSegment class, 478

QuaternionRotation3D class, 557

QueryContinueDragEventArgs class, 155

Quick Access toolbar, 292-294

R

RadialGradientBrush class, 517-518

RadioButton class, 246-248

RadiusX property

RadialGradientBrush, 517

Rectangle, 505

RadiusY property

RadialGradientBrush, 517

Rectangle, 505

range controls

explained, 334

ProgressBar, 335

Slider, 335-336

Range property (PointLights), 564

raw project files, opening in Visual Studio, 348

readers (XAML)

explained, 783-785

markup compatibility, 791

node loops, 786-787

NodeType property, 787-788

sample XAML content, 789

XAML node stream, 789-791

XamlServices class, 794-797

recent and frequent JumpPaths, 227-228

Rectangle class, 505-506

RectangleGeometry class, 477

Reference keyword, 52

Refresh method, 199

refreshing pages, 199

Register method, 64

rejected items, reponding to, 228

RelativeSource property (Binding object), 365

releases of WPF

WPF 3.0, 12

WPF 3.5, 12-14

WPF 3.5 SP1, 13-14

WPF 4, 14-15

WPF 4.5, 12, 15-16

WPF Toolkit, 12

removed items, reponding to, 228

RemovedByUser value (JumpItemRejectionReason enumeration), 228

RemoveFromSchedule method, 780

RemoveHandler method, 142-143

RenderAtScale property (BitmapCache class), 531

rendering

controlling

data templates, 376-379

explained, 373-374

string formatting, 374-376

value converters, 380-384

custom rendering, 497

performance, improving

BitmapCache class, 531-533

BitmapCacheBrush class, 533

RenderTargetBitmap class, 530-531

text, 15, 312

Rendering event, 607

RenderSize property (FrameworkElements class), 79

RenderTargetBitmap class, 530-531

RenderTransform property (FrameworkElements class), 86

RenderTransformOrigin property (UIElement class), 87

RepeatBehavior property (animation classes), 616-617

RepeatButton class, 245

ResizeBehavior property (GridSplitter), 116

ResizeDirection property (GridSplitter), 116

resizing Ribbon

resizing behavior, 284-285

ribbon controls, 288-289

RibbonGroup, 286-288

RibbonTab, 285-286

resolution independence, 10

Resource build action, 342-343

ResourceDictionary, 33-34, 355

ResourceDictionaryLocation parameter, 467

resources

binary resources

accessing, 343-348

defining, 342-343

explained, 341

localizing, 348-349

defined, 341

keyless resources, 422-423

logical resources

accessing directly, 358

consolidating color brushes with, 351-353

defining and applying in procedural code, 357-358

explained, 349-350

interaction with system resources, 358-359

resource lookup, 353

resources without sharing, 356

static versus dynamic resources, 353-355

for PlayingCard custom control, 730-731

Resources property, 350

responding to rejected or removed items, 228

restoring application state, 192

restricting style usage, 420-421

retained mode systems, 12

retained-mode graphics systems, 473-474

returning data from pages, 203-204

reusing animations, 611

Ribbon control, 15

application menu, 291-292

contextual tabs, 294-295

example, 278-281

galleries, 297-298

IsDropDownOpen property, 280

IsHostedInRibbonWindow property, 281

IsMinimized property, 280

key tips, 289-290

minimizing, 280

Quick Access toolbar, 292-294

resizing

resizing behavior, 284-285

ribbon controls, 288-289

RibbonGroup, 286-288

RibbonTab, 285-286

ribbon controls

examples, 282-283

overview, 281

properties, 283-284

resizing, 288-289

RibbonGroup, 279, 286-288

RibbonTab, 279, 285-286

RibbonWindow, 280-281

ScreenTips, 295-296

RibbonApplicationMenu class, 291-292

RibbonButton, 281-283

RibbonCheckBox, 281

RibbonComboBox, 282

RibbonGallery control, 297-298

RibbonGroup, 279, 286-288

RibbonQuickAccessToolBar control, 292-294

RibbonRadioButton, 281

RibbonSeparator, 282

RibbonSplitButton, 282

RibbonTab, 279, 285-286

RibbonTextBox, 282

RibbonToggleButton, 282

RibbonToolTip control, 295-296

RibbonTwoLineText, 282

RibbonWindow, 280-281

RichTextBox control, 316

Right property (Canvas), 98

right-hand rule, 541, 578

right-handed coordinate systems, 541-542

RotateTransform, 88-90

RotateTransform3D, 557-560

rotation

enabling with touch events, 164-165

with inertia, 166-167

RotateTransform3D class, 557-560

Rotation property (ManipulationDelta class), 163

routed events

About dialog example, 144-146

adding to user controls, 727-728

attached events, 147-149

consolidating routed event handlers, 149-150

defined, 141

explained, 141-142

implementation, 142-143

RoutedEventArgs class, 144

routing strategies, 143-144

stopping, 147

RoutedEvent property (RoutedEventArgs class), 144

RoutedEventArgs class, 144

RoutedUICommand objects, 172

routing strategies, 143-144

RoutingStrategy enumeration, 143

RowDetailsVisibilityMode property (DataGrid), 277

rows

DataGrid

displaying row details, 276-277

selecting, 275

Grid

sharing row/column sizes, 117-119

sizing, 112-116

Run method, 182-183

runtime, loading and parsing XAML at, 36-38

S

satellite assemblies, creating with LocBaml, 349

Save method, 795

Scale property (ManipulationDelta class), 163

ScaleTransform, 90-92, 127

ScaleTransform3D class, 555-557

ScaleX property (RotateTransform class), 90

ScaleY property (RotateTransform class), 90

scaling, 126-130

about nonprinciple axis, 557

nearest-neighbor bitmap scaling, 310

ScaleTransform3D class, 555-557

ScheduledToastNotification object, 779-780

scheduling toast notifications, 779-780

scope of typed styles, 421

ScreenTips with Ribbon control, 295-296

scRGB color space, 512

ScrollBars, 125-126

scrolling, 124-126

controlling in items controls, 260-261

ListBox control, 269

ScrollViewer control, 124-126

Section Blocks, 320

security in XAMLBrowser applications, 211

Select value (InkCanvasEditingMode), 318

SelectedDatesChanged event, 340

SelectedIndex property (Selector class), 261

SelectedItem property (Selector class), 261

SelectedValue property (Selector class), 261

selecting rows/cells, 275

selection boxes (ComboBox control), customizing, 262-265

SelectionChanged event, 261, 266

SelectionMode property

Calendar control, 337

DataGrid, 275

ListBox, 268

SelectionUnit property (DataGrid), 275

SelectiveScrollingGrid, 121-122

Selector class, 261

selectors (data template), 380

SelectVoice method, 662

SelectVoiceByHints method, 662

sending

data to pages, 202-203

toast notifications, 774-775

SendToast() method, 774, 777

Separator control, 299

SetBinding method, 363

SetCurrentValue method, 72

SetOutputToDefaultAudioDevice method, 663

SetOutputToWaveFile method, 663

SetResourceReference method, 357

Setters, 419-420

Settings class, 192

ShaderEffect, 529

Shapes

clip art based on Shapes, 510-511

Ellipse class, 506

explained, 503-504

how they work, 507

Line class, 507-508

overuse of, 505

Path class, 509-510

Polygon class, 509

Polyline class, 508

Rectangle class, 505-506

Shared keyword, 51, 356

sharing

data source with DataContext, 372-373

Grid row/column sizes, 117-119

resources without sharing, 356

styles, 418-420

shortcuts, AppUserModelIDs, 772-773

ShowDialog method, 190-191

ShowDuration property (ToolTip class), 250

ShowFrequentCategory property (JumpList class), 227

ShowGridLines property (Grid), 112

ShowOnDisabled property

ContextMenuService class, 302

ToolTipService class, 251

ShowRecentCategory property (JumpList class), 227

ShutdownMode enumeration, 184

Silicon Graphics OpenGL, 8

SimpleCanvas, 751-756

SimpleQuadraticEase class, 639

SimpleStackPanel, 756-759

SineEase function, 638

Single keyword, 51

single-instance applications, 186

single-threaded apartment (STA), 181

SingleDate value (SelectionMode), 337

SingleRange value (SelectionMode), 337

sizing. See also resizing Ribbon

elements

explained, 78

explicit sizes, avoiding, 79

height and width, 78-80

margin and padding, 80-82

visibility, 82-83

Grid rows/columns, 112-115

absolute sizing, 113

autosizing, 113

GridLength structures, 114-115

interactive sizing with GridSplitter, 115-116

percentage sizing, 114

proportional sizing, 113

sharing row/column sizes, 117-119

SkewTransform, 92

skins

defined, 415

examples, 459-461

explained, 458-462

Light and Fluffy skin example, 463-464

malicious skins, preventing, 464-465

missing styles, troubleshooting, 461

procedural code, 462

Skip method, 793

Slider control, 335-336

SmallImageSource property (ribbon controls), 283

snapshots of individual video frames, taking, 658

SnapsToDevicePixels property, 15, 532

Snoop, 12

snooze interval (toast notifications), 780

SolidColorBrush class, 512

SortDescription class, 394

SortDescriptions collection, 386

SortDescriptions property

ICollectionView, 385

ItemsCollection, 269

sorting, 269, 385-387

SoundPlayer class, 652

SoundPlayerAction class, 652-653

Source property

MediaElement class, 654

RoutedEventArgs class, 144

SourceName property (Trigger class), 433

spaces in geometry strings, 487

spans, 325-326

SpeakAsync method, 662

SpeakAsyncCancelAll method, 662

SpecularMaterial class, 575-576

speech recognition

converting spoken words into text, 665-667

specifying grammar with GrammarBuilder, 668-669

specifying grammar with SRGS, 667-668

Speech Recognition Grammar Specification (SRGS), 667-668

speech synthesis

explained, 662

GetInstalledVoices method, 662

PromptBuilder class, 663-665

SelectVoice method, 662

SelectVoiceByHints method, 662

SetOutputToWaveFile method, 663

SpeakAsync method, 662

Speech Synthesis Markup Language (SSML), 663-665

SpeechSynthesizer, 662

Speech Synthesis Markup Language (SSML), 663-665

SpeechRecognitionEngine class, 667

SpeechSynthesizer, 662

SpeedRatio property (animation classes), 615

spell checking in TextBoxes, 315

Spinning Prize Wheel, 168-169

splash screens, 187-188

spline keyframes, 631-632

SpotLight, 562-566

SpreadMethod property (LinearGradientBrush), 515

Square line cap (Pen), 488

sRGB color space, 512

SRGS (Speech Recognition Grammar Specification), 667-668

SSML (Speech Synthesis Markup Language), 663-665

STA (single-threaded apartment), 181

StackPanel, 101. See also SimpleStackPanel

explained, 100

interaction with child layout properties, 101

with Menu control, 300

mimicking with Grid, 119

setting font properties on, 72-73

standard desktop applications

Application class

creating applications without, 186

events, 184

explained, 181-182

Properties collection, 185

Run method, 182-183

Windows collection, 184

application state, 192

ClickOnce, 192-193

common dialogs, 188-189

custom dialogs, 189-190

explained, 177-178

multiple-document interface (MDI), 185

multithreaded applications, 187

retrieving command-line arguments in, 184

single-instance applications, 186

splash screens, 187-188

Window class, 178-180

Windows Installer, 192

start pages, building with Grid, 108-112

Start screen shortcuts, 772-773

starting animations from property triggers, 626-627

StartLineCap property (Pen class), 487

StartMember value (NodeType property), 787

StartObject value (NodeType property), 787

StartPoint property (LinearGradientBrush), 514

StartupUri property (Application class), 182-183

state groups, 450

states

control states, 449-455, 741-745

persisting and restoring, 192

state groups, 450

visual states

respecting with triggers, 442-446

respecting with VSM (Visual State Manager), 447-455

STAThreadAttribute, 691

Static keyword, 52

static versus dynamic resources, 353-355

StaticResource markup extension, 353-355

StatusBar control, 307-308

StopLoading method, 199

stopping

page loading, 199

routed events, 147

Storyboards

EventTriggers containing Storyboards, 619-620

TargetName property, 623-624

TargetProperty property, 620-623

as Timelines, 627-628

StreamGeometry class, 481

Stretch alignment, 84

Stretch enumeration, 127

Stretch property

DrawingBrush class, 519

MediaElement class, 656

StretchDirection enumeration, 127

StretchDirection property (MediaElement class), 656

String keyword, 51

StringFormat property (Binding object), 374

strings

formatting, 374-376

representing geometries as, 485-487

Stroke objects, 317

Style class. See styles

styles

consolidating property assignments in, 417

default styles, 70

defined, 415

explained, 416-418

implicit styles, creating, 421-422

inheritance, 418

keyless resources, 422-423

missing styles, troubleshooting, 461

mixing with control templates, 456-457

named styles, 421-422

per-theme styles and templates, 466-469

restricting usage of, 420-421

Setter behavior, 419-420

sharing, 418-420

theme styles, 70

triggers

conflicting triggers, 429

data triggers, 427-428

explained, 423-424

expressing logic with, 428-430

property triggers, 424-427

respecting visual states with, 442-446

typed styles, 421-422

stylus events, 156-158

StylusButtonEventArgs instance, 158

StylusButtons property (StylusDevice class), 157

StylusDevice class, 156-157

StylusDownEventArgs instance, 158

StylusEventArgs class, 158

StylusPoint objects, 157

StylusSystemGestureEventArgs instance, 158

Subclass keyword, 51

Surface Toolkit for Windows Touch, 170

SynchronousMode keyword, 51

system resources, interaction with logical resources, 358-359

system-defined background, setting, 359

SystemKey property (KeyEventArgs event), 150

SystemSounds class, 652

T

TabControl control, 271-272

TabInto method, 684

Table Blocks, 320

TabletDevice property (StylusDevice class), 157

TabPanel, 120

TargetName property (Storyboards), 623-624

TargetNullValue property (Binding object), 364

TargetProperty property (Storyboards), 620-623

TargetType property

ControlTemplate class, 434-435

Style class, 420-421

taskbar, customizing

explained, 230

taskbar item overlays, 231

taskbar item progress bars, 230

thumb buttons, 232-233

thumbnail content, 231

TaskDialogs, 236-239

TemplateBindingExtension class, 435-437

templated parent properties, respecting, 435-441

Content property (ContentControl class), 435-437

hijacking existing properties for new purposes, 441

other properties, 440

templates

control templates

editing, 457-458

mixing with styles, 456-457

named elements, 434

resuability of, 438-440

simple control template, 431-432

target type, restricting, 434-435

templated parent properties, respecting, 435-441

other properties, 438-439

triggers, 432-434

visual states, respecting with triggers, 442-446

visual states, respecting with VSM (Visual State Manager), 447-455

DataTemplates, 376-379, 398-399

defined, 415

explained, 430-431

per-theme styles and templates, 466-469

template selectors, 380

toast notification templates, 775-778

Windows themes, 470

temporarily canceling data binding, 384

testing

3D hit testing, 590-591

input hit testing

explained, 497

InputHitTest method, 511

visual hit testing

callback methods, 503

explained, 497

with multiple Visuals, 498-501

with overlapping Visuals, 501-503

simple hit testing, 497-498

text

converting spoken words into, 665-667

InkCanvas control, 316-318

PasswordBox control, 316

rendering, 15

RichTextBox control, 316

TextBlock control

explained, 313-314

explicit versus implicit runs, 314

properties, 313

support for multiple lines of text, 315

whitespace, 314

TextBox control, 315

TextOptions class, 312

WPF 3.5 enhancements, 13

WPF 4 enhancements, 15

text-to-speech

explained, 662

GetInstalledVoices method, 662

PromptBuilder class, 663-665

SelectVoice method, 662

SelectVoiceByHints method, 662

SetOutputToWaveFile method, 663

SpeakAsync method, 662

Speech Synthesis Markup Language (SSML), 663-665

SpeechSynthesizer, 662

TextBlock control

explained, 313-314

explicit versus implicit runs, 314

properties, 313

support for multiple lines of text, 315

whitespace, 314

TextBox control, 315

TextElement class, 319-320

Blocks

AnchoredBlock class, 326-327

BlockUIContainer, 321

List, 320

Paragraph, 320

sample code listing, 321-324

Section, 320

Table, 320

Inlines

AnchoredBlock, 326-327

defined, 324-325

InlineUIContainer, 329

LineBreak, 327

Span, 325-326

TextFormattingMode property (TextOptions), 312

TextHintingMode property (TextOptions), 312

TextOptions class, 312

TextRenderingMode property (TextOptions), 312

texture coordinates, 582

TextureCoordinates property (MeshGeometry3D class), 581

theme dictionaries, 466

theme styles, 70

ThemeDictionaryExtension, 468

ThemeInfoAttribute, 467-468

themes

defined, 415, 465

generic dictionaries, 467

per-theme styles and templates, 466-469

system colors, fonts, and parameters, 465-466

theme dictionaries, 466

theme styles, 70

Thickness class, 80-82

ThicknessConverter type converter, 82

thumb buttons (taskbar), adding, 232-233

ThumbButtonInfo property (TaskbarItemInfo), 232-233

thumbnail content (taskbar), customizing, 231

ThumbnailClipMargin property (TaskbarItemInfo), 231

tile brushes

DrawingBrush class, 518-522

ImageBrush class, 522-523

VisualBrush class, 523-525

TileMode enumeration, 521

TileMode property (DrawingBrush class), 519-521

Timelines, Storyboards as, 627-628

timer-based animation, 606-607

TimeSpan keyword, 51

To property (animation classes), 612-614

toast element, 778

toast notifications

audio, 778

canceling, 780

changing color of, 775

notification events, 778-779

prerequisites, 771-773

scheduled notifications, 779-780

sending, 774-775

templates, 775-778

ToastNotification object

Activated event, 778-779

Dismissed event, 779

Failed event, 779

sending, 774-775

ToastNotifier object, 774

ToggleButton class, 245-246

ToolBar control, 304-306

ToolBarOverflowPanel, 121

ToolBarPanel, 121

ToolBarTray, 121, 305

ToolTip class, 249-251

ToolTip property (ribbon controls), 295-296

ToolTipService class, 251

Top property (Canvas), 98

touch events, 159-162

basic touch events, 159-162

explained, 158

manipulation events

adding inertia with, 165-170

explained, 162-163

ManipulationCompleted, 163

ManipulationDelta, 163

ManipulationStarted, 163

ManipulationStarting, 163

panning/rotating/zooming with, 164-165

WPF 4 enhancements, 14

TouchDevice property (TouchEventArgs class), 159

TouchDown event, 160-162

TouchEventArgs class, 159

TouchMove event, 160-162

TouchUp event, 160-162

TraceSource object, 383

Transform method, 795

Transform property (Cameras), 547

Transform3Ds

combining, 560

explained, 552-553

house drawing example, 553-554

MatrixTransform3D class, 552, 560

RotateTransform3D class, 552, 557-560

ScaleTransform3D class, 552, 555-557

Transform3DGroup class, 552

TranslateTransform3D class, 552-555

TransformConverter type converter, 93

transforms

applying, 86-88

clipping and, 124

combining, 94

explained, 86

MatrixTransform, 93

RotateTransform, 88-90

ScaleTransform, 90-92

SkewTransform, 92

support for, 94-95

Transform3Ds

combining, 560

explained, 552-553

house drawing example, 553-554

MatrixTransform3D class, 552, 560

RotateTransform3D class, 552, 557-560

ScaleTransform3D class, 552, 555-557

Transform3DGroup class, 552

TranslateTransform3D class, 552-555

TranslateTransform, 92-93

TransformToAncestor method, 594-603

TransformToDescendant method, 598-603

transitions (animation), 645-649

Transitions property (VisualStateGroup class), 455

TranslateAccelerator method, 685-687

TranslateTransform, 92-93

TranslateTransform3D class, 554-555

Translation property (ManipulationDelta class), 163

transparent colors, 518

transparent regions, 153

trees

logical trees, 57-58

visual trees, 58-62

TreeView control, 302-304

TreeViewItem class, 303-304

TriangleIndices property (MeshGeometry3D class), 578-579

Trigger class. See triggers

TriggerBase class, 67

triggers

conflicting triggers, 429

in control templates, 432-434

data triggers, 67, 427-428

event triggers, 67

explained, 423-424

expressing logic with, 428

logical AND, 429-430

logical OR, 429

property triggers, 65-67, 424-427

respecting visual states with, 442-446

Triggers collection, 67

Triggers property (FrameworkElement class), 67

troubleshooting

data binding, 383

missing styles, 461

TryFindResource method, 357

tunneling, 143

turning off type conversion, 46

Twitter, pure-XAML Twitter client, 412-414

TwoWay binding, 403

type conversion, turning off, 46

type converters

BrushConverter, 28

explained, 26-27

finding, 28

FontSizeConverter, 28

GridLengthConverter, 114

ImageSourceConverter, 309

LengthConverter, 82

in procedural code, 27

ThicknessConverter, 82

TransformConverter, 93

values type-converted to object elements, 34

Type keyword, 52

TypeArguments keyword, 45, 51

typed styles, 421-422

U

UI Automation, supporting in custom controls, 745-746

UICulture element, 348

Uid keyword, 51, 349

UIElement class

binding to, 368

explained, 56

properties

IsKeyboardFocused, 152

IsMouseDirectlyOver, 153

RenderTransformOrigin property, 87

UIElement3D base class, 13

UIElement3D class

ContainerUIElement3D, 588

explained, 56

ModelUIElement3D, 586-588

uniform scale, 555

UniformGrid, 121

unmanaged code, mixing with managed code, 678

UpdateLayout method, 80

UpdateSourceExceptionFilter property (Binding object), 408

UpdateSourceTrigger enumeration, 404

UpdateSourceTrigger property (Binding object), 404

UpDirection property (Cameras), 546-548

Uri keyword, 51

URIs

package URI, 347

URIs for accessing binary resources, 344-345

usage context, 373

UseLayoutRounding property, 15

user controls

behavior, 721-723

dependency properties, 724-727

explained, 717-718

protecting controls from accidental usage, 723-724

routed events, 727-728

user controls versus custom controls, 718

user interfaces, 719-721

user interfaces

creating for PlayingCard custom control, 735-738

creating for user controls, 719-721

marking with localization IDs, 349

USER subsystems, 8

V

ValidatesOnNotifyDataErrors property (Binding object), 408-409

ValidateValueCallback delegate, 72

validation rules

adding to Binding object in, 405-409

INotifyDataErrorInfo interface, 408-409

ValidationRules property (Binding object), 406

value converters, 385

Binding.DoNothing values, 384

bridging incompatible data types, 380-383

customizing data display, 383-384

explained, 380

temporarily canceling data binding, 384

ValueMinMaxToIsLargeArcConverter, 445-446

ValueMinMaxToPointConverter, 445-446

Value value (NodeType property), 788

ValueMinMaxToIsLargeArcConverter, 445-446

ValueMinMaxToPointConverter, 445-446

ValueSource structure, 70

variables, HwndSource, 693-694

vector graphics, 10

verbosity of XAML, 53

versions of WPF

WPF 3.0, 12

WPF 3.5, 12-14

WPF 3.5 SP1, 13-14

WPF 4, 14-15

WPF 4.5, 12, 15-16

WPF Toolkit, 12

VerticalAlignment property

Canvas panel, 99

Grid, 120

StackPanel, 101

WrapPanel, 104

VerticalAlignment property (FrameworkElements class), 83-85

video support

controlling underlying media, 659-660

embedded resources, 661

explained, 656

MediaElement, 656-658

taking snapshots of individual video frames, 658

Windows Media Player, 656

VideoDrawing class, 474

Viewbox class, 127-130

Viewbox property (DrawingBrush class), 521-522

Viewport2DVisual3D class, 13, 588-589

Viewport3D class, 591-594

Viewport3DVisual class, 594

views

collection views, customizing

creating new views, 393-395

explained, 385

filtering, 391

grouping, 387-390

navigating, 391-392

sorting, 385-387

TreeView control, 302-304

viewSource_Filter method, 394

virtualization, 269, 276

VirtualizingPanel class, 102

VirtualizingStackPanel, 102, 259

Visibility property (FrameworkElements class), 82-83

Visible value (Visibility enumeration), 82

Visual C++, 678, 691

Visual class, 62

explained, 56

TransformToAncestor method, 594-598

visual effects, 527-529

visual hit testing

callback methods, 503

explained, 497

with multiple Visuals, 498-501

with overlapping Visuals, 501-503

simple hit testing, 497-498

Visual State Manager. See VSM

visual states

respecting with triggers, 442-446

respecting with VSM (Visual State Manager)

control parts, 447-449

control states, 449-455

Visual Studio debugger, Jump Lists and, 220

Visual Studio-like panes, creating

sequential states of user interface, 130-134

VisualStudioLikePanes.xaml, 134-136

VisualStudioLikePanes.xaml.cs, 136-140

Visual3D class

explained, 56

TransformToAncestor method, 598-603

TransformToDescendant method, 598-603

Visual3Ds

explained, 584

ModelVisual3D class, 585-586

UIElement3D class, 586

ContainerUIElement3D, 588

ModelUIElement3D, 586-588

Visual3D class

explained, 56

TransformToAncestor method, 598-603

TransformToDescendant method, 598-603

VisualBrush class, 523-525

VisualChildrenCount method, 495-496

Visuals

custom rendering, 497

displaying on screen, 494-496

DrawingContext methods, 492

DrawingVisuals

explained, 491

filling with content, 491-494

explained, 491

visual hit testing

callback methods, 503

explained, 497

with multiple Visuals, 498-501

with overlapping Visuals, 501-503

simple hit testing, 497-498

VisualStateGroup class, 455

VisualStateManager. See VSM

VisualStudioLikePanes.xaml file, 134-136

VisualStudioLikePanes.xaml.cs file, 136-140

VisualTransition objects, 645-649

VisualTreeHelper class, 59

vshost32.exe, 220

VSM (Visual State Manager), 14

animations and

button ControlTemplate with VisualStates, 641-644

transitions, 645-649

respecting visual states with

control parts, 447-449

control states, 449-455

W

WCF (Windows Communication Foundation), 13

Webcam control (Win32)

HostingWin32.cpp file, 681-683

Webcam.cpp file, 674-677

Webcam.h file, 674

Window1.h file, 679-680

Webcam.cpp file, 675-677

Webcam.h file, 674

websites, wpf.codeplex.com, 12

whitespace, TextBlock control, 314

Width property (FrameworkElements class), 78-80

Win32 controls, WPF interoperability

explained, 673-674

HwndSource class, 688-691

keyboard navigation, 683-687

launching modal dialogs, 688, 695

layout, 692-695

Webcam control, 674-683

winding order (mesh), 577-578

Window class, 178-180

Window1.h file, 679

Window1.xaml file, 713

Window1.xaml.cs file, 712

WindowHostingVisual.cs file, 493-495

WindowIconVisibility property (Ribbon), 281

WindowInteropHelper class, 704

Windows collection, 184

Windows Communication Foundation (WCF), 13

Windows desktop applications. See also Windows desktop features

multiple-document interface (MDI), 185

navigation-based desktop applications

explained, 193-194

hyperlinks, 197-198

journal, 198-200

Navigate method, 196-197

navigation containers, 194-196

navigation events, 200-201

Page elements, 194-196

returning data from pages, 203-204

sending data to pages, 202-203

single-instance applications, 186

standard desktop applications

Application class, 181-186

application state, 192

ClickOnce, 192-193

common dialogs, 188-189

custom dialogs, 189-190

explained, 177-178

multithreaded applications, 187

retrieving command-line arguments in, 184

splash screens, 187-188

Window class, 178-180

Windows Installer, 192

Windows Runtime APIs in, 771-772

Windows desktop features

Aero Glass, 233-236

Jump Lists

and Visual Studio debugger, 220

associating with applications, 218

explained, 218

JumpPaths, 225-228

JumpTasks, 218-219, 221-224

taskbar item customizations

explained, 230

taskbar item overlays, 231

taskbar item progress bars, 230

thumb buttons, 232-233

thumbnail content, 231

TaskDialogs, 236-239

Windows Forms, WPF interoperability

converting between two representatives, 703-704

ElementHost class, 700-702

explained, 695-696

launching modal dialogs, 699, 704

PropertyGrid, 696-699

Windows Installer, 192

Windows Media Player, 656

Windows Runtime APIs, 771-772

Windows themes, 470

Windows XP, WPF differences on, 16

WindowsFormsHost class, 698

WinFX, 24

WorkingDirectory property (JumpTask), 222

WPF 3.0, 12

WPF 3.5, 12-14

WPF 3.5 SP1, 13-14

WPF 4, 14-15

WPF 4.5, 12, 15-16

WPF Toolkit, 12

wpf.codeplex.com website, 12

WrapPanel

examples, 103-104

explained, 102

interaction with child layout properties, 104-105

properties, 102

right-to-left environments, 104

WriteableBitmap class, 13

writers (XAML)

explained, 783-785

node loops, 786-787

writing to live objects, 791-793

writing to XML, 793-794

XamlServices class, 794-797

X

X property

StylusPoint object, 157

TranslateTransform class, 92

x:Arguments keyword, 47, 49

x:Array keyword, 52

x:AsyncRecords keyword, 49

x:Boolean keyword, 49

x:Byte keyword, 49

x:Char keyword, 50

x:Class keyword, 40-41, 50

x:ClassAttributes keyword, 50

x:ClassModifier keyword, 50

x:Code keyword, 50

x:ConnectionId keyword, 50

x:Decimal keyword, 50

x:Double keyword, 50

x:FactoryMethod keyword, 47-50

x:FieldModifier keyword, 50

x:Int16 keyword, 50

x:Int32 keyword, 50

x:Int64 keyword, 50

x:Key keyword, 50, 352

x:Members keyword, 49-50, 52

x:Name keyword, 38, 50, 434

x:Null keyword, 52

x:Object keyword, 51

x:Property keyword, 49, 51

x:Reference keyword, 52, 699

x:Shared keyword, 51, 356

x:Single keyword, 51

x:Static keyword, 52

x:String keyword, 51

x:Subclass keyword, 51

x:SynchronousMode keyword, 51

x:TimeSpan keyword, 51

x:Type keyword, 52

x:TypeArguments keyword, 45, 51

x:Uid keyword, 51, 349

x:Uri keyword, 51

x:XData keyword, 51

XAML (Extensible Application Markup Language), 10

{} escape sequence, 375

accessing binary resources from, 343-346

advantages of, 18

advantages over procedural code, 20

animation

explained, 619-620

starting animations from property triggers, 626-627

Storyboards as Timelines, 627-628

TargetName property, 623-624

TargetProperty property, 620-623

BAML (Binary Application Markup Language)

decompiling back into XAML, 43-44

defined, 41

Binding object in, 363-365

CAML (Compiled Application Markup Language), 42

common complaints about, 52-53

compiling, 39-41

defined, 19-20

embedding PropertyGrid with, 698-699

explained, 17-18

extensibility, 35

factoring, 355-356

generated source code, 42

keywords, 49-52

loading and parsing at runtime, 36-38

loose XAML pages, 213-214

markup extensions

explained, 28-31

parameters, 29

in procedural code, 31

namespaces

explained, 22-24

implicit .NET namespaces, 23

mapping, 22

object elements

attributes, 21

content property, 31-32

declaring, 21

dictionaries, 33-34

explained, 20-21

lists, 32-33

naming, 38-39

processing child elements, 36

values type-converted to object elements, 34

order of property and event processing, 22

procedural code inside, 43

property elements, 25-26

pure-XAML Twitter client, 412-414

readers

explained, 783-785

markup compatibility, 791

node loops, 786-787

NodeType property, 787-788

sample XAML content, 789

XAML node stream, 789-791

XamlServices class, 794-797

running XAML examples, 18

specifications, 20

type converters

BrushConverter, 28

explained, 26-27

finding, 28

FontSizeConverter, 28

in procedural code, 27

values type-converted to object elements, 34

writers

explained, 783-785

node loops, 786-787

writing to live objects, 791-793

writing to XML, 793-794

XamlServices class, 794-797

XAML Browser Applications (XBAPs), 207

ClickOnce caching, 208

deployment, 211

explained, 207-208

full-trust XAML Browser applications, 210

integrated navigation, 210-211

limitations, 208-209

on-demand download, 212-213

security, 211

XAML2009

built-in data types, 46

dictionary keys, 46

event handler flexibility, 48

explained, 44-45

full generics support, 45

object instantiation via factory methods, 47-48

object instantiation with non-default constructors, 47

properties, defining, 49

XAML Browser Applications (XBAPs), 13, 207

ClickOnce caching, 208

deployment, 211

explained, 207-208

full-trust XAML Browser applications, 210

integrated navigation, 210-211

limitations, 208-209

on-demand download, 212-213

security, 211

XAML Cruncher, 19

XAML2009

built-in data types, 46

dictionary keys, 46

event handler flexibility, 48

explained, 44-45

full generics support, 45

object instantiation via factory methods, 47-48

object instantiation with non-default constructors, 47

properties, defining, 49

XamlBackgroundReader class, 784

XamlMember class, 788

XamlObjectReader class, 783

XamlObjectWriter class, 784

XamlPad, 19

XAMLPAD2009, 18-19

XamlPadX, 19, 59

XamlReader class

explained, 783-785

Load method, 36-37

LoadAsync method, 37

XamlServices class, 794-797

XamlType class, 788

XamlWriter class, 44, 783-785

XamlXmlReader class, 783-786

markup compatibility, 791

sample XAML content, 789

XAML node stream, 789-791

XamlXmlWriter class, 784

XBAPs. See XAML Browser Applications

XData keyword, 51

XML, writing to, 793-794

XML Paper Specification (XPS), 319

xml:lang attibute, 49

xml:space attribute, 49

XmlDataProvider class, 396-400

XPath (XML PAth Language), 397

XPS (XML Paper Specification), 319

Y-Z

Y property

StylusPoint object, 157

TranslateTransform class, 92

Z order, 99-100

Z-fighting, 543

zooming

enabling with touch events, 164-165

with inertia, 166-167

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset