. . . . . . . . . . . . . . . . . . 886
Theme-Specific Styles and the Default Style . . . . . . . . . . . . . . . . . . 889
Extending an Existing Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 892
Understanding Masked Edit Controls . . . . . . . . . . . . . . . . . . . . . . . . . 892
Mask Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 892
The MaskedTextProvider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 894
Implementing a WPF Masked Text Box . . . . . . . . . . . . . . . . . . . . . . . 894
Improving the MaskedTextBox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 898
Custom Panels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 900
The Two-Step Layout Process. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 900
The Canvas Clone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 903
A Better Wrapping Panel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 905
Custom-Drawn Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 908
The OnRender() Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Pages:
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57