Академический Документы
Профессиональный Документы
Культура Документы
Дронов В. Самоучитель Silverlight 3 (2010)
Дронов В. Самоучитель Silverlight 3 (2010)
-
2010
681.3.06
32.973.26-018.2
75
75
. .
Silverlight 3. .: -, 2010.
464 .: .
ISBN 978-5-9775-0514-7
Web-
Microsoft Silverlight 3. ,
, . Web-,
Silverlight-.
Microsoft Visual Web Developer 2008 Express Edition, XAML C#, , , Silverlight-.
Silverlight . , Web-, . , Silverlight.
Silverlight-.
Web-
681.3.06
32.973.26-018.2
:
.
.
ISBN 978-5-9775-0514-7
. ., 2010
, "-", 2010
.................................................................................................................. 1
- ! .............................................................................. 1
Silverlight ......................................................................................................... 2
......................................................................................................... 2
........................................................................................................... 3
.................................................................................................. 4
...................................................................................................................... 5
I. SILVERLIGHT.
..................................................................... 7
1. Silverlight .............................................................................. 9
WWW ........................................................................................................ 9
: Web- ...................................................................... 9
: Web- .............................................................. 13
: Web- ............................................................. 14
Web- ....................... 16
HTML+CSS+JavaScript .............................................................................................. 16
Adobe Flash ................................................................................................................. 18
Sun Java ....................................................................................................................... 19
Microsoft Silverlight ............................................................................................................ 20
? ........................................................................................................................ 21
2. Silverlight.................................... 22
...................................................................................... 22
Silverlight- ................................................................................... 23
.................................................................................................................... 23
Silverlight- Web- ...................... 24
................................................................................................................ 25
................................................................................................................. 26
IV
Silverlight- .......................................................................................... 28
Silverlight-. ....................................................... 28
. .................................................................... 29
. ................................................. 31
, Silverlight- .............................................. 32
Silverlight-................................... 33
? ........................................................................................................................ 34
3. Silverlight- ............................................... 35
Microsoft Visual Web Developer 2008 Express Edition ..................................................... 35
. ................................................................................................ 39
Silverlight- ...................................................................................... 40
................................................................................................................ 42
Solution Explorer .................................................................................................... 43
Silverlight- ................................................................. 44
XAML ............................................................................. 44
. Toolbox ......................................... 48
Silverlight- .......................................................... 52
""............................................................................... 53
Silverlight- ......................................................................... 56
................................................................................................... 57
.................................................. 58
C# ................................................................... 59
C#, .......................................... 62
............................................................................................................. 65
Visual Web Developer 2008 .......................................................... 66
? ........................................................................................................................ 67
II. , , ,
........................................................................ 69
4. ............................................................ 71
, .................................................................................. 71
................................................................................................................................. 73
......................................................................................................................... 74
............................................................................................................. 75
...................................................................................... 75
............................................................. 77
............................................................................... 78
XAML-. ......................................................... 79
? ........................................................................................................................ 81
5. ................................................................... 82
........................................................................................................................ 82
"".................................................................................................. 82
"" .................................................................................................... 89
""...................................................................................................... 89
............................................................................................................................. 91
? ........................................................................................................................ 92
6. ...................................................................... 93
TextBlock .............................................................................................................. 93
TextBlock ..... 97
TextBox ............................................................................................................ 99
PasswordBox ..................................................................................... 102
Button ................................................................................................................... 103
CheckBox ............................................................................................................. 105
RadioButton ............................................................................................ 106
ListBox .................................................................................................................. 107
ComboBox .............................................................................. 109
Calendar.......................................................................................................... 110
DatePicker ............................................................................. 111
Slider ................................................................................................................ 111
ProgressBar .................................................................................. 112
ScrollViewer .................................................................................. 113
TabControl .................................................................................... 114
............................................................................. 116
? ...................................................................................................................... 119
7. ............................... 120
................................................................................................................. 120
Image...................................................................................................... 121
...................................................................... 122
.................................................................................... 124
MediaElement ........................................................................................ 124
.................................................. 126
? ...................................................................................................................... 127
8. .................................................................................. 128
................................................................................................ 128
.............................................................................................. 129
............................................................. 130
............................................................................. 132
.......................................................... 132
? ...................................................................................................................... 134
VI
.................................................................................................................... 139
C#, Silverlight .................................................. 140
................................................................................................................. 140
........................................................................................................ 142
..................................................................................... 142
............................................................................................................... 143
.............................................................................................................. 143
......................................................................................................... 144
............................................................................................. 144
...................................................................... 144
.......................................................................... 145
...................................................................................................................... 146
......................................................................................... 146
. ........................................................ 147
........................................................................................ 148
, .......................................... 148
........................................................................................................................ 148
.................................................................................... 149
........................................................................................... 150
........................................................................................ 150
.............................................................................................. 151
............................................................................................. 152
.................................................................................................. 153
............................................................................................. 153
........................................................................................................ 155
......................................................................................................................... 155
............................................................................................... 155
................................................................................................... 157
........................................................................................................................ 158
.......................................................................................... 158
...................................................................................... 160
...................................................................................... 161
.................................................................... 161
....................................................................................................... 162
............................................................................................................................ 163
................................................................................................................ 165
.................................................................................................................... 166
? ...................................................................................................................... 167
VII
........................................................................................................... 170
................................................................................ 171
............................................................................................. 171
........................................................................ 171
............................................................................................................ 172
............................................................................... 172
.......................................................................................... 172
............................................................................................. 173
............. 174
................. 176
null.................................................................................................... 177
................................................................................... 177
Silverlight................................................................ 177
Object ..................................................................................................... 178
String ...................................................................................................... 178
Math ....................................................................................................... 179
............................................................................... 180
................................................................................. 181
................................................................................................ 182
............................................................................................ 183
................................................................................. 186
............................................................................................ 187
................................................................... 189
......................................................................................................................... 190
............................................................................................. 190
Silverlight .......................................................... 191
Int16, Int32, Int64, UInt16, UInt32 UInt64 ................................................... 191
Double Single................................................................................................. 191
Decimal ............................................................................................................. 192
DateTime ........................................................................................................... 193
TimeSpan .......................................................................................................... 195
............................................................................. 196
...................................................................................................................... 196
................................................................................................................... 199
? ...................................................................................................................... 199
VIII
...................................................................... 204
.............................................................. 205
Dictionary ........................................................................................................... 207
Dictionary ..................................................................... 207
............................................................................... 207
........................................................... 207
................................................................................... 208
........................................................................... 209
.................................................................................... 209
Queue .......................................................................................................... 210
Stack .................................................................................................................. 210
, ............................................... 211
? ...................................................................................................................... 212
IX
V. SILVERLIGHT.
.................................................. 269
15. ............................................................................................. 271
......................................................... 271
....................................................................................................... 274
. .................................................................................... 276
....................................................... 276
. ......................................... 277
....................................................................................... 279
Border ............................................................................................................ 284
................................................................................................................ 285
....................................................................................................... 285
................................................................................................... 286
................................................................................................... 291
................................................................................................................. 293
.......................................................... 294
? ...................................................................................................................... 294
XI
...................................................................................... 358
................................................................. 359
................................................................... 361
? ...................................................................................................................... 363
XII
.............................................................................. 415
..................................................................................... 418
? ...................................................................................................................... 420
......................................................................................................... 435
.................................................................................... 437
-! Microsoft Silverlight 3!
Web-! !
? ? Silverlight? , ?
Web-?
- !
,
. , , , , , ,
. ...
, , .
, . , Web-
, -...
! Web-, , Web-, Web-. Web-
Web-,
Web-, -
, , . , ( ...).
Web-
. ,
Adobe Flash. , Sun Java (
Oracle). , -
- , "" - HTML+CSS+JavaScript. ,
, Mozilla XUL, Microsoft ActiveX .
.
Microsoft Silverlight.
"" , . , ,
, .
. , , , , , .
Silverlight
Silverlight " "
1. .
Web- , -
.
.
, (
), .
, , .
.
Microsoft, -
SharePoint 2010.
-
.
, , .
( Flash).
Silverlight Silverlight-. ,
, , , -
(Web-)
.
! .
Silverlight. , .
, . , Windows
.
1. Web- Silverlight.
Silverlight. Web- http://
go.microsoft.com/fwlink/?LinkId=128526.
2. Microsoft Visual Web Developer 2008 Express Edition. Web-, Silverlight-.
Web- http://www.microsoft.com/express/download/default.aspx
Visual Web Developer 2008,
Microsoft Visual Studio 2008 Express Edition, , , Visual Web Developer 2008. SP1. ;
Microsoft Visual Studio 2008 Express Edition .
Visual Web Developer 2008 , Microsoft SQL Server 2008 Express Edition Silverlight 2
Tools. Microsoft SQL Server 2008 Express Edition , . .
22 , .
Silverlight 2 Tools
Silverlight 3 Tools.
3. Silverlight 3 Tools. Visual Web Developer 2008, Silverlight 3.
Web- http://go.microsoft.com/fwlink/?LinkID=128219.
Silverlight 3 Tools
Silverlight. .
4. Silverlight 3.
Silverlight 3 . CHM Web- http://go.microsoft.com/fwlink/?LinkId=127106.
! .
, Silverlight-.
, .
. .
, (<>)
, . , , ,
<>. :
if (<>)
.
([]) . :
[< , >] < > < >
, .
[], , .
,
. :
string[] sPlatforms = {"HTML+CSS+JavaScript", "Flash", "Java",
"Silverlight"};
, .
.
,
.
, -
(. .),
, .
.
, .
.
.
,
.
, -
"-", ,
.
"-" .
.
, Visual Web
Silverlight.
1.
Silverlight
2.
Silverlight
3.
Silverlight-
Silverlight
, Silverlight? , ,
Web-...
Web-? ?
... .
WWW
, . ? ? ,
, "" "", - ""?
(, , )
WWW. . ,
, (
-...).
: Web-
World Wide Web . Web-, HTML (Hypertext Markup Language ) ,
Web-. Web-, ( , -
10
I. Silverlight.
), Web-
( ). .
HTML , HTML.
;
, , ,
. ,
Web- .
Web- , ,
, Microsoft Windows.
Web- Web HTML, . ,
, Web-
txt, htm html;
Web- ,
.
Web- Web-,
, HTML , .
, . , , , , ,
HTML.
Web- Web-? --,
, .
, - Web-,
Web- -. - ,
Web-, :
http://www.compression.ru/all_anns.htm
, ? - Web- " ",
. http://www.compression.ru -
, , all_anns.htm
(, , ).
(/), , -.
1. Silverlight
11
- , , :
www.compression.ru/all_anns.htm
, , .
-, Web- ( http://www.compression.ru) . , Web- (all_anns.htm).
-:
http://www.compression.ru/video/index_ru.htm
Web- " ",
. Web-
Web- video/index_ru.htm.
- , , Web-. :
http://www.compression.ru/
, Web-
Web-.
, , , .
?
, Web. , , Web-,
, .
, Web-, Web-,
, Web. . Web-
, Web-.
Web- , Web-
. , - all_anns.htm , Web .
, Web-
, . ,
video/index_ru.htm (. ), Web-
index_ru.htm, video, , ,
.
12
I. Silverlight.
, ? Web Web- .
default.htm[l] index.htm[l] (
Web-) .
, , .
HTML
. ,
.
.
, Web- , -
. Web-, , Web-
, Web.
(Cascade Style
Sheet, CSS). HTML Web-, .
Web-.
Web-, HTML, . - , Adobe PDF, Microsoft
Word, Excel PowerPoint, Adobe Flash .
Web- , ; , Web- Web- Web.
,
, .
1. Silverlight
13
,
CSS, ,
"" Web-.
: Web-
,
. Web , , . , ...
. , ,
. , ,
"" , ,
, , . !..
- ,
? , Web-, Web-
Web- ,
? !
, Web- -
( Web-) Web- ,
. ,
Web- ,
. !
- .
, Web-
, , .
, Web- , .
, ! Web- ( ) !
Web-
Web-, Web-, , , Web-. .
14
I. Silverlight.
, , Web- (
). ,
, "". (
.)
HTML .
Web- Web-,
. : ,
, , , ., .
,
" " . Web-, -, . , , Web-
( . 1.1).
: Web-
, - . ,
, ( ).
Web-
( , )
, , . , , , ,
.
. , , Web . Web-
1. Silverlight
15
! , ! Web-
, .
.
Web- ,
Web- ,
.
Web- , Web- ,
Web-,
. ,
, ,
, - ,
, .
!
16
I. Silverlight.
Web-
, , Web :
;
;
( ,
);
,
;
,
( ). , .
Web- .
.
HTML+CSS+JavaScript
Web- -: HTML, CSS Web-, JavaScript.
, Web-.
1. Silverlight
17
18
I. Silverlight.
. , , . , , ,
.
.
Adobe Flash
Flash FutureSplash
90- . 1996
Macromedia, , , 2006 Adobe.
Flash Web- ,
Web. Flash CS4 . ActionScript.
Flash Web-
Flash.
Flash ,
, Flash .
:
,
, .;
ActionScript;
;
-.
-, Flash -!
JavaScript, ActionScript . Flash
() , . , , ,
, , .
.
.
1. Silverlight
19
Flash:
Web- , . , , ,
Flash;
ActionScript;
Flash ;
Flash Flash (, ,
);
Flash , , Adobe Flash Professional CS4.
Adobe Flash , Web-. , ,
!..
Sun Java
Java Sun 1995 .
; "" , , Web-. ,
, Sun...
Java. ; Java ( Sun "-"). Java Java.
Java, , , "" Flash:
,
.;
Java;
;
;
-.
:
Java;
Java ;
20
I. Silverlight.
Java -
Java, .
Java , Flash. Java
Web-.
Microsoft Silverlight
Microsoft Silverlight. , . !
Silverlight 2007 . ,
, Web-
. 2008 , , . 2009 . - .
Silverlight ""
Microsoft .NET. , Web-, Web-.
:
, .NET, , Visual Basic C#;
,
, .;
-
. ,
Microsoft Visual Studio 2008 Express Edition, Microsoft (http://www.microsoft.com/);
;
;
-.
, Silverlight . , ""
"".
:
Silverlight -
1. Silverlight
21
Silverlight (-
Microsoft).
! , , .
, HTML+CSS+JavaScript, Flash Java! Silverlight !
?
.
, Silverlight-,
. 3,
, - Silverlight-.
Silverlight
WWW, , Web-,
.
""
Microsoft Silverlight 3.
Silverlight. , Silverlight, :
, . , Silverlight
.
. ...
: . .
,
"" . "" Windows- ,
, .
Web- , : Web, .
"", Web- . ,
1. Web-
2. Silverlight
23
""
.
"" ,
( , , .).
.
. , Web-, HTML+CSS+
JavaScript, HTML CSS, JavaScript. Web Flash , , ActionScript.
Silverlight , .
Silverlight- .
Silverlight-
, ""
.
Windows-
. Web- Silverlight
.
Silverlight- Web-!
.
Windows-, .
, , .
Silverlight; Silverlight-.
Windows, , Windows-. ,
, .
Silverlight , Web-
"" Silverlight-; ,
24
I. Silverlight.
, Web- Silverlight .
Windows- ,
. Windows : , , , -, .
, , ,
, .
Windows- ,
, , . , , , . ,
.
Silverlight- - ,
. .
Silverlight- , ( 18 19).
- Silverlight 3 , . ,
, , .
Silverlight 3 . ...
Silverlight-
Web-
Silverlight- .
Web- Silverlight . ( Web- 1.)
, , HTML-
Web- HTML, -
. , Web- Web-,
,
Web- .
2. Silverlight
25
, Silverlight- , Web- . (,
: ,
- , Adobe PDF .)
, Web-,
Web- Silverlight.
Web-.
Silverlight-
Web-. Web-
Silverlight . ,
, Silverlight-.
26
I. Silverlight.
, Silverlight, , "" .
, : ( )
.
...
, . , , ,
!.. -
; , .
? .
:
"" , ;
, ;
, ;
,
.
. , . , .
Silverlight.
, ; ,
.
(),
.
: ,
. .
Silverlight .
"". -
. ,
. .
2. Silverlight
27
"". -
.
"". , -
.
. 2.12.3 , , .
. 2.1. ""
Y1
Y2
Y3
X1
. 2.2. ""
(
)
X2
X3
. 2.3. ""
. 2.4 .
"" "" "" .
Silverlight-
. , ...
.
28
I. Silverlight.
""
""
""
. 2.4.
Silverlight-
, . , . , - , ! ,
, , .
.
Silverlight-.
, Web- Web- Silverlight. Web-, Web , Silverlight-, .
?
... .
?
.
, , Web-, . , "",
" ", , , " ".
;
.
Silverlight ,
.
2. Silverlight
29
"" Silverlight.
, .
? .
, .
, -, , -, , .
, ,
.
, Silverlight-,
, , . ;
.
,
, "", -.
Silverlight- . !
.
, . , ,
.
. , " ". , . (, ), (, )
, .
,
, .
, .
, .
"" .
?
, Silverlight
, .
30
I. Silverlight.
" " ,
, .
.
, .
. ,
,
, .
, , ,
.
, . , ,
. ; ,
, .
, :
,
, , , , .;
,
.;
, , -
.
Silverlight- ! . ,
, .
Silverlight!
, . , .
. ,
, ,
. "", , .
, ,
" " , ,
2. Silverlight
31
.
, ,
. , Silverlight, Microsoft.
Silverlight-.
- Windows-. ,
. , "" ,
( , ), . ,
,
.
, , , .
, , ?
32
I. Silverlight.
. , .
, , . ,
, , . ,
, , ,
. ;
,
,
.
, , ,
, , . , , - "" , .
.
- ,
. ,
.
, " ",
"", .
.
"", ,
, .
Silverlight , , . "" ;
. !
,
Silverlight-
, , Silverlight-.
, , ,
. ,
( ), ,
, . .
2. Silverlight
33
, , . .
, .
. -, , , (, )! ...
1. , , .
2. .
3. ( , , ) ,
.
, ,
Silverlight-. . ,
.
. , .
, , , .
Silverlight-
, ,
Web-
Silverlight. - .
XAML (eXtensible Application Markup Language
; "").
XML (eXtensible Markup
Language ). , XAML , ; , , , , , . ( XAML HTML,
.)
, .NET,
, Visual Basic C#. C# ( "-").
34
I. Silverlight.
XAML ,
Microsoft . C#
"" MSIL
(MicroSoft Intermediate Language Microsoft).
Silverlight.
--! , ? - ?
?
,
,
. ,
.
.
Microsoft Visual Studio 2008 Express Edition,
, Silverlight,
XAML C#. !
Silverlight-
, .
, , , , . ,
Silverlight- :
XAML C#.
Silverlight-.
Microsoft Visual Studio 2008 Express Edition, ,
Microsoft Visual Web Developer 2008
Express Edition, Web-, . , , XAML
C#.
36
I. Silverlight.
( "", , -
3. Silverlight-
37
"" .
( ). -
,
. . 3.3 ,
Toolbox,
CSS Properties Manage Styles. ,
(. 3.4);
, .
. , Visual Web Developer 2008.
. , ,
( ,
Windows).
38
I. Silverlight.
. 3.3. ,
Toolbox,
CSS Properties Manage Styles
. 3.4. Toolbox,
. , ,
. ;
. . 3.5.
Visual Web Developer 2008 . , , ,
3. Silverlight-
39
Microsoft, Web-; , ,
.
. 3.5.
(
). - Silverlight-.
.
- . .
1 2, Silverlight-
XAML C# ( , MSIL; C#). . , . ,
Silverlight,
, .
, ,
( ). (,
) : XAML-,
C#-. , , Visual Web Developer 2008,
. ,
, Visual Web Developer 2008.
,
. - ,
" " . ?
( Visual Web
Developer 2008 ) . , :
;
(, , ,
. .);
40
I. Silverlight.
(, Silverlight- -
Web-, Web-).
, ,
. ,
.
, , .
. Visual Web Developer 2008 .
Visual Web Developer 2008 . , .
Silverlight-
Silverlight- ( )
, New Project File
<Ctrl>+<Shift>+<N>. New Project
(. 3.6), (
).
3. Silverlight-
41
,
Visual Web Developer 2008 .
Host the Silverlight application in a new Web site. OK.
Visual Web Developer 2008
. . 3.8. !
42
I. Silverlight.
Silverlight-,
Visual Web Developer 2008, .
?
, . ,
XAML,
( ,
).
? , Visual Web
Developer 2008, . , ,
.
Visual Web Developer 2008
.
, .
, -
. Visual Web
3. Silverlight-
43
Developer 2008. , , ;
, .
, , .
Solution Explorer
Visual Web Developer 2008, , Solution Explorer (. . 3.2).
, , .
Solution Explorer , , Solution Explorer View
<Ctrl>+<Alt>+<L>.
Solution Explorer . Visual
Web Developer 2008 , .
( ),
( . 3.2).
"" Solution Explorer . "" "".
"" Properties -
. 24.
"" References , .
4.
"" App.xaml
XAML, .
13.
"" MainPage.xaml
XAML, (
).
,
"" MainPage.xaml. -
MainPage.xaml.cs. C#, (
).
.
: , XAML,
xaml, C# xaml.cs.
44
I. Silverlight.
: , , Visual
Web Developer 2008 MainPage. ,
: MainPage.xaml MainPage.xaml.cs.
: , ,
App. : App.xaml App.xaml.cs.
Solution
Explorer, .
.
Silverlight-, Visual Web
Developer 2008 , XAML
. , MainPage.xaml.
.
, .
Silverlight-
XAML ( ):
<UserControl x:Class="Convertor.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid x:Name="LayoutRoot">
</Grid>
</UserControl>
?..
XAML
- , XAML.
.
XAML Silverlight. 1. ,
.
2 ,
, . . : XAML ,
3. Silverlight-
45
, ,
.
? -, , . -, ,
. -, .
, Silverlight-
-. 2 ,
, . ,
-, , .
, XAML .
, , XAML. ,
,
. , .
XAML , <
>. ( 2, ; , .)
<
.
XAML : ; .
, : , < >. <
/; . , , .
,
XAML:
<TextBox></TextBox>
TextBox
, "
".
( ).
:
<TextBox />
46
I. Silverlight.
, /.
, Visual Web Developer 2008
XAML .
- .
, . :
XAML, , -
;
;
< >="< >", -
.
, ,
" ", Text TextBox (. . ),
XAML;
<TextBox Text=" "></TextBox>
, , .
,
60 , MaxLength.
60.
<TextBox Text=" " MaxLength="60"></TextBox>
, .
XAML. , .
<TextBox Text=" " MaxLength="60" />
/ .
,
/ . - XAML
.
- . ?
3. Silverlight-
47
.
<Grid></Grid>
<Grid>
<Grid>
<TextBox Text=" " MaxLength="60" />
</Grid>
- . ,
. ,
, () , "" , . .
:
<Grid>
<TextBox Text=" " MaxLength="60" />
<TextBox Text=" " MaxLength="40" />
<TextBox Text=" " />
</Grid>
"" .
? XAML ? .
XAML, Visual Web
Developer 2008 ,
. <UserControl>.
<UserControl x:Class="Convertor.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
</UserControl>
2, Silverlight- , .
.
, UserControl ,
. , ,
Convertor.MainPage x:Class <UserControl>.
48
I. Silverlight.
x:Class .
. Visual Web Developer 2008
Silverlight , UserControl.
<UserControl>, , .
4. , Silverlight-, .
- <UserControl> .
, , ,
, ,
.
( 2).
<Grid> x:Name LayoutRoot.
.
.
Toolbox
2 ,
. , , .
, . , !
, MainPage.xaml, XAML
. , "" Solution
Explorer (. . 3.2) .
,
Toolbox.
. , ,
Toolbox View
<Ctrl>+<Alt>+<X>.
XAML, Toolbox
,
Silverlight ( . 3.4). .
3. Silverlight-
49
( , ). ,
, .
Text, TextBlock.
, . ,
XAML <TextBlock> .
TextBlock > . ... , !
Visual Web Developer 2008 (. 3.9).
, , Visual Web Developer 2008, .
- ,
, <Enter>.
, , <Esc>
.
50
I. Silverlight.
. 3.9.
, .
, , , .
Text Text.
Visual Web Developer 2008 <TextBlock>,
.
"".
! , Visual Web Developer 2008 .
, . XAML-, :
<Grid x:Name="LayoutRoot">
<TextBlock Text=""></TextBlock>
</Grid>
, !..
. <TextBlock>, TextAlignment (
) Right (). Text=""
TextAlignment.
Visual Web Developer 2008 , , Right. !
<Grid x:Name="LayoutRoot">
<TextBlock Text="" TextAlignment="Right"></TextBlock>
</Grid>
, . Toolbox
XAML- TextBox .
3. Silverlight-
51
<TextBox>, Text,
0. .
, ,
Silverlight .
Width (), Height () TextBox . 100 22 ,
<TextBox>.
XAML- :
<Grid x:Name="LayoutRoot">
<TextBlock Text="" TextAlignment="Right"></TextBlock>
<TextBox Text="0" Width="100" Height="22"></TextBox>
</Grid>
, , . ,
XAML, , ,
, ,
. :
<Grid x:Name="LayoutRoot">
<TextBlock Text="" TextAlignment="Right"></TextBlock>
<TextBox Text="0" Width="100" Height="22"></TextBox>
<TextBlock Text="" TextAlignment="Right"></TextBlock>
<TextBox Text="0" Width="100" Height="22"></TextBox>
</Grid>
, , . , IsReadOnly ( ) true (, ""). , Visual Web Developer 2008 , .
( XAML-,
):
<TextBox Text="0" Width="100" Height="22" IsReadOnly="true"></TextBox>
,
. Button.
"" .
.
Content Button. <Button>.
52
I. Silverlight.
XAML- :
<Grid x:Name="LayoutRoot">
<TextBlock Text="" TextAlignment="Right"></TextBlock>
<TextBox Text="0" Width="100" Height="22"></TextBox>
<Button Content=""></Button>
<TextBlock Text="" TextAlignment="Right"></TextBlock>
<TextBox Text="0" Width="100" Height="22" IsReadOnly="true"></TextBox>
</Grid>
, <Ctrl>+<S>. .
, -, ,
. , Visual Web Developer 2008
, . , Web-...
Silverlight-
, Visual Web Developer 2008 .
Silverlight- Visual Web Developer 2008 Web-, HTML-.
, , , Web-
Web-.
Silverlight- Visual Web Developer 2008,
:
Start Debugging (
) ;
, , , .
, , ...
, , . 3.10.
-, , . ,
...
Web-, .
!
3. Silverlight-
53
. 3.10. Silverlight-
Web-
""
2 , ""
. ,
( ).
"", -, , -,
.
, "" (. . ) "" .
. 3.10.
Grid RowDefinitions ColumnDefinitions .
, , .
, ( ) ; , , .
.
.
. RowDefinitions Grid.
, . <Grid>,
, XAML
<< >.< >></< >.< >>
54
I. Silverlight.
,
, , .
. Toolbox
.
:
<Grid x:Name="LayoutRoot">
<Grid.RowDefinitions>
</Grid.RowDefinitions>
. . .
</Grid>
XAML-, "",
, .
.
.
, RowDefinition, .
XAML. ,
.
<Grid x:Name="LayoutRoot">
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
. . .
</Grid>
. . Height
RowDefinition .
<Grid x:Name="LayoutRoot">
<Grid.RowDefinitions>
<RowDefinition Height="25"></RowDefinition>
<RowDefinition Height="25"></RowDefinition>
<RowDefinition Height="25"></RowDefinition>
</Grid.RowDefinitions>
. . .
</Grid>
.
ColumnDefinitions Grid;
3. Silverlight-
55
ColumnDefinition, . - Width
ColumnDefinition .
<Grid x:Name="LayoutRoot">
<Grid.RowDefinitions>
<RowDefinition Height="25"></RowDefinition>
<RowDefinition Height="25"></RowDefinition>
<RowDefinition Height="25"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="80"></ColumnDefinition>
<ColumnDefinition Width="100"></ColumnDefinition>
</Grid.ColumnDefinitions>
. . .
</Grid>
- , .
:
Grid.Row="< , >"
Grid.Column="< , >"
, , ,
, ,
.
, ,
.
, ,
( ):
<TextBlock Grid.Row="0" Grid.Column="0" Text=""
TextAlignment="Right"></TextBlock>
, .
XAML-:
<TextBlock Grid.Row="0" Grid.Column="0" Text=""
TextAlignment="Right"></TextBlock>
<TextBox Grid.Row="0" Grid.Column="1" Text="0" Width="100"
Height="22"></TextBox>
56
I. Silverlight.
.
. . 3.11. , , ,
.
. 3.11. Silverlight-
.
...
Silverlight-
. .
MainPage.xaml.cs, C#, . , "" MainPage.xaml
Solution Explorer (. . 3.2)
MainPage.xaml.cs. .
. , :
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
}
}
3. Silverlight-
57
MainPage class. (
, , , .)
UserControl , MainPage
.
, . , MainPage
. ,
. (: .)
MainPage ,
, , MainPage.
, .
, .
, ! . , ,
,
. - !
: ,
?
: - .
( )
x:Name. XAML,
. .
.
, -
, .
, . .
.
, . .
58
I. Silverlight.
:
txtInches;
btnConvert;
txtMillimetres.
, XAML, ,
, LayoutRoot (
):
<Grid x:Name="LayoutRoot">
. . .
</Grid>
!
. ""
btnConvert.
.
< >="< >". -,
, .
Button Click " ". ,
.
3. Silverlight-
59
, ;
C# MainPage.xaml.cs,
MainPage,
"" .
, . XAML-,
( , ,
):
<Button x:Name="btnConvert" Grid.Row="1" Grid.Column="1"
Content="" Click="btnConvert_Click"></Button>
2, ( )
. Visual Web Developer 2008 , , , .
MainPage.xaml. MainPage.xaml.cs,
.
C#
C#-, Visual Web Developer 2008
, . :
private void btnConvert_Click(object sender, RoutedEventArgs e)
{
}
btnConvert_Click. , ,
void. ,
. ( , , , , 2.)
60
I. Silverlight.
, , .
, , ,
. . , (,
, - ).
, , ,
.
( ), .
, .
sender object.
object Silverlight, , , . ,
( btnConvert).
e
RoutedEventArgs.
RoutedEventArgs,
.
( ). .
txtInches ,
txtMillimetres. , .
, txtInches . ,
, . ( ) C# string.
C#-,
. :
btnConvert_Click.
string sInches;
C#! ( , .)
, .
string ()
sInches. Visual Web Developer 2008,
.
3. Silverlight-
61
, ;. , , .
,
txtInches. , :
sInches = txtInches.Text;
. ,
=.
txtInches Text,
. . Visual Web Developer 2008, Text
txtInches.
= , .
sInches. = C#,
.
, ,
, , .
, , sInches Text txtInches.
. , txtMillimetres , txtInches,
".". .
, ,
:
txtMillimetres.Text = sInches + ".";
+ , .
, ( sInches)
( ".") , .
,
, . , :
[< >.]< >
([< , >])
Focus txtInches, , , .
txtInches.Focus();
62
I. Silverlight.
. , ,
, .
! MainPage.xaml.cs .
- .
, ',
.
C#,
25,4 . , ,
txtInches, 25,4, .
Text TextBox . , , . , Visual Web
Developer 2008 .
.
, , . Silverlight . .
, ( ).
, , :
< >.< >
([< , >])
, , .
.
, , .
, ""
, bool.
: true ("") false ("").
true , ,
false (, - , "",
).
double
. , ?
3. Silverlight-
63
, . , .
string sInches;
double sgInches, sgMillimetres;
bool isConverted;
:
sInches ,
txtInches;
sgInches sgMillimetres -
;
isConverted , -
.
sInches = txtInches.Text;
sInches ,
txtInches.
isConverted = double.TryParse(sInches, out sgInches);
.
TryParse double (-,
double , , , ).
:
(
sInches);
, , ,
, (sgInches). out
, ,
, .
, TryParse
true, false.
isConverted .
, . .
if (isConverted)
{
sgMillimetres = sgInches * 25.4;
}
64
I. Silverlight.
if , .
, if
( isConverted), , true, , . false, .
,
sgInches ( ), 25,4 sgMillimetres. , isConverted true, . . txtInches
, sgInches , .
25,4.
25.4. C#
.
else
{
sgMillimetres = 0;
}
, if
false, ,
else . sgMillimetres 0.
txtMillimetres.Text = sgMillimetres + ".";
, ... .
( sgMillimetres) ("."), Silverlight , , . !
.
. MainPage.xaml.cs .
, ,
.
, .
, Silverlight- - !
3. Silverlight-
65
.
, ...
Visual Web Developer 2008 . ,
, , . , , ; ,
...
, , Visual Web
Developer 2008 -, . -, , Yes. -,
,
No. .
, Visual Web
Developer 2008 Error List (. 3.12).
;
Description (-), File ,
, Line , Column
. - , .
, Error List,
, Visual Web Developer 2008 ,
.
,
; .
, Visual Web
Developer 2008 Output, ,
. Error
List, .
, .
.
66
I. Silverlight.
Visual Web Developer 2008
Visual Web
Developer 2008. .
, , .
, <Ctrl>+<S>. Save < , >
( ) File.
,
<Ctrl>+<Shift>+<S>. Save
All ( ) File.
, ,
. , ,
, Solution Explorer. Close File.
, ,
Close Project File.
Open Project File <Ctrl>+<Shift>+<O>.
Open Project,
Windows. ( csproj),
, Close Solution,
.
3. Silverlight-
67
Open File,
Windows. .
Visual Web Developer 2008
. Exit File.
?
, Visual Web Developer 2008
. -
Silverlight-!
- , ,
.
.
68
I. Silverlight.
II
, ,
,
4.
5.
6.
7.
8.
- Silverlight. " " Visual Web
Developer 2008, XAML C#, ,
, . !
, ,
, .
20 .
, ,
. , , .
,
,
Silverlight- Converter. Visual Web
Developer 2008 < >\Visual Studio 2008\Projects.
, , Visual Web Developer 2008
, . .
? .
.
, , csproj.
"" ; ,
.
72
II. , , ,
,
, csproj.user.
( ), , , , sln.
Visual Web Developer 2008 ,
. , .
,
, suo.
, XAML-, ,
, xaml.
, C#-, ,
, xaml.cs.
,
, Visual Web Developer 2008 ;
XAML-, C#-.
( ), .
App,
,
App.xaml App.xaml.cs, MainPage.xaml MainPage.xaml.cs.
.
.
Properties .
, , , .
, Visual Web
Developer 2008 ( , 24).
obj , Visual Web Developer 2008 .
, .
, , , App.g.cs
MainPage.g.cs. C# App MainPage
; Visual Web Developer 2008 .
Bin .
Debug, .
, .
MainPage.
4.
73
...
( ), -
. DLL,
.
, ;
. AppManifest.xaml.
.
.
. ZIP, ,
, xap
. -, .
Web-, ,
. Web.
.
, , , pdb. Visual Web
Developer 2008 ( Visual
Web Developer 2008 ).
?..
Visual Web
Developer 2008, , .
, (
), exe. Silverlight- dll, . . Windows. Silverlight.
, . (
) ( ,
), , Windows. Visual Web Developer 2008
, .
, .
74
II. , , ,
, Silverlight-? . : , , .
Silverlight.
Silverlight , . , , .
, - , . ,
Visual Web Developer 2008
. (
Converter) .
, ,
3 Solution Explorer (. . 3.2). "" References,
. ""
.
, , . Silverlight .NET
, .
Visual Web Developer 2008, "" .
, .
, Silverlight 3 Tools
; (
), .
Visual Web Developer 2008.
,
, Visual Web Developer 2008 .
, , .
, ""
References Solution Explorer Add Reference. Add Reference (. 4.1).
: ,
, OK. ,
4.
75
, Component
Name . ,
Cancel.
""
References Solution Explorer
Remove.
. .
, ,
. , ,
, ( ),
.
( ). -
76
II. , , ,
"" :
, , ,
, , , (,
.).
Silverlight . ,
TextBox ( ) Controls,
Windows, , , System.
, , . -. , -
, -
.
,
(, System.Windows.Controls).
, , .
Visual Web Developer 2008 , .
.
MainPage.xaml.cs :
namespace Convertor
{
. . .
}
namespace . , , , , .
, .
, . ,
, , .
, ,
, :
namespace Converter
{
namespace Converter_Inner
4.
77
{
. . .
}
}
Converter_Inner
Converter. ...
C#.
.
.
.
. , ,
"" "". , .
, .
:
namespace Converter
{
namespace Converter_Inner
{
. . .
}
}
Convertor_Inner :
Convertor.Convertor_Inner.
, .
"" . , Converter
Converter.
78
II. , , ,
, , , , ,
.
namespace Converter
{
namespace Converter_Inner
{
class DataClass
{
}
}
}
DataClass
Convertor.Convertor_Inner.DataClass. TextBox
System.Windows.Controls.TextBox, String System.String.
, Silverlight ,
. , -,
( TextBox ...),
- -, !
. , 3 ,
String System.String. ?
, Visual Web Developer 2008 . ,
,
, .
C#. using,
. ;
.
.
C#, . , Visual Web Developer 2008
"" .
4.
79
C#:
using
using
using
using
using
using
using
using
using
using
using
System;
System.Collections.Generic;
System.Linq;
System.Net;
System.Windows;
System.Windows.Controls;
System.Windows.Documents;
System.Windows.Input;
System.Windows.Media;
System.Windows.Media.Animation;
System.Windows.Shapes;
XAML-.
C#-. XAML-?
.
XAML . .
XAML , C#. .
2, XAML
, Silverlight .
Silverlight, " " ,
MSIL, C#.
, .
, , Visual Web
Developer 2008. xmlns
<UserControl>, .
:
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
,
XAML , . -
80
II. , , ,
, Silverlight.
xmlns <UserControl>:
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
.
, x:
(x:Class, x:Name ). , ( ).
, ,
<UserControl> xmlns :
xmlns:<>="clr-namespace:< >;
assembly=< , ,
>"
. ,
.
, , :
<<, >:< >>
, .
.
Calendar. ,
. Calendar Toolbox XAML- , .
, <UserControl> , Visual Web Developer 2008:
xmlns:controls="clr-namespace:System.Windows.Controls;
assembly=System.Windows.Controls"
"" System.Windows.
Controls, System.Windows.Controls.dll, ,
controls. ,
, ,
System.Windows.Controls.
4.
81
, Calendar:
<controls:Calendar></controls:Calendar>
, Calendar
controls. Visual Web Developer 2008 , System.Windows.Controls.dll, .
, , , Toolbox. Visual Web Developer 2008
XAML- : ,
, , , .
?
Silverlight: , , , . .
Silverlight: , , ,
. .
, , . ,
Silverlight.
Silverlight.
, Silverlight-.
Silverlight; .
""
"" ,
.
"" Grid. ,
<UserControl> .
"" <Grid>, , : , , , .
5.
83
<Grid>
<TextBlock Text=""></TextBlock>
<TextBox Text="0" Width="100" Height="22"></TextBox>
<Button Content=""></Button>
<TextBlock Text=""></TextBlock>
<TextBox Text="0" Width="100" Height="22" IsReadOnly="true"></TextBox>
</Grid>
, , ,
, ("" ). , .
Web- "" . Grid:
MaxWidth , -
MaxHeight , -
MinWidth , -
MinHeight , -
(Double),
.
<Grid MaxWidth="600" MaxHeight="400" MinWidth="100" MinHeight="100">
Margin ,
,
. :
< >,< >,< >,< >
84
II. , , ,
, ,
.
<Grid Margin="5,10,5,10">
: HorizontalAlignment VerticalAlignment.
"" , , .
. , (),
. - .
.
, , (. . , ). ,
.
! HorizontalAlignment
HorizontalAlignment. :
Left ;
Center
;
Right ;
Stretch ,
.
VerticalAlignment VerticalAlignment.
:
Top ;
Center
;
Bottom ;
Stretch ,
.
- ,
Silverlight , Stretch ( "" -
5.
85
). , .
<Grid Width="400" Height="300" HorizontalAlignment="Left"
VerticalAlignment="Bottom">
ShowGridLines, , , ,
.
.
, ,
, , .
Visibility.
Visibility,
: Visible ( ; ) Collapsed
( ). ,
.
Visibility ,
C#-.
<Grid x:Name=grdContainer"" Visibility="Collapsed">
. . .
grdContainer.Visibility = Visibility.Visible;
, C#- . ( Visibility),
,
(Visible).
"" , ,
, .
. ,
,
( ). , "" , . ,
.
86
II. , , ,
RowDefinitions Grid
<Grid.RowDefinitions>, <Grid>.
<Grid.RowDefinitions> <RowDefinition>,
RowDefinition. ,
.
RowDefinition Height,
. :
;
Auto ,
* .
5.
87
< >*.
, ,
.
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="25"></RowDefinition>
<RowDefinition Height="Auto"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
<RowDefinition Height="2*"></RowDefinition>
</Grid.RowDefinitions>
. . .
</Grid>
ColumnDefinitions.
ColumnDefinitionCollection
ColumnDefinition, .
ColumnDefinition Width, .
, Height RowDefinition.
<Grid>
. . .
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100"></ColumnDefinition>
<ColumnDefinition Width="Auto"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
. . .
</Grid>
, , :
Grid.Row="< , >"
Grid.Column="< , >"
, ,
.
<Grid>
. . .
<TextBlock Grid.Row="0" Grid.Column="0" Text=""></TextBlock>
88
II. , , ,
, .
Grid.RowSpan="< , >"
Grid.ColumnSpan="< ,
>"
, ,
,
"" Grid.Row Grid.Column.
Grid.RowSpan , ; ,
Grid.Row Grid.Column, ""
. , .
Grid.ColumnSpan ,
; ,
Grid.Row Grid.Column, "" . ,
, .
<Grid>
. . .
<Button Grid.Row="1" Grid.Column="1" Grid.ColumnSpan="2"
Content=""></Button>
. . .
</Grid>
,
( 1)
.
, , "".
5.
89
""
"", , Silverlight.
.
"" StackPanel.
.
"" <StackPanel>,
, :
, , , .
<StackPanel>
<TextBlock Text=""></TextBlock>
<TextBox Text="0" Width="100" Height="22"></TextBox>
<Button Content=""></Button>
<TextBlock Text=""></TextBlock>
<TextBox Text="0" Width="100" Height="22" IsReadOnly="true"></TextBox>
</StackPanel>
StackPanel Orientation,
, .
Orientation, :
Vertical
( );
Horizontal
.
, StackPanel Width, Height, MinWidth,
MinHeight, MaxWidth, MaxHeight, Margin, HorizontalAlignment, VerticalAlignment
Visibility, "".
<StackPanel Width="200" Height="800" HorizontalAlignment="Right">
""
""
.
.
"" Canvas. .
"" <Canvas>, , : , , , .
90
II. , , ,
<Canvas>
<TextBlock Text=""></TextBlock>
<TextBox Text="0" Width="100" Height="22"></TextBox>
<Button Content=""></Button>
<TextBlock Text=""></TextBlock>
<TextBox Text="0" Width="100" Height="22" IsReadOnly="true"></TextBox>
</Canvas>
:
Canvas.Left="< >"
Canvas.Top="< >"
,
.
(Double) .
, ,
.
<Canvas>
<TextBlock Canvas.Left="20" Canvas.Top="20" Text=""></TextBlock>
<TextBox Canvas.Left="100" Canvas.Top="20" Text="0" Width="100"
Height="22"></TextBox>
<Button Canvas.Left="100" Canvas.Top="60"
Content=""></Button>
<TextBlock Canvas.Left="20" Canvas.Top="100"
Text=""></TextBlock>
<TextBox Canvas.Left="100" Canvas.Top="100" Text="0" Width="100"
Height="22" IsReadOnly="true"></TextBox>
</Canvas>
, "",
. , XAML- , , . ,
Z- . Z- ""
""; Z-
Z-.
5.
91
Z-
:
Canvas.ZIndex="<Z->"
, Z- . , .
<TextBlock Canvas.Left="20" Canvas.Top="20" Canvas.ZIndex="2"
Text=""></TextBlock>
<TextBlock Canvas.Left="20" Canvas.Top="20" Canvas.ZIndex="1"
Text=""></TextBlock>
, . .
Z- ( ...).
,
. UserControl, , .
, .
Loaded.
.
private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
txtInches.Text = "0";
}
Silverlight, , ,
) ,
.
e
RoutedEventArgs.
92
II. , , ,
; , .
Silverlight. : .
.
?
,
. ,
Silverlight . ,
.
Silverlight. "" Silverlight-.
.
-"". Silverlight ,
Silverlight 3 Tools.
, .
, Silverlight,
. , ,
.
TextBlock
C TextBlock
3. ;
, , - .
TextBlock .
, TextBlock <TextBlock>. (
.)
<TextBlock Text=""></TextBlock>
Text. ,
, .
94
II. , , ,
TextAlignment . TextAlignment :
Left ( );
Center ;
Right .
<TextBlock Text="" TextAlignment="Center"></TextBlock>
C#- :
lblInches.TextDecorations = TextDecorations.Underline;
lblInches .
.
3 , , . , TextDecorations , Underline ;
TextDecorationCollection,
.
C#- ,
TextDecorations null.
.
lblInches.TextDecorations = null;
6.
95
Padding
, .
:
< >,< >,< >,< >
.
<TextBlock Text="" Padding="20,2,20,2"></TextBlock>
, , .
FontFamily . ,
, .
Silverlight
Layout, Text, and Input / Text and Fonts
Silverlight.
<TextBlock Text="" FontFamily="Courier New"></TextBlock>
<TextBlock Text="" FontFamily="Verdana,Arial"></TextBlock>
FontFamily ,
Silverlight ,
, .
, . .
"Portable User Interface",
,
Silverlight .
FontSize
.
<TextBlock Text=" !"
FontFamily="Courier New" FontSize="36"></TextBlock>
11 .
FontStretch
. FontStretch. (
"" .
10.)
FontStretch FontStretches. :
UltraCondensed, ExtraCondensed, Condensed SemiCondensed -
, ;
Normal -
( );
96
II. , , ,
, .
FontStretch, .
FontStretch XAML- :
<TextBlock Text="" TextStretch="Expanded"></TextBlock>
C#-:
lblInches.TextStretch = TextStretches.Expanded;
lblInches .
FontStretch
. , ,
...
FontStyle :
. FontStyle. FontStyles, : Normal
( ; ) Italic ( ). FontStyle, .
<TextBlock Text="" TextStyle="Italic"></TextBlock>
lblInches.TextStyle = TextStyles.Italic;
FontWeight "" .
FontWeight.
FontWeights Thin, ExtraLight, Light, Normal, Medium, SemiBold, Bold, ExtraBold,
Black ExtraBlack. FontWeight, "" , ""
"". Normal ( ), Bold .
<TextBlock Text="" TextWeight="Bold"></TextBlock>
lblInches.TextWeight = TextWeights.Bold;
LineHeight, .
.
Double.NaN ""; Silverlight
6.
97
. LineHeight
C#-, :
lblInches.LineHeight = Double.NaN;
, ,
C#-.
ActualWidth (, , )
. , . .
,
.
ActualHeight
. .
Name , x:Name.
TextBlock
! TextBlock
,
.
, TextBlock Inlines.
InlineCollection
Inline.
5 .
<TextBlock>
<TextBlock.Inlines>
. . .
</TextBlock.Inlines>
</TextBlock>
Inline , ,
, Run LineBreak .
Run ,
. Text, FontFamily, FontSize, FontStretch, FontStyle, FonrWeight
TextDecorations, .
<Run FontFamily="Courier New" FontSize="18" Text=""></Run>
98
II. , , ,
, XAML-
<Run>.
.
<TextBlock> ( TextBlock)
<Run> ( ). , , Run, . ,
, .
<TextBlock FontSize="18">
<TextBlock.Inlines>
<Run FontFamily="Courier New" Text=""></Run>
<Run FontFamily="Arial" Text="TextBlock"></Run>
</TextBlock.Inlines>
</TextBlock>
6.
99
</TextBlock.Inlines>
</TextBlock>
"" "TextBlock"
.
TextBox
C TextBox
3.
.
<TextBox Text="0"></TextBox>
Text , .
TextBox Width, Height, MinWidth, MinHeight,
MaxWidth, MaxHeight, Margin, HorizontalAlignment, VerticalAlignment
Visibility. ActualWidth, ActualHeight,
FontFamily, FontSize, FontStretch, FontStyle, FontWeight, Name, Padding,
TextAlignment, TextWrapping, TextBlock.
<TextBox Text="0" Width="100" Height="22" TextAlignment="0"></TextBlock>
MaxLength ,
, .
. 0,
; , , .
SelectedText , , .
, SelectedText
( ) ""; .
C#-.
if (txtTest.SelectedText == string.Empty)
{
. . .
}
100
II. , , ,
false. (. .
SelectedText txtTest
txtTest ), , ( ).
SelectionStart SelectionLength , , .
, .
, SelectionStart , ,
SelectionLength 0.
C#-.
if (txtTest.SelectionLength > 0)
{
. . .
}
> , ,
, , true,
false.
IsEnabled
. ; true ( ), false
. , C#-.
<TextBox x:Name="txtTest" IsEnabled="false"></TextBox>
. . .
txtTest.IsEnabled = true;
IsReadOnly
, true. false, , ,
( ).
AcceptsReturn ,
<Enter> (
, ). ; true ,
false ( ).
<TextBox Width="200" Height="100" TextWrapping="Wrap"
AcceptsReturn="true"></TextBox>
HorizontalScrollBarVisibility VerticalScrollBarVisibility , , , -
6.
101
.
ScrollBarVisibility :
Auto ;
Hidden , -
( );
Visible ;
Disabled , -
( ...).
<TextBox Width="200" Height="100" TextWrapping="Wrap"
AcceptsReturn="true" VerticalScrollBarVisibility="Visible"></TextBox>
, Windows-
; <Tab> , <Shift>+<Tab>
. Silverlight-.
"" Silverlight <Tab> , XAML. .
TabIndex.
.
<TextBox x:Name="txtInches" Text="0" TabIndex="0"></TextBlock>
<TextBox x:Name="txtMillimetres" Text="0" TabIndex="1"></TextBlock>
IsTabStop , false.
true ( ) .
TextBox. .
Focus() . true,
, false, .
.
txtInches.Focus();
SelectAll() .
.
102
II. , , ,
Select() .
:
Select(< >,
< >)
. .
TextBox .
.
SelectionChanged ,
.
private void txtTest_SelectionChanged(object sender, RoutedEventArgs e)
{
string s;
s = txtTest.SelectedText;
}
,
s , txtTest .
TextChanged , .
private void txtTest_TextChanged(object sender, TextChangedEventArgs e)
{
string s;
s = txtTest.Text;
}
3 , , . ; , SelectionChanged
RoutedEventArgs, TextChanged TextChangedEventArgs.
, . .
.
PasswordBox
, ,
. .
6.
103
PasswordBox.
,
.
<PasswordBox Password="password"></PasswordBox>
Password
.
PasswordChar , ""
.
<PasswordBox Password="password" PasswordChar="+"></PasswordBox>
PasswordChanged ,
;
TextChanged.
PasswordBox ActualHeight, ActualWidth,
FontFamily,
FontSize,
FontStretch,
FontStyle,
FontWeight,
Height,
HorizontalAlignment, IsEnabled, IsTabStop, Margin, MaxHeight, MaxLength,
MaxWidth, MinHeight, MinWidth, Name, Padding, TabIndex, VerticalAlignment,
Visibility Width Focus() SelectAll().
Button
Button 3.
.
<Button Content=""></Button>
Content.
<Button Content="" Width="100" Height="25"
FontStyle="Italic" IsEnabled="false"></Button>
104
II. , , ,
.
<Button Width="100" Height="120">
<Button.Content>
<StackPanel>
<TextBlock Text=" ."
TextWrapping="Wrap"></TextBlock>
<CheckBox></CheckBox>
</StackPanel>
</Button.Content>
</Button>
"", ! ( <CheckBox>)!
.
Content , Silverlight ( TextBlock). , , ,
TextBlock, ContentControl. Content
ContentControl.
Button, ,
, , ClickMode :
ClickMode.
Release -
<Enter> <> ( );
Press <Enter>
<> ;
Hover .
<Button Content=" !"
ClickMode="Hover"></Button>
Click .
, .
Button ActualHeight,
ActualWidth, FontFamily, FontSize, FontStretch, FontStyle, FontWeight, Height,
HorizontalAlignment, IsEnabled, IsTabStop, Margin, MaxHeight, MaxWidth,
MinHeight, MinWidth, Name, Padding, TabIndex, VerticalAlignment, Visibility
Width Focus().
6.
105
CheckBox
CheckBox ( )
, .
.
<CheckBox Content=" "></CheckBox>
Content. ,
, , . . ContentControl.
<CheckBox Width="100" Height="120">
<CheckBox.Content>
<TextBlock Text=" ."
TextWrapping="Wrap"></TextBlock>
</CheckBox.Content>
</CheckBox>
, , .
. ,
, .
"" IsThreeState. true
Silverlight, ,
, , false (
).
<CheckBox Content=" " IsThreeState="true"></CheckBox>
IsChecked .
true , , false
( ), null ( IsThreeState true).
<CheckBox Content=" " IsChecked="true"></CheckBox>
. . .
if (chkOption.IsChecked)
{
. . .
}
, IsChecked C#-.
, , ,
.
106
II. , , ,
.
-
, , - . Click, ,
.
private void chkOption_Click(object sender, RoutedEventArgs e)
{
if (chkOption.IsChecked)
{
. . .
}
else
{
. . .
}
}
RadioButton
RadioButton ( )
. .
<RadioButton Content=" "></RadioButton>
Content. ,
, . . ContentControl.
6.
107
.
(
), . .
, ,
. GroupName .
<RadioButton Content=" "
GroupName="Opt"></RadioButton>
<RadioButton Content=" " GroupName="Opt"></RadioButton>
Opt .
"":
. ...
ListBox
ListBox ( ) . .
<ListBox></ListBox>
ListBox Items,
ItemCollection.
FrameworkElement,
ContentControl, , , .
ListBoxItem, .
108
II. , , ,
, , .
<ListBox>
<ListBox.Items>
<ListBoxItem Content=""></ListBoxItem>
<ListBoxItem Content=""></ListBoxItem>
<ListBoxItem Content=""></ListBoxItem>
<ListBoxItem Content=""></ListBoxItem>
</ListBox.Items>
</ListBox>
ListBoxItem Content,
.
ContentControl,
( ;
Silverlight ), .
ListBoxItem IsSelected. true , , false
. false.
<ListBoxItem Content="" IsSelected="true"></ListBoxItem>
,
.
, -
lstTest ( SelectedIndex, -1), , , btnGo ( IsEnabled true).
6.
109
SelectionChanged ,
.
ListBox ActualHeight, ActualWidth,
FontFamily,
FontSize,
FontStretch,
FontStyle,
FontWeight,
Height,
HorizontalAlignment, IsEnabled, IsTabStop, Margin, MaxHeight, MaxWidth,
MinHeight, MinWidth, Name, Padding, TabIndex, VerticalAlignment, Visibility
Width Focus().
ComboBox
ComboBox ( ) . .
Windows . Silverlight .
ComboBox Items,
ItemCollection.
FrameworkElement. ComboBoxItem,
ListBoxItem.
<ComboBox>
<ComboBox.Items>
<ComboBoxItem Content=""></ComboBoxItem>
<ComboBoxItem Content=""></ComboBoxItem>
<ComboBoxItem Content=""></ComboBoxItem>
<ComboBoxItem Content=""></ComboBoxItem>
</ComboBox.Items>
</ComboBox>
110
II. , , ,
Calendar
Calendar ( ) , .
System.Windows.Controls,
System.Windows.Controls.dll.
<controls:Calendar></controls:Calendar>
SelectedDate . !
XAML- <>/< >/<>, ,
; -
, .
C#-
(DateTime), 10.
<controls:Calendar SelectedDate="2009/09/08"></controls:Calendar>
8 2009 .
IsTodayHighlighted , . true ,
false . true.
SelectedDatesChanged , .
Calendar ActualHeight, ActualWidth,
FontFamily,
FontSize,
FontStretch,
FontStyle,
FontWeight,
Height,
HorizontalAlignment, IsEnabled, IsTabStop, Margin, MaxHeight, MaxWidth,
MinHeight, MinWidth, Name, Padding, TabIndex, VerticalAlignment, Visibility
Width Focus().
6.
111
DatePicker
DatePicker ( ) , .
System.Windows.Controls,
System.Windows.Controls.dll.
<controls:DatePicker></controls:DatePicker>
.
DatePicker ActualHeight, ActualWidth,
FontFamily,
FontSize,
FontStretch,
FontStyle,
FontWeight,
Height,
HorizontalAlignment, IsEnabled, IsTabStop, Margin, MaxHeight, MaxWidth,
MinHeight, MinWidth, Name, Padding, TabIndex, VerticalAlignment, Visibility
Width Focus().
Slider
Slider ( ) . .
<Slider></Slider>
Value ,
. .
.
.
SmallChange ,
-.
0.1.
112
II. , , ,
LargeChange ,
.
1.
Minimum , . 0.
Maximum , . 10.
Orientation
. Orientation, :
Horizontal ( );
Vertical .
IsDirectionReversed
, . .
false
( ).
true .
ValueChanged .
Slider ActualHeight, ActualWidth,
FontFamily,
FontSize,
FontStretch,
FontStyle,
FontWeight,
Height,
HorizontalAlignment, IsEnabled, IsTabStop, Margin, MaxHeight, MaxWidth,
MinHeight, MinWidth, Name, Padding, TabIndex, VerticalAlignment, Visibility
Width Focus().
ProgressBar
ProgressBar ( )
. .
<ProgressBar></ProgressBar>
Value . .
.
.
6.
113
Minimum ,
. 0.
Maximum ,
. 100.
, , "" . ,
, "" .
IsIndeterminate. false
, (
), true "" .
ProgressBar ActualHeight, ActualWidth,
FontFamily,
FontSize,
FontStretch,
FontStyle,
FontWeight,
Height,
HorizontalAlignment, IsEnabled, Margin, MaxHeight, MaxWidth, MinHeight,
MinWidth, Name, Padding, VerticalAlignment, Visibility Width.
ScrollViewer
ScrollViewer ( ) ,
- .
.
ScrollViewer ,
. ;
.
<ScrollViewer Width="100" Height="100"
HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
<ScrollViewer.Content>
<TextBox Width="200" Height="200"></TextBox>
</ScrollViewer.Content>
</ScrollViewer>
.
Content ContentControl. .
, .
<ScrollViewer Width="100" Height="100"
HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
114
II. , , ,
<ScrollViewer.Content>
<StackPanel>
<TextBlock Text=" "></TextBlock>
<TextBox Width="200" Height="200"></TextBox>
</StackPanel>
</ScrollViewer.Content>
</ScrollViewer>
"",
.
HorizontalScrollBarVisibility VerticalScrollBarVisibility , , ,
.
ScrollBarVisibility :
Auto ;
Hidden , -
;
Visible ;
Disabled , -
.
HorizontalScrollBarVisibility
VerticalScrollBarVisibility Visible.
Hidden,
TabControl
TabControl ( )
Windows- ; . System.Windows.Controls,
System.Windows.Controls.dll.
<controls:TabControl></controls:TabControl>
TabControl Items,
6.
115
ItemCollection.
,
FrameworkElement;
TabItem, .
<controls:TabControl Width="300" Height="100">
<controls:TabControl.Items>
<controls:TabItem Header=" ">
<TextBlock Text=" "
TextWrapping="Wrap"></TextBlock>
</controls:TabItem>
<controls:TabItem Header=" ">
<StackPanel>
<TextBlock Text=" -"></TextBlock>
<TextBox></TextBox>
</StackPanel>
</controls:TabItem>
</controls:TabControl.Items>
</controls:TabControl>
, TabItem Content, .
ContentControl,
, .
, TabItem Header,
. object (
Silverlight, ), , ( ), .
, , ,
.
TabItem ActualHeight, ActualWidth,
FontFamily,
FontSize,
FontStretch,
FontStyle,
FontWeight,
Height,
HorizontalAlignment, IsEnabled, IsTabStop, Margin, MaxHeight, MaxWidth,
MinHeight, MinWidth, Name, Padding, TabIndex, VerticalAlignment, Visibility
Width Focus().
TabControl.
SelectedIndex,
. , -1 ( , ...).
TabStripPlacement , . Dock :
116
II. , , ,
Top (
);
Bottom ;
Left ;
Right .
Right
SelectionChanged , .
TabControl ActualHeight, ActualWidth,
FontFamily,
FontSize,
FontStretch,
FontStyle,
FontWeight,
Height,
HorizontalAlignment, IsEnabled, IsTabStop, Margin, MaxHeight, MaxWidth,
MinHeight, MinWidth, Name, Padding, TabIndex, VerticalAlignment, Visibility
Width Focus().
, Silverlight . .
, , . , , , . , , Silverlight.
. .
Silverlight-
Convertor.
, ,
. , - !
Silverlight- C#
Convertor2. ( , 3.)
MainPage.xaml "", , "", 25
, . (
6.
117
.)
XAML- (, , )
<StackPanel x:Name="LayoutRoot" Orientation="Horizontal" Height="25">
</StackPanel>
:
cboMode ,
, ;
txtToConvert ;
btnConvert ;
txtConverted .
cboMode ( )
. btnConvert . txtConverted .
,
.
XAML- (,
, ):
<ComboBox x:Name="cboMode" Width="180" Margin="10,0,5,0">
<ComboBox.Items>
<ComboBoxItem Content=" "
IsSelected="true"></ComboBoxItem>
<ComboBoxItem Content=" "></ComboBoxItem>
<ComboBoxItem Content=" "></ComboBoxItem>
<ComboBoxItem Content=" "></ComboBoxItem>
</ComboBox.Items>
</ComboBox>
<TextBox x:Name="txtToConvert" Width="100" Margin="5,0,5,0"></TextBox>
<Button x:Name="btnConvert" Content="" IsEnabled="false"
Margin="5,0,5,0"></Button>
<TextBox x:Name="txtConverted" IsReadOnly="true" Width="100"
Margin="5,0,10,0"></TextBox>
. , , . . , , , ,
.
.
btnConvert Click. :
double toConvert, converted;
if (double.TryParse(txtToConvert.Text, out toConvert))
118
II. , , ,
{
if (cboMode.SelectedIndex == 0)
{
converted = toConvert * 25.4;
}
else
{
if (cboMode.SelectedIndex == 1)
{
converted = toConvert / 25.4;
}
else
{
if (cboMode.SelectedIndex == 2)
{
converted = toConvert * 0.3;
}
else
{
converted = toConvert / 0.3;
}
}
}
txtConverted.Text = converted.ToString();
}
else
{
txtConverted.Text = string.Empty;
}
txtToConvert
( double). , txtConverted
( Empty string).
.
, , cboMode . SelectedIndex cboMode,
, (0, 1, 2
3).
;
SelectedIndex , -
6.
119
, . /
, , , .
txtConverted,
ToString().
.
"" , btnConvert, - txtToConvert.
txtToConvert TextChanged:
if (txtToConvert.Text == string.Empty)
{
btnConvert.IsEnabled = false;
}
else
{
btnConvert.IsEnabled = true;
}
, !
txtToConvert , , btnConvert
.
, . .
?
, Silverlight
. , Silverlight ...
! , . - .
Silverlight,
. .
Silverlight -.
!
,
( ). , !
Silverlight
. JPEG.
Image. image.jpg , .
! , , . ( 8.) Solution
Explorer (. . 3.2) "" ( , ) Existing Item Add
. Add Existing
Item, , ,
. Solution Explorer
7.
121
Image
Image. .
<Image Source="image.jpg"></Image>
Image, ,
Source, , . XAML- .
Image Silverlight
JPEG PNG, . .NET Framework Class Library for Silverlight /
System.Windows.Media.Imaging Namespace / BitmapImage Class Silverlight.
, . -
Source Image.
Silverlight ,
21.
Image Stretch,
, ,
, . Stretch :
None , -
;
Fill , -
, ;
Uniform -
,
( );
122
II. , , ,
UniformToFill
, ;
.
<Image Source="image.jpg" Stretch="None"></Image>
Image .
ImageOpened
.
ImageFailed ,
(,
Silverlight ).
Image ActualHeight, ActualWidth, Height,
HorizontalAlignment, Margin, MaxHeight, MaxWidth, MinHeight, MinWidth, Name,
VerticalAlignment, Visibility Width.
<Image Source="image.jpg" Width="480" Height="640"></Image>
, .
. ? .
, Source Image XAML-
, . ImageSource,
- BitmapImage. ,
.
XAML-
Source Image, Silverlight,
XAML,
ImageSource. C#- .
, , Loaded . <UserControl>,
:
<UserControl . . . Loaded="UserControl_Loaded">
7.
123
, , Uri,
( -) .
Uri, .
Uri uFileName;
.
uFileName = new Uri("image.jpg", UriKind.Relative);
new ,
.
.
3 ,
, , , , . ,
, new, .
.
. UriKind ,
. UriKind.Relative UriKind.RelativeOrAbsolute. ( UriKind 21.)
, Uri, , .
BitmapImage,
.
, .
System.Windows.Media.Imaging.BitmapImage bimFile;
BitmapImage System.Windows.Media.
Imaging, . , .
( ,
. 4.)
.
bimFile = new System.Windows.Media.Imaging.BitmapImage(uFileName);
BitmapImage. Uri, .
, . .
124
II. , , ,
Source imgSample.
imgSample.Source = bimFile;
! .
, Silverlight
. ,
.
Silverlight- , .
- - ,
.
, , Media.
media
( media.mp3).
, .
, .
! Solution
Explorer , ,
. Visual Web Developer 2008
Properties; - , <F4>, . Build Action
Resource. , 8.
MediaElement
MediaElement.
.
<MediaElement Source="media.mp3"></MediaElement>
MediaElement, ,
Source, ,
.
XAML- .
7.
125
Media / Audio and Video / Supported Media Formats, Protocols, and Log Fields
Silverlight.
AutoPlay ,
. true
, false . true.
Volume 0 1. 0.5.
Balance -1 ( ) 1 ( ). 0 ( ).
IsMuted . true ,
false . false.
CurrentState , . MediaElementState
:
Closed ( );
Opening ;
Individualizing , -
;
AcquiringLicense -
(, , );
Buffering -
;
Playing ;
Paused ;
Stopped
.
C#-.
126
II. , , ,
Position . TimeSpan ,
.
10.
MediaElement
, .
.
Play() .
Pause() . -
Play().
Stop() .
, .
MediaOpened .
MediaFailed
.
MediaEnded .
CurrentStateChanged
CurrentState (
).
Image MediaElement ( ) , , .
Silverlight.
, MediaElement
. ,
Image.
Source MediaElement XAML- , .
Uri. XAML- Source MediaElement,
Silverlight, XAML,
Uri.
C Uri , . , .
7.
127
, , ,
, Loaded .
MediaElement melSample.
Uri, (
-) ,
.
Uri uFileName;
uFileName = new Uri("media.mp3", UriKind.Relative);
Source melSample.
melSample.Source = uFileName;
?
Silverlight, .
- .
- .
?
,
. , ( ).
.
, ...
!
4 , Visual Web Developer 2008
. (
Windows Silverlight) (
).
? -, ,
MSIL, Silverlight. -, , . -...
"-" ! Silverlight
. , , . , , , .
, Image
image.jpg, Media media.
, !
8.
129
, , . - .
13, , . ,
!
Visual Web Developer 2008 . .
, , .
Add Existing Item Project.
""
Solution Explorer (. . 3.2) Existing Item
Add . ("" , , .)
<Shift>+<Alt>+<A>.
Add Existing Item, Windows.
.
,
.
Solution
Explorer, "". , ,
.
, - .
Rename Solution Explorer,
<F2>. , ;
<Enter> <Esc> .
,
Exclude From Project .
.
130
II. , , ,
, .
. ,
.
, , . ,
, .
, .
.
, (
, .).
( ).
.
, - , ,
, .
, Visual Web Developer 2008 . ,
; , . , , Properties,
.
Properties (. 8.1) . Solution Explorer .
- , Properties
Window View <F4>.
8.
131
. 8.1. Properties
, Properties , , .
Build Action Copy to Output.
Build Action , Solution Explorer.
, : Resource (
) None ( ).
Copy to Output . , .
Do not copy , -
.
Copy always ,
( Debug
Release, bin, , ,
).
Copy if newer , -
, , ,
.
,
, .
.
132
II. , , ,
XAML- C#- ,
Silverlight .
, . . . , , .
Silverlight ,
. .
Web- Silverlight
, , Web.
Web- Silverlight Web-
- ,
. Silverlight, ,
, .
,
New Folder Add ""
Solution Explorer. ;
<Enter>
.
. New Folder Add, , .
,
, . . . 8.2
8.
133
,
; , .
, . 8.2 Visual Web Developer 2008 medias, sounds, media.mp3.
. , .
! , , . , , .
, Web Silverlight-.
.
,
, Web-;
(, !).
. , "" , , Web-,
Silverlight-.
, . 8.2 media.mp3
:
medias/sounds/media.mp3
- , ,
, Visual Web Developer 2008
, . ,
.
, ...
134
II. , , ,
?
. ,
Silverlight...
, Silverlight
- C#.
, . !
III
C#
9.
C#
10.
C#
11.
12.
C#
C# .
. .
C#.
( - XAML, -,
, ), .
.
C#. ,
.
, , ,
, C# . ,
. , ; , .
:
sgMillimetres = sgInches * 25.4;
138
III. C#
, -
, .
.
( , , ).
,
.
, 25.4
, . (,
.) .
"Silverlight", 435, true
.
*. C#, , , , ( , ,
10). * sgInches 25.4 ...
... sgMillimetres
=. , , , .
:
sgMetres = sgInches * 25.4 / 1000;
: *
/. .
1. sgInches 25.4.
2. 1000.
3. sgMetres.
, .
, . ( .)
:
x = x + 2;
9. C#
139
C C# , . x 2,
x. .
, , . ,
double
sgInches, (double).
double sgInches;
class , if . .
, C#.
.
: , , , . . .
(;).
, , .
,
sgMetres = sgInches * 25.4 / 1000;
:
sgMetres = sgInches * 25.4 /
1000;
:
sgMetres =
sgInches *
25.4 /
1000;
, , ...
C# .
, , .
C# . , :
140
III. C#
, , ,
- . ,
.
C#, Silverlight
, Silverlight , ,
C#. , : ,
, .
, .
"" : Silverlight, "" . ,
, .
Silverlight
C#. , string () C#
String Silverlight, double ( )
Double, bool Boolean.
Visual Web Developer 2008 , C#, , Silverlight. Silverlight.
? C#,
Silverlight. :
bool bFlag;
Boolean bFlag;
bFlag ,
C# bool,
Silverlight Boolean. , .
( ) , , , . , :
"Silverlight 3"
"1234567"
" ."
9. C#
141
( ), . , 2 ,
.
, .
, .
.
. Silverlight
Unicode. 65 535 . Silverlight , .
, ,
, .
, C#, . 9.1.
9.1. , C#
Unicode
\"
0x0022
\'
0x0027
\\
0x005c
\r
0x000d
\n
0x000a
\t
0x0009
\xFFFF
Unicode ( FFFF)
, ,
:
"\"Silverlight 3\" -"
"", .
sValue = "";
142
III. C#
Empty String,
.
sValue = String.Empty;
C# , . : 45,
2563446, -74376.
, C# .
. 9.2.
9.2. C#
C#
Silverlight
int
Int32
uint
UInt32
short
Int16
32 768 32 767
ushort
UInt16
0 65 535
long
Int64
ulong
UInt64
int ( ) uint ( ). ,
, short (
) ushort ( ). "" , , .
, ,
. 0
1 A F
C# 0x. :
0x5f8c.
C# , .
9. C#
143
C#
Silverlight
double
Double
510324 1,710308
float
Single
1,51045 3,41038
decimal
Decimal
11028 7,91028
double ( ), . .
Silverlight. , , , float ( ). decimal
( )
, .
,
"" "",
true false.
bool.
Silverlight Boolean.
-
Unicode ( . , ).
,
144
III. C#
Silverlight .
, .
. ,
. ,
x 4,
4.
x y,
y x.
, , - .
,
"".
Silverlight
10.
,
. ? , .
Silverlight. - , , , , ,
.
,
.
int long, float, double decimal.
uint long, ulong, float, double decimal.
short int, long, float, double decimal.
9. C#
145
, .
, ,
, Visual Web Developer 2008.
, , , .
, , ,
.
,
.
.
( C# Silverlight),
, .
double d = 1234.567;
int c;
= (int)d;
double int.
, . . , , .
, ,
. .
,
.
int short, ushort, uint, ulong char.
uint short, ushort, ulong char.
short ushort, uint, ulong char.
146
III. C#
ToString(),
,
.
TryParse() .
10.
. , ,
, ,
- .
, (_), , . , sgInches _decodedValue
, 2number .
C# , .
, decodedvalue DecodedValue .
. -, "", , . , , , decodedValue . , ,
decodedFromStringToDoubleValue - .
-, ()
, , decodedValue, dbMillimetres. , Silverlight
() , -
9. C#
147
()
.
-, - , . , iCount ( int), sInches ( string), dcPrice (
decimal). , ,
.
, ,
- . , i, s, t2 .
.
, . , C#,
, Silverlight, , , . ;,
.
string sInches;
double sgInches;
int i;
sInches , sgInches
i.
.
- , =:
int i = 2;
-, .
Silverlight , ""?
-, C# Silverlight
. ,
. !
148
III. C#
. .
,
. ,
Silverlight.
-
, ,
. (
10.)
,
, . , , 6.
private void btnConvert_Click(object sender, RoutedEventArgs e)
{
. . .
}
, ,
Silverlight , .
, , .
, sender
object e RoutedEventArgs.
, ,
. .
, . .
9. C#
149
. ,
C#, . 9.4.
9.4.
++
( )
--
( )
: .
;
, .
, .
:
++r;
r , . :
s = ++r;
s.
,
. , , . :
r = 3;
s = ++r 1;
r , (4)
r, () . s 3.
150
III. C#
,
, . :
r = 3;
s = r++ 1;
r , s 2.
r (4) .
.
,
. 9.4 ,
. :
x = x + t;
l = r * 3.14;
f = -e / 2;
, - .
, .
, , +
. , :
s1 = "Microsoft";
s2 = "Silverlight";
s3 = "3";
s = s1 + " " + s2 + " " + s3;
= . :
a = 2;
, C#
.
:
9. C#
151
a = a + b;
a += b;
. +=.
, C#, . 9.5.
9.5.
a += b;
a = a + b;
a -= b;
a = a b;
a *= b;
a = a * b;
a /= b;
a = a / b;
a %= b;
a = a % b;
" + ".
. , true,
false. :
a1 = 2 < 3;
a2 = -4 > 0;
a3 = r < t;
<
>
==
152
III. C#
9.6 ()
<=
>=
!=
.
. 9.7. . 9.8 9.9 .
9.7.
( )
&&
( )
||
( )
9.8.
1
&& ()
|| ()
true
true
true
true
true
false
false
true
false
true
false
true
false
false
false
false
9.9.
! ()
true
false
false
true
:
a = (b > 0) && (c + 1 != d);
flag = !(status = 0);
9. C#
153
?
. :
<> ? < true> : < false>
true, true.
false.
s = (i > 2) ? " " : " ";
, .
C# . :
a = b + c 10;
b
c, 10. , .
:
a = b + c * 10;
c 10,
b. "
" .
? , , , .
, , .
, .
. 9.10
.
9.10. ( )
<>++
<>--
154
III. C#
9.10 ()
++<>
--<>
- !
(<>)
, , ,
* / %
, ,
+ -
= <>=
&&
||
.
,
.
, : , .
( ).
, ? . .
a = (b + c) * 10;
b
c, 10.
, , .
:
a = ((b + c) * 10 d) / 2 + 9;
:
1. b c.
2. 10.
3. d .
9. C#
155
4. 2.
5. 9 .
:
a = b + c * 10 d / 2 + 9;
:
1. c 10.
2. d 2.
3. b c 10.
4. d 2.
5. 9 .
, ?
,
.
, .
C# ,
. ,
.
{
b = "12";
c = a b;
}
,
.
C#-
. 3.
-
. .
156
III. C#
:
if (<>)
< true>
else
< false>
if else.
" if-else".
,
Silverlight , .
. true, true. false,
false.
.
if (x
{
a =
b =
}
else
{
a =
b =
}
== 1)
"";
1;
" ";
22222;
x
f h .
if ((x == 1) && (y > 10))
{
f = 3;
}
else
{
f = 33;
}
, true
, x 1 y 10.
, "" , true, , .
9. C#
157
if (<>)
< true>
:
if ((x == 1) && (y > 10))
{
f = 3;
}
, . :
switch (< >) {
case < 1> :
< 1>
break;
[case < 2> :
< 2>
break;]
<... case>
[default :
<, >]
}
158
III. C#
default :
out = " ";
}
,
. .
C# . .
, -
. ,
.
9. C#
159
:
for (< >; <>; <>)
< >
. , .
, . true, ,
, .
,
. ( ). , , . ., false.
:
for (int i = 1; i < 11; i++)
{
a += 3;
b = i * 2 + 1;
}
10 . i
1 . ,
11, .
. i
1 10, .
:
for (int i = 10; i > 0; i--)
{
a += 3;
b = i * 2 + 1;
}
160
III. C#
. 10.
10 , i 0;
10
1.
for (int i = 2; i < 21; i += 2)
{
b = i * 2 + 1;
}
2, 21,
, , 10 . , 2 2, 4, 6... 20.
"" for .
" " .
,
, , .
, ,
.
, .
:
do
< >
while (<>);
do while.
" do-while".
:
do {
a = a * i + 2;
i = ++i;
} while (a < 100);
:
var a = 0, i = 1;
do {
a = a * i + 2;
9. C#
161
i = ++i;
} while (i < 20);
, . , ,
.
,
. , () , .
while (<>)
< >
while.
" while" ( "
do-while"!).
:
while (a < 100) {
a = a * i + 2;
i = ++i;
}
. C# break continue.
break .
while (a < 100) {
a = a * i + 2;
if (a > 50)
{
break;
}
++i;
}
, a 50.
continue , . .
, ,
162
III. C#
: , . .
while (a < 100) {
i = ++i;
if (i > 9 && i < 11)
{
continue;
}
a = a * i + 2;
}
a i 10
20.
, . . .
goto.
, . :
< >:
. , .
goto :
goto < >;
, Silverlight
, .
if (x > 100)
{
goto TooBig;
}
. . .
TooBig:
. . .
, x 100,
TooBig.
9. C#
163
goto (. ).
:
goto < case, >;
:
switch (a) {
case 1 :
out = " ";
break;
case 2 :
goto case 1;
case 3 :
out = "";
break;
}
, a 2, case 1.
, . .
. .
, , .
, .
.
, , .
,
. .
:
< >[] < > =
new < >[< >];
164
III. C#
,
.
;
, .
Array.
7
new.
string[] sPlatforms = new string[4];
sPlatforms .
string[] sPlatforms = {"HTML+CSS+JavaScript", "Flash", "Java",
"Silverlight"};
,
.
,
.
s = sPlatforms[2];
s
sPlatforms 2 ( ) "Java".
sPlatforms[3] = "Silverlight 3";
sPlatforms 3 ( ) .
C# (
).
.
int[,] iMatrix = new int[4, 4];
iMatrix
44. ,
, ,
.
9. C#
165
(""). ,
. .
,
.
iMatrix[1, 2] = 4;
dValue = dCube[2, 0, 1];
, . :
< >[][] < > =
new < >[< >][];
:
int[][] iMatrix2 = new int[2][];
iMatrix2[0] = new int[2];
iMatrix2[1] = new int[4];
iMatrix2[2] = new int[5];
,
.
"" , "" , "" ,
.
iMatrix2[1][2] = 2;
iMatrix2[2][4] = 7;
, C#.
, , .
"" - .
:
foreach (< > < > in <>)
< >
, foreach in.
" foreach-in".
166
III. C#
, . .
.
, . .
.
, .
; .
string output = "";
foreach (string str in sPlatforms)
{
output += str + "\r\n";
}
sPlatforms
output, .
int s = 0;
foreach (int i in iMatrix)
{
s += i;
}
s iMatrix. : , !
, C#- - . C#, .
,
.
ActionScript
: // /*...*/. :
//
a = b + c; //
, ,
.
9. C#
167
/*...*/ :
/*
*/
a = b + c;
, , ( ), . .
?
C#.
, ?
C# :
. . C#: , . .
!
10
C#
C#. , .
, , . , , .
!
C#. ,
: . , , ...
.
4. ,
, ,
. Silverlight.
2. ,
.
, ,
, .
,
. , -, .
10. C#
169
.
.
, .
9 , .
- ,
. , , , .
,
.
, , ,
, , .
. .
, , , , . , , -
.
, -
. , .
, , .
, . -
.
Get-, .
Set-, -
170
III. C#
, , ( ).
get- set- .
, get-
. , , ,
() .
get- ,
. , , ,
,
.
Set- , .
,
: ,
- .
: -
!
, IsEnabled
TextBox ( ), Silverlight , , , .
, get-, set. , , set-.
; get-
. , String ( ) Length,
;
get-.
get-.
. , .
, , Web-, .
10. C#
171
, . , , . . Silverlight.
,
, . .
, , ,
, , . ,
,
.
. , ,
Microsoft SDK for Visual Studio 2008.
9 ,
. , true
false, .
C# -
, . ,
,
.
, - . , , ,
.
, : , , . .
, .
, , , .
, , , - .
, , , , . , ,
.
172
III. C#
-
, , , ,
. ( , . . .)
: ,
.
... , . .
. .
Silverlight. .
2, .
-, -, : , , ( ), , .
, .
-
, , .
Silverlight .
:
; ,
. C# .
, 7, new. :
new < >([< ,
>]);
10. C#
173
new .
;
, .
new (, ,
), .
,
(. . , , ).
SomeClass sc;
OtherClass oc;
sc = new SomeClass();
oc = new OtherClass(10, 4.5);
, . ( ,
. . 4.)
sc = new OuterNameSpace.InnerNameSpace.SomeClass();
, . . , "", , "" ,
.
sc = new OuterNameSpace.InnerNameSpace.OuterClass.InnerClass();
9 , Silverlight , ,
, . .
. .
Silverlight .
.
, .
, , , .
, ,
, .
, 9 . ,
, . .
Array.
174
III. C#
. (. . , ),
.
sc.SomeProperty = 20;
txtMillimetres.Text = "100";
sInches = txtInches.Text;
,
(, ).
if (txtInches.Text == String.Empty)
SomeProperty , .
, , , .
, , (
; , ), , . ,
.
sc.SomeMethod(2, 56, "");
txtInches.Focus();
. ,
, .
m = sc.OtherMethod(22);
n = (sc.OtherMethod(44) + 3) / 0.5;
, -
, .
10. C#
175
, -, ( ), -,
out.
result1 = sc.ThirdMethod(65.2, out result2);
, ,
result1, ,
result2.
.
XAML- Visual Web Developer 2008;
, . C#-,
.
private void btnConvert_Click(object sender, RoutedEventArgs e)
{
}
, .
:
btnConvert.Click += btnConvert_Click;
"" , ,
.
btnConvert.Click = btnConvert.Click btnConvert_Click;
btnConvert.Click -= btnConvert_Click;
, ,
(, ), ,
.
a = SomeClass.SOME_NAMED_CONSTANT;
, .
176
III. C#
9 C#,
. , , , .
is true, ,
, , , . , false.
if (txtInches is TextBox)
{
. . .
}
, . . txtInches
TextBox ( ).
if ("Silveright" is Double)
{
. . .
}
"Silverlight"
.
as
, , (), .
, ,
; null.
FrameworkElement felControl;
felControl = txtInches as FrameworkElement;
felControl txtInches,
FrameworkElement. ( FrameworkElement , .)
double d;
d ="Silverlight" as Double;
d null.
9
(< >)< >. ,
?
10. C#
177
null
null. ?
, .
, .
FrameworkElement felControl;
felControl = txtInches as FrameworkElement;
if (felControl != null)
. . .
null (
). ,
.
felControl = null;
, , .
?
, . Silverlight
, - .
, - , . ,
, . ( , ), . Silverlight.
Silverlight
Silverlight, -
178
III. C#
.
Silverlight.
Object
Object Silverlight;
, , , .
Object Silverlight object C#.
String
String Silverlight . ,
,
Silverlight.
Chars , .
(char).
string str = "Silverlight";
char ch;
ch = str.Chars(2);
ch 'l'
"Silverlight". ( .)
Length .
IndexOf()
. :
IndexOf(< >
[, < , >])
(char) , . , ; ,
.
string str = "Silverlight";
int i1, i2;
i1 = str.IndexOf('l', 4);
i2 = str.IndexOf("ver");
i1 6 (
'l' "Silverlight"), i2 3.
10. C#
179
String IndexOf, . , , , . .
LastIndexOf() IndexOf() ,
, .
string str = "Silverlight";
int i;
i1 = str.LastIndexOf('l');
i 6.
Substring() ,
.
Substring(< >[, < >])
,
; , . .
string str = "Silverlight", s;
s = str.Substring(6, 3);
s "lig".
String Substring, . , .
ToLower() ToUpper() , .
, String . Silverlight.
Math
Math .
E PI
e .
180
III. C#
Math . 10.1.
10.1. Math
Abs(<>)
Acos(<>)
Asin(<>)
Atan(<>)
Ceiling(<>)
Cos(<>)
Exp(<>)
Floor(<>)
Log(<>)
Log10(<>)
Pow(<>, <>)
Round(<>)
Sign(<>)
1,
, 0, , 1,
Sin(<>)
Sqrt(<>)
Tan(<>)
Silverlight,
. .
10. C#
181
, 3,
, class. , , , .
[< , >] class < >
[: < - ,
>]
{
< >
}
,
( . 9). ,
Silverlight , ; ,
SomeClass someclass Silverlight .
-.
, Object. , ;
- . (
.)
-. .
C#, . .
public
, ( ). , ,
, .
internal
( ). .
private
, ( ). .
sealed -
. Silverlight .
182
III. C#
abstract , . .
- ( ). , "" .
static (
).
partial .
sealed
abstract (, , ).
(, , ).
, ,
Silverlight-.
,
, .
abstract class SomeClass
SomeClass,
, .
-, Object.
public class OtherClass: ParentClass, ISomeInterface
OtherClass,
ParentClass ISomeInterface.
:
[< , >] < > < >
[= < >];
C#, , ,
Silverlight.
, , ,
.
f ( . field ) .
10. C#
183
.
public ,
, (
).
protected -
( ).
internal , ( ).
protected internal , ( ).
private ,
( ).
static .
readonly .
.
, . (
.)
, , ,
, .
( public)
. .
protected string fName;
fName.
static public int fCounter = 0;
( !) fCounter, 0.
:
[< , >]
< > < >
([< , >])
{
< >
}
184
III. C#
C#,
, , Silverlight.
,
void.
, .
. :
< > < ,
>
. , .
, . .
-
, out.
.
public ,
, (
).
protected -
( ).
internal , -
( ).
protected internal -
, ( ).
private ,
( ).
static .
overide ,
- ( ).
virtual - (-
).
abstract -
- ( ).
10. C#
185
sealed -.
, .
return. :
return < >;
, , ,
this. ,
, , .
-. :
base.< >
base -.
Silverlight ,
, . -"" .
:
public int Increment(int iPar)
{
return iPar + 1;
}
. . .
i = sc.Increment(1);
, , . sc,
1, i 2.
public void Increment2(out int iPar)
{
iPar += 1;
}
186
III. C#
. . .
i = 1;
sc.Increment2(out i);
,
. i 1,
sc, ,
2.
protected virtual string SomeMethod()
-.
protected override string SomeMethod()
{
. . .
base.SomeMethod();
. . .
}
- .
-.
Silverlight . .
. . ,
.
.
, .
( -
).
.
public SomeClass()
{
this.SomeProperty = 10;
}
, SomeProperty
SomeClass 10. ,
this.
10. C#
187
, .
( );
. , SomeClass ,
.
, . .
.
.
.
, .
.
.
.
static SomeClass()
{
SomeStaticProperty = 228;
}
SomeClass 228. ,
.
SomeStaticProperty
:
[< , >] < >
< >
{
[get
{
< get->
}]
188
III. C#
[set
{
< set->
}]
}
C#, , , Silverlight. , .
.
public , , ( ).
protected ( ).
internal , ( ).
protected internal -, (
).
private , ( ).
static .
Get- ,
. Set- .
set- value. Silverlight,
set-.
private int fSomeProperty;
public int SomeProperty
{
get
{
return this.fSomeProperty;
}
set
{
this.fSomeProperty = value;
}
}
10. C#
189
set-,
. get-,
.
C# . :
[< , >] < >
< > { get; set; }
const:
[< , >] const < >
< > = < >;
C#, ,
, Silverlight.
, .
() .
.
,
, .
.
public , -
, ( ).
protected -
( ).
internal , -
( ).
protected internal -
-, (
).
190
III. C#
private , -
( ).
public const string PLATFORM_NAME = "Silverlight";
public const int PLATFORM_VERSION = 3;
: PLATFORM_NAME
PLATFORM_VERSION.
"" .
, , , ,
. , .
, .
( ).
, -
.
-
.
, , , "" . , Silverlight ,
.
,
.
SomeStructure st;
st.SomeProperty1 = 2;
st.SomeProperty2 = "eee";
st.SomeMethod();
st SomeStructure,
SomeProperty1 SomeProperty2
SomeMethod. , , , .
10. C#
191
, new.
SomeStructure st;
st = new SomeStructure(2, "eee");
, .
Silverlight
Silverlight,
.
Silverlight.
, , , .
TryParse() true, , false .
ToString() , .
Double Single
double float
(. . 9.3).
,
. 10.2.
IsInfinity(),
IsPositiveInfinity() true,
, Not A Number, + , false
.
IsNaN(), IsNegativeInfinity()
192
III. C#
10.2. Double Single
Epsilon
MaxValue
MinValue
NaN
NegativeInfinity
PositiveInfinity
TryParse()
.
TryParse(< >,
out < >)
, , , .
TryParse() true, , false .
ToString() , .
Decimal
decimal
(. . 9.3).
, Silverlight.
.
MaxValue MinValue , , , .
TryParse() .
TryParse(< >,
out < >)
, , , .
10. C#
193
ToString() , .
DateTime
DateTime .
new DateTime(<>, < >, <>
[, <>, <>, <>[, <>]])
, . .
DateTime dt;
dt = new DateTime(2009, 10, 27, 23, 0, 0);
dt ,
27 2009 23:00:00.
DateTime ,
. 10.3.
, .
10.3. DateTime
Date
DateTime,
Day
DayOfWeek
DayOfYear
Hour
Millisecond
Minute
Month
Now
DateTime,
.
194
III. C#
10.3 ()
Second
TimeOfDay
TimeSpan, ( TimeSpan )
Today
DateTime, .
Year
DateTime ,
(. 10.4).
10.4. DateTime
Add(<>)
, TimeSpan
AddDays(<>)
AddHours(<>)
AddMilliseconds(<>)
AddMinutes(<>)
AddMonths(<>)
AddSeconds(<>)
AddYears(<>)
10. C#
195
DateTime dt;
dt = DateTime.Now;
dt.AddYears(2);
dt.AddMonth(6);
dt . , C#.
TimeSpan
TimeSpan
.
new TimeSpan([<>, ]<>, <>, <>[, <>])
, . .
TimeSpan ts;
ts = new TimeSpan(2, 20, 0);
ts 2 20 .
TimeSpan ,
. 10.5. , .
10.5. TimeSpan
Days
Hours
Milliseconds
Minutes
Seconds
TotalDays
TotalHours
TotalMilliseconds
TotalMinutes
TotalSeconds
196
III. C#
TimeSpan , Silverlight.
, .
struct.
[< , >] struct < >
[: < , >]
{
< >
}
,
, .
.
- , -.
, , ,
, . , .
,
, . , ; get- set- .
, . () ,
, .
() .
10. C#
197
, . , struct.
[< , >]
interface < >
[: < -, >]
{
< >
}
,
. I ( .
interface). .
.
public interface ISomeInterface
{
double SomeInterfaceMethod(double db);
int SomeProperty { get; set; }
}
ISomeInterface SomeInterfaceMethod,
, SomeProperty . , .
class SomeClass: ISomeInterface
{
public double SomeInterfaceMethod(double db)
{
. . .
}
public int SomeProperty
{
get
{
. . .
}
set
{
. . .
}
}
198
III. C#
. . .
}
class OtherClass: ISomeInterface
{
public double SomeInterfaceMethod(double db)
{
. . .
}
public int SomeProperty
{
get
{
. . .
}
set
{
. . .
}
}
. . .
}
SomeClass OtherClass, . .
SomeClass sc = new SomeClass();
OtherClass oc = new OtherClass();
double d11 = sc.SomeInterfaceMethod(4.2);
double d12 = oc.SomeInterfaceMethod(0.74);
... -.
ISomeInterface isi1 = new SomeClass();
ISomeInterface isi2 = new OtherClass();
double dl1 = isi1.SomeInterfaceMethod(4.2);
double d12 = isi2.SomeInterfaceMethod(0.74);
. ,
, . , ,
, . .
. .
Silverlight , .
10. C#
199
, .
Silverlight.
, .
,
();
.
enum.
:
[< , >]
enum < >
{< , >};
,
, .
:
public enum Platforms {HTMLCSSJavaScript, Flash, Java, Silveright};
,
: ,
.
Platforms pl;
pl = Platforms.Flash;
. . .
if (plPlatformName == Platforms.Silverlight)
. . .
, - .
, .
?
! Silverlight!.. , , , , , , , ... ?..
. . -
. -, !
, ...
11
: , , .
Silverlight . Silverlight, ,
. ( Silverlight,
.)
. .
3,
Silverlight-. ,
( );
, ( , ),
, ""
.
9 .
.
, ,
. , ; .
, .
11.
201
, .
Silverlight- , ,
, . , ( 13) , ,
.
, .
, Silverlight .
, , - , , , (), , (
).
.
"" . !
? ,
. .
Silverlight , , , .
( , , ), .
List
List. , "" . .
List
, List,
. :
List<< >> < >;
202
III. C#
,
< >.
List, .
new. :
new List<< >>()
.
List<string> lstCol;
lstCol = new List<string>();
lstCol, ( String).
List Count, . .
,
. (, ,
).
Add . .
lstCol.Add("HTML + CSS + JavaScript");
lstCol.Add("Flash");
lstCol.Add("Silverlight");
-.
Insert .
:
Insert(< >, < >)
(),
. , -
11.
203
. . Insert .
lstCol.Insert(2, "Java");
Java!
Remove , . true, ,
false (,
).
lstCol.Remove("Flash");
Silverlight.
RemoveAt ,
. .
lstCol.RemoveAt(0);
...
Clear , .
.
lstCol.Clear();
, Item.
.
string st;
st = lstCol.Item[3];
st
"Silverlight".
Item List . , .
string st;
st = lstCol[3];
Item ,
.
lstCol[3] = "Silverlight 3";
lstCol
"Silverlight" "Silverlight 3".
204
III. C#
?
List .
Contains , ,
. true,
, false .
bool flag1, flag2;
flag1 = lstCol.Contains("Flash");
flag2 = lstCol.Contains("Delphi");
flag1 true
( lstCol "Flash"), flag2
false ( "Delphi" ).
IndexOf .
:
IndexOf(< >[, < >
[, < >]])
.
.
, .
, .
,
, ,
. , .
int indx;
indx = lstCol.IndexOf("Java");
indx 2.
LastIndexOf IndexOf ,
.
.
,
9 .
string output = "";
foreach (string str in lstCol)
{
output += str + "\r\n";
}
11.
205
Silverlight .
List
.
,
-. , , , .
Person. F (), N1 ()
N2 () Platforms List<string> ( ;
, List).
class Person
{
public string F { get; set; }
public string N1 { get; set; }
public string N2 { get; set; }
public List<string> Platforms { get; set; }
public Person()
{
Platforms = new List<string>();
}
}
List<string>
Platforms .
.
List<Person> lstPersons;
lstPersons = new List<Person>();
.
Person prs;
prs = new Person();
prs.F = "";
prs.N1 = "";
prs.N2 = "";
prs.Platforms.Add("Flash");
lstPersons.Add(prs);
prs = new Person();
prs.F = "";
206
III. C#
prs.N1 = "";
prs.N2 = "";
prs.Platforms.Add("HTML + CSS + JavaScript");
prs.Platforms.Add("Flash");
prs.Platforms.Add("Java");
lstPersons.Add(prs);
prs = new Person();
prs.F = "";
prs.N1 = "";
prs.N2 = "";
prs.Platforms.Add("Silverlight");
lstPersons.Add(prs);
: Person,
prs, lstPersons.
,
"" Platforms Person,
, , , , .
, Person
prs .
, .
prs = lstPersons[2];
bool flag = prs.Platforms.Contains("Java");
,
Java.
prs = lstPersons[0];
prs.F = "";
.
prs = lstPersons[1];
prs.Platforms.Add("Silverlight");
Silverlight.
, List . , . ,
, .
!
11.
207
Dictionary
Dictionary.
,
. , List, . ,
Dictionary (, ).
, ,
Silverlight .
Dictionary
Dictionary, , :
. :
Dictionary<< >, < >>
< >;
, .
new
:
new Dictionary<< >, < >>()
Dictionary<string, string> dicDict;
dicDict = new Dictionary<string, string>();
dicDict, .
Dictionary Count, .
.
Add :
Add(<>, <>)
208
III. C#
,
. .
dctDict.Add("hcjs", "HTML + CSS + JavaScript");
dctDict.Add("fl", "Flash");
dctDict.Add("j", "Java");
dctDict.Add("sl", "Silverlight");
Remove , . true,
, false (, ).
dctDict.Remove("fl");
Clear , . .
, Item.
.
string st;
st = dctDict.Item["sl"];
Item Dictionary . .
string st;
st = dctDict["sl"];
,
.
dctDict["sl"] = "Silverlight 3";
TryGetValue .
TryGetValue(< >, out <, >)
, , , , , . TryGetValue true,
, false .
string st;
if (dctDict.TryGetValue("fl", out st))
. . .
11.
209
ContainsKey ,
, . true, , false .
bool flag1, flag2;
flag1 = dctDict.ContainsKey("fl");
flag2 = dctDict.ContainsKey("d");
ContainsValue , , .
true, , false .
bool flag1, flag2;
flag1 = dctDict.ContainsValue("Flash");
flag2 = dctDict.ContainsValue("Delphi");
.
"-",
.
KeyValuePair,
.
foreach (KeyValuePair<string, string> kvp in dctDict)
, ,
.
KeyValuePair :
Key ;
Value .
string outputKeys, outputValues;
foreach (KeyValuePair<string, string> kvp in dctDict)
{
outputKeys += kvp.Keys + "\r\n";
outputValues += kvp.Values + "\r\n";
}
, .
210
III. C#
Queue
Queue , . " , ". ,
, ,
, .
, List.
Queue<string> queQ;
queQ = new Queue<string>();
Enqueue ,
. .
queQ.Enqueue("HTML + CSS + JavaScript");
queQ.Enqueue("Flash");
queQ.Enqueue("Java");
queQ.Enqueue("Silverlight");
Dequeue , (,
), ;
. .
string st1;
st = queQ.Dequeue();
Stack
Stack , -
. , " , ".
11.
211
.
Stack<string> stkStack;
stkStack = new Stack<string>();
Push ("") , . .
stkStack.Push("HTML + CSS + JavaScript");
stkStack.Push("Flash");
stkStack.Push("Java");
stkStack.Push("Silverlight");
Pop ("") ,
, ;
. .
string st1 = stkStack.Pop();
string st2 = stkStack.Pop();
st "Flash" stkStack
. .
Stack Count Clear Contains.
,
Silverlight,
.
, .
"" List.
, .
, , ListBox () Items.
6 , ItemCollection, FrameworkElement.
ListBoxItem, .
212
III. C#
lstList .
lstList.Item.Clear();
lstList.Item.Add(" ");
lstList.Item.Add(" ");
,
. , ,
.
! , ,
, Children.
UIElementCollection UIElement,
FrameworkElement
.
, , . .
Children
. , XAML- (,
, ).
,
, Silverlight.
.
, .
13,
.
?
C# . , Silverlight-.
.
, Silverlight
(,
). , ,
C#.
12
C#
Silverlight, . . "" , , , , ,
.
. ,
, . .
Silverlight-
.
, .
. -
, . , - "" ( ,
).
, .
?
, Silverlight ,
. , , . , - .
214
III. C#
, , , .
, Silverlight, , , , .
, . Silverlight- .
? , . . -
. ( " ",
.) ,
, , .
Silverlight. , , .
,
.
, ( ),
. .
, "" , , -
.
. , , . "" ,
, . , , .
, . : , ,
.
: ,
. , . , ,
.
12.
215
, ,
Silverlight, .
Silverlight "", .
Silverlight ,
. ( , ,
Silverlight.)
. 12.1.
12.1. Silverlight
Exception
SystemException
Exception
-
,
ArrayTypeMismatchException
SystemException
IndexOutOfRangeException
SystemException
InvalidCastException
SystemException
InvalidOperationException
SystemException
NullReferenceException
SystemException
OutOfMemoryException
SystemException
StackOverflowException
SystemException
ArgumentException
SystemException
-
,
216
III. C#
12.1 ()
ArgumentNullException
ArgumentException
null
ArgumentOutOfRangeException
ArgumentException
ArithmeticException
SystemException
-
,
DivideByZeroException
ArithmeticException
NotFiniteNumberException
ArithmeticException
,
(, + NaN)
OverflowException
ArithmeticException
,
(, int
short)
Message, . , .
Silverlight.
, . :
, .
,
.
12.
217
try
< , >
catch (< > < >)
< , >
x = 1, y = 0;
z = x / y;
(DivideByZeroException e)
.
DivideByZeroException
.
catch .
try
{
. .
}
catch
{
. .
}
catch
{
. .
}
.
(DivideByZeroException e)
.
(ArithmeticException e)
.
218
III. C#
catch (SystemException e)
{
. . .
}
catch,
DivideByZeroException. , . , catch .
catch, ( ArithmeticException). , DivideByZeroException, catch .
catch, ,
(
SystemException). ,
DivideByZeroException, ArithmeticException,
catch .
, catch,
( DivideByZeroException),
(ArithmeticException SystemException).
"", "" "" .
,
, ,
try-catch .
< try-catch>
finally
< , >
12.
219
catch (ArithmeticException e)
{
. . .
}
finally
{
btnDoCompute.IsEnabled = true;
}
finally , , .
,
Silverlight ,
. ,
, .
, , .
ArgumentOutOfRangeException e = new ArgumentOutOfRangeException
(" .");
ArgumentOutOfRangeException. , ,
.
, . , , .
. throw,
.
throw e;
.
. ,
Silverlight.
220
III. C#
?
Silverlight,
, . C#.
Silverlight.
, .
, ...
IV
.
LINQ
13.
14.
LINQ
13
C# ,
. C#-. .
. ?
? .
, - ? , C#.
txtMillimetres.Text = cnvConvertor.Millimetres;
Text txtMillimetres
Millimetres cnvConvertor. (, .)
, C# .
, ? , ,
txtMillimetres ,
Millimetres cnvConvertor, C#-?
XAML-,
Text txtMillimetres
Millimetres cnvConvertor, Millimetres. Silverlight
.
224
IV. . LINQ
, Text
txtMillimetres Millimetres cnvConvertor.
, , .
, . ,
- HorizontalAlignment,
IsChecked, SelectedIndex . Silverlight .
, ,
.
, .
.
Convertor, ,
.
Silverlight-.
Visual Web Developer 2008
Convertor3.
, txtInches txtMillimetres btnConvert.
, Convertor.
Click btnConvert, . . .
XAML-
C#-. Convertor3 Convertor.
MainPage.
public class Convertor
{
private double fInches;
public string Inches
{
get
{
return fInches.ToString();
}
set
{
double dInches = 0;
double.TryParse(value, out dInches);
13.
225
if (dInches != fInches)
{
fInches = dInches;
}
}
}
public string Millimetres
{
get
{
double dMillimetres = fInches * 25.4;
return dMillimetres.ToString();
}
}
}
fInches
. .
Inches.
, , get- set. Get- ,
. Set-
fInches.
,
, ;
, .
Converter
Millimetres. , . .
get-. fInches,
, .
Converter ; ,
Object, (
-). Converter , .
, Converter . ,
.
C#-. XAML-.
.
226
IV. . LINQ
Silverlight-
.
,
Convertor. Load
, ,
InitializeComponent.
, . new.
. Silverlight, , , .
Convertor,
Convertor3. ( 4, Visual Web Developer 2008
,
.) Convertor3 XAML- , ,
<UserControl>, ,
xmlns.
. <UserControl> xmlns, , ,
. local (, Visual Basic, my). . Visual Web Developer 2008
, ;
Convertor3 in assembly Convertor3
Convertor3 , . . . :
xmlns:local="clr-namespace:Convertor3"
. .
Silverlight ,
-
13.
227
( , .), . , , .
,
, 8 . !
, -, . Silverlight .
! XAML-
<UserControl>,
Convertor:
<UserControl.Resources>
<local:Convertor x:Key="cnvConvertor"></local:Convertor>
</UserControl.Resources>
, ,
Convertor local. cnvConvertor
x:Key .
. .
, Silverlight . , ,
App.xaml, ,
<Application>. ,
228
IV. . LINQ
, , , .
, .
-, Text txtInches -
Inches Convertor,
. Text
Inches.
-, Text txtMillimetres
, (
Binding) , , .
, , Binding, ( ). <
>=< > .
, .
Binding, , .
Path ,
. , .
Source , .
Source . ,
, , . ?
13.
229
.
Source :
{StaticResource < Resources>}
, Text txtMillimetres
Millimetres - cnvConvertor, <TextBox> :
Text="{Binding Path=Millimetres, Source={StaticResource cnvConvertor}}"
txtMillimetres
Millimetres - cnvConvertor
Text.
txtInches. : , Text Inches - cnvConvertor.
, Mode Binding.
BindingMode :
OneWay -
( ; );
TwoWay -
,
( );
OneTime
( ).
, <TextBox>,
txtInches:
Text="{Binding Path=Inches, Source={StaticResource cnvConvertor},
Mode=TwoWay}
, , , ... "" . ,
Inches Convertor ,
txtInches .
! .
Text TextBox,
230
IV. . LINQ
, . ,
, , .
. - . ... ... . ?
, ,
, , , . , .
.
Convertor INotifyPropertyChanged,
PropertyChanged.
Millimetres; , .
, , , , , INotifyPropertyChanged.
, , . PropertyChanged
, .
INotifyPropertyChanged PropertyChanged
System.ComponentModel. , , . ( . 4.)
Convertor INotifyPropertyChanged .
; .
public class Convertor : System.ComponentModel.INotifyPropertyChanged
{
private double fInches;
public event System.ComponentModel.PropertyChangedEventHandler
PropertyChanged;
public string Inches
{
get
{
return fInches.ToString();
}
13.
231
set
{
double dInches = 0;
double.TryParse(value, out dInches);
if (dInches != fInches)
{
fInches = dInches;
NotifyPropertyChanged("Millimetres");
}
}
}
. . .
public void NotifyPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this,
new System.ComponentModel.PropertyChangedEventArgs(propertyName));
}
}
}
PropertyChanged
PropertyChangedEventHandler . ( ,
event.)
Silverlight,
INotifyPropertyChanged.
NotifyPropertyChanged, PropertyChanged.
, ,
.
,
PropertyChanged . (
, .) . PropertyChanged
null, , , .
, .
: ,
( this), , .
, ;
NotifyPropertyChanged .
232
IV. . LINQ
NotifyPropertyChanged get-
Inches.
Millimetres, . . txtMillimetres.
, fInches
PropertyChanged ,
, Inches, ? "" , .
,
.
, .
, ( Mode TwoWay), Silverlight .
,
, Silverlight
.
Binding ValidatesOnExceptions. true, Silverlight , . false.
,
. Text
txtInches ValidatesOnExceptions true.
Text="{Binding Path=Inches, Source={StaticResource cnvConvertor},
Mode=TwoWay, ValidatesOnExceptions=True}"
13.
233
if (dInches != fInches)
{
fInches = dInches;
NotifyPropertyChanged("Millimetres");
}
}
, , .
, ,
.
,
; , " ".
Convertor
Silverlight . , ,
.
INotifyPropertyChanged...
, -
.
. , , .
234
IV. . LINQ
. , -
.
Silverlight .
,
IValueConverter. :
Convert , -
( );
ConvertBack ,
( ).
IValueConvertr
System.Windows.Data. ,
, .
:
Object;
, .
Type
, ;
Object;
,
. CultureInfo , . , CultureInfo
System.Globalization,
.
. .
Object.
,
IValueConverter. Convert;
ConvertBack .
Convertor.
Convertor4.
public class Convertor : System.Windows.Data.IValueConverter
{
public object Convert(object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
13.
235
{
string sInches;
double dInches, dMillimetres;
sInches = value as string;
if (double.TryParse(sInches, out dInches))
{
dMillimetres = dInches * 25.4;
}
else
{
dMillimetres = 0;
}
return dMillimetres.ToString();
}
public object ConvertBack(object value, Type targetType,
object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
.
ConvertBack NotEmplementedException, , ( ).
, . XAML-
Convertor4 ( , ),
Convertor,
cnvConvertor ( ). Converter Binding.
Text="{Binding Path=Text, ElementName=txtInches,
Converter={StaticResource cnvConvertor}}"
, , ,
,
, .
! , .
236
IV. . LINQ
,
, C#-. Silverlight .
, .
Visual Web Developer 2008 ListDemo.
lstDemo. - .
, . ,
. lstDemo.
? 11 .
, "" ,
- . ,
INotifyCollectionChanged.
, ,
Silverlight ObservableCollection.
, ,
, .
System.
,
, .
ObservableCollection
Collections.ObjectModel.
Load
, -, . : ObservableCollection ListDemoItemCollection,
. ListDemo .
public class ListDemoItemCollection :
System.Collections.ObjectModel.ObservableCollection<string>
{
public ListDemoItemCollection()
13.
237
{
Add(" ");
Add(" ");
Add(" ");
Add(" ");
}
}
ObservableCollection ,
.
ListDemoItemCollection, XAML-.
XAML- ListDemo ,
colItems.
ItemsSource, .
colItems, .
<ListBox . . . ItemsSource="{StaticResource colItems}" . . .>
. , , ...
... .
.
- , .
11 Person, -. .
public class Person
{
public string F { get; set; }
public string N1 { get; set; }
public string N2 { get; set; }
public int Age { get; set; }
public List<string> Platforms { get; set; }
public Person()
{
Platforms = new List<string>();
}
}
238
IV. . LINQ
, Age, . ListDemo.
ListDemoItemCollection ,
Person.
public class ListDemoItemCollection :
System.Collections.ObjectModel.ObservableCollection<Person>
{
public ListDemoItemCollection()
{
Person prs;
prs = new Person();
prs.F = "";
prs.N1 = "";
prs.N2 = "";
prs.Age = 30;
prs.Platforms.Add("Flash");
Add(prs);
prs = new Person();
prs.F = "";
prs.N1 = "";
prs.N2 = "";
prs.Age = 25;
prs.Platforms.Add("HTML + CSS + JavaScript");
prs.Platforms.Add("Flash");
prs.Platforms.Add("Java");
Add(prs);
prs = new Person();
prs.F = "";
prs.N1 = "";
prs.N2 = "";
prs.Age = 38;
prs.Platforms.Add("Silverlight");
Add(prs);
}
}
lstDemo, Person
. DisplayMemberPath,
. .
<ListBox . . . ItemsSource="{StaticResource colItems}"
DisplayMemberPath="F" . . .>
13.
239
lstDemo,
F Person.
.
.
Person? . , .
, ,
. , . , ,
, , , . ,
, .
ItemTemplate,
.
DataTemplate , .
XAML-,
. , , , ItemTemplate, ,
DataTemplate, ,
.
<ListBox x:Name="lstDemo" ItemsSource="{StaticResource colItems}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<StackPanel>
<TextBlock Text="{Binding Path=F}"></TextBlock>
<TextBlock Text="{Binding Path=N1}"></TextBlock>
<TextBlock Text="{Binding Path=N2}"></TextBlock>
</StackPanel>
<TextBlock Text="{Binding Path=Age}" FontSize="26"></TextBlock>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
240
IV. . LINQ
"" . , -,
"", ,
, F, N1 N2. -,
, Age .
. :
, (. .
). . :
, , DisplayMemberPath,
, .
, , .
! !
,
SelectedItem. ,
, Object.
.
- "" Platforms Person. ,
, ?
lstDetail. . "" ,
Platforms , lstDemo. , SelectedItem ( !) Person.
C#-? DataContext, .
Object , .
, .
SelectionChanged lstDemo; , 6,
, .
.
private void lstDemo_SelectionChanged(object sender,
SelectionChangedEventArgs e)
13.
241
{
lstDetail.DataContext = (lstDemo.SelectedItem as Person).Platforms;
}
,
Person "" Platforms
DataContext lstDetail. ,
.
XAML- lstDetail
<ListBox> :
ItemsSource="{Binding}"
, ,
. , DataContext.
! .
DataGrid
.
DataGrid ( ""!).
DataGrid ( ) , , .
System.Windows.Controls,
System.Windows.Controls.Data.dll.
<data:DataGrid></data:DataGrid>
, , .
DataGrid ,
. .
, DataGrid ActualHeight,
ActualWidth, DataContext, FontFamily, FontSize, FontStretch, FontStyle,
FontWeight, Height, HorizontalAlignment, IsEnabled, IsTabStop, ItemsSource,
242
IV. . LINQ
-;
Visible ;
Disabled , -
-.
Auto.
HeadersVisibility ,
"" . DataGridHeadersVisibility;
Columns ("" ; ) None ("" ).
GridLinesVisibility ,
, .
DataGridGridLinesVisibility :
None ;
Horizontal , ;
Vertical , ;
All ( ).
, .
CanUserReorderColumns
.
CanUserResizeColumns -
, .
13.
243
CanUserSortColumns
- , .
true , false . true.
AutoGenerateColumns . true , , , . false
, ,
Columns.
Columns , .
ObservableCollection<DataGridColumn>, DataGridColumn ,
.
Silverlight .
DataGridTextColumn . -
.
DataGridCheckBoxColumn .
.
DataGridTemplateColumn , -
( ).
, - .
, . (
.)
, ActualWidth,
IsReadOnly, MaxWidth, MinWidth, Visibility Width.
Header .
DisplayIndex
.
.
CanUserReorder
.
CanUserResize -
, .
CanUserSort -
, .
244
IV. . LINQ
true , false .
.
DataGridTextColumn DataGridCheckBoxColumn
Binding, .
.
DataGridTextColumn
FontStyle FontWeight.
FontFamily,
FontSize,
CellTemplate
DataTemplate.
, ,
( ; ).
. Visual
Web Developer 2008 GridDemo. C#- Person
ListDemoItemCollection, ListDemo. XAML-
GridDemo
ListDemoItemCollection,
colItems.
grdDemo. ItemsSource,
colItems. - , , . .
!
,
Person. Platforms,
ObservableCollection, . (
DataGrid ,
Platforms . .) .
, .
: , , , , . ,
DataGridTextColumn.
13.
245
.
, Count ""
Platforms Person. -, " "!
. !
. <data:DataGrid> , ,
. ,
DataGridTemplateColumn, ,
.
<data:DataGridTemplateColumn Header="">
<data:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Path=F}"></TextBlock>
<TextBlock Text="{Binding Path=N1}"></TextBlock>
<TextBlock Text="{Binding Path=N2}"></TextBlock>
</StackPanel>
</DataTemplate>
</data:DataGridTemplateColumn.CellTemplate>
</data:DataGridTemplateColumn>
"" , , , ,
F, N1 N2.
246
IV. . LINQ
, , . ,
" ".
DataGrid
,
, DataGrid? !
DataGrid
, :
, ;
DataGridTemplateColumn;
-
IsReadOnly true.
, , ,
true. .
IsReadOnly
, , - C#-,
, ,
INotifyPropertyChanged. ,
. , .
! - , ,
<Enter> . ,
<Esc>. <Esc> , .
, . . ,
, .
, .
. .
13.
247
DataGrid
,
. , .
, , DataGridTemplateColumn,
. , .
: ,
. , ,
(. .
DataGridTemplateColumn). ,
.
CellEditingTemplate
DataGridTemplateColumn. CellTemplate
.
1. ,
( , , , .).
2. , ,
Mode TwoWay.
<data:DataGridTemplateColumn>,
, :
<data:DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<StackPanel>
<TextBox Text="{Binding Path=F, Mode=TwoWay}"></TextBox>
<TextBox Text="{Binding Path=N1, Mode=TwoWay}"></TextBox>
<TextBox Text="{Binding Path=N2, Mode=TwoWay}"></TextBox>
</StackPanel>
</DataTemplate>
</data:DataGridTemplateColumn.CellEditingTemplate>
. .
. .
, .
Silverlight.
248
IV. . LINQ
?
Silverlight .
, ,
, ,
, .
, . , . ,
LINQ, .
14
LINQ
Silverlight .
.
. Silverlight . LINQ, . , , ...
LINQ
, , -. , , , Flash.
?
.
, , .
, "" Platforms
"Flash". , "" , . , , Flash.
, C#-,
, . , . - !
" "...
250
IV. . LINQ
Silverlight ! .
,
, ,
.
, LINQ (LanguageINtegrated Query , ), C#-
MSIL. C#
, .
LINQ, , . XAML, , , ,
. Silverlight:
" " , .
LINQ SQL
(Structured Query Language ). , SQL, LINQ.
, , ,
LINQ. .
Visual Web Developer 2008 LINQDemo.
lstDemo
LINQ-. ,
.
<ListBox x:Name="lstDemo" ItemsSource="{Binding}"></ListBox>
, , DataContext. ( . 13.)
C#- Person
ListDemoItemCollection, ListDemo.
ListDemoItemCollection LINQCollection, -
14. LINQ
251
, , .
, ,
LINQ-,
ObservableCollection -.
List.
, , , InitializeComponent. Load
.
, LINQ. ?
, -
, . .
.
,
.
, ( ,
- ).
, LINQCollection colPersons:
LINQCollection colPersons = new LINQCollection();
, colPersons
:
IEnumerable<string> qryPersons = from person in colPersons
select person.F;
qryPersons.
, .
? , ,
,
.
, ,
.
IEnumerable, -
252
IV. . LINQ
. , .
.
IEnumerable ,
. (string),
colPersons ,
.
, , . (
) , .
colPersons -
.
. !
.
IEnumerable<string> qryPersons = from person in colPersons
select person.F + " " + person.N1 + " " + person.N2;
, , , .
.
IEnumerable<Person> qryPersons = from person in colPersons select person;
, ,
. , 13. ,
.
, , :
from < > in <>
select < ,
>
14. LINQ
253
from, in select.
from select.
.
, colPersons? ?
. select
. .
var qryPersons = from person in colPersons
select new { F = person.F, N1 = person.N1, N2 = person.N2 };
colPersons select
, , , . ,
: new,
,
(F, N1 N2). ,
, .
, , ...
? !
Silverlight.
Visual Web Developer 2008 , . .
.
.
, -
.
,
.
,
Object.
.
, ,
254
IV. . LINQ
var. ,
Visual Web Developer 2008 ( ).
,
, . ,
.
.
, lstDemo DisplayMemberPath
, , . ListBox
!
: , , ObservableCollection, - , , . .
System.Collections.ObjectModel.ObservableCollection<string> colTemp =
new System.Collections.ObjectModel.ObservableCollection<string>();
foreach (var prs in qryPersons)
{
colTemp.Add(prs.F + " " + prs.N1 + " " + prs.N2);
}
lstDemo.DataContext = colTemp;
, . , var, . . .
, , .
...
, . ,
, .
, , , .
14. LINQ
255
where, .
where < >
,
3. true, . ,
.
, ,
30 .
IEnumerable<string> qryPersons = from person in colPersons
where person.Age < 30 && person.Platforms.Contains("Flash")
select person.F + " " + person.N1 + " " + person.N2;
, ,
30 Flash. && Contains. (
. 11.)
.
orderby ,
.
orderby < ,
,
>
, (). , . .
. ,
256
IV. . LINQ
() descending, .
orderby from select. where, orderby
select.
IEnumerable<string> qryPersons = from person in colPersons
where person.Age <= 30
orderby person.F
select person.F + " " + person.N1 + " " + person.N2;
, ,
30 , .
IEnumerable<string> qryPersons = from person in colPersons
orderby person.Platforms.Count() descending, person.F
select person.F + " " + person.N1 + " " + person.N2;
,
, ,
, . Count.
. - , , .
Dept.
: ID ( ) Name
( ).
public class Dept
{
public short ID { get; set; }
public string Name { get; set; }
}
DeptCollection, .
public class DeptCollection :
System.Collections.ObjectModel.ObservableCollection<Dept>
{
public DeptCollection()
{
Dept dpt;
14. LINQ
257
.
Person DeptID, .
public short DeptID { get; set; }
LINQCollection,
DeptID - .
prs.F = "";
prs.N1 = "";
prs.N2 = "";
prs.DeptID = 1;
. . .
prs.F = "";
prs.N1 = "";
prs.N2 = "";
prs.DeptID = 1;
. . .
prs.F = "";
prs.N1 = "";
prs.N2 = "";
prs.DeptID = 2;
.
DeptCollection colDepts = new DeptCollection();
, , . ?
-
LINQCollection DeptCollection,
DeptID ID. , , .
258
IV. . LINQ
LINQCollection , .
DeptCollection , .
.
join, join, in, on equals.
join < > in < >
on < >
equals < >
join , ,
in . on
,
equals
.
join from .
var qryPersons = from person in colPersons
join dept in colDepts on person.DeptID equals dept.ID
select new {Name = person.F + " " + person.N1 + " " + person.N2,
Dept = dept.Name};
LINQCollection DeptCollection
, , , ,
. .
,
.
() - (
). , .
group.
group by.
group <, > by < >
14. LINQ
259
IEnumerable. IGrouping, .
Key ,
.
Value "" ,
,
.
IGrouping ,
, "" .
IEnumerable<IGrouping<string, string>> qryDepts = from dept in colDepts
join person in colPersons on dept.ID equals person.DeptID
group person.F + " " + person.N1 + " " + person.N2 by dept.Name;
, , , , . ,
, .
, .
IEnumerable. IGrouping,
.
, ,
var (.
).
,
. lstDemo , ,
lstDetail , .
, ,
, , .
,
ObservableCollection.
.
colKeys colValues
.
260
IV. . LINQ
private System.Collections.ObjectModel.ObservableCollection<string>
colKeys;
private System.Collections.ObjectModel.ObservableCollection
<System.Collections.ObjectModel.ObservableCollection<string>> colValues;
colKeys .
colValues . , .
:
colKeys = new
System.Collections.ObjectModel.ObservableCollection<string>();
colValues = new System.Collections.ObjectModel.ObservableCollection
<System.Collections.ObjectModel.ObservableCollection<string>>();
foreach (IGrouping<string, string> dpt in qryDepts)
{
colKeys.Add(dpt.Key);
System.Collections.ObjectModel.ObservableCollection<string>
lst = new
System.Collections.ObjectModel.ObservableCollection<string>();
foreach (string prs in dpt)
{
lst.Add(prs);
}
colValues.Add(lst);
}
lstDemo.DataContext = colKeys;
colKeys colValues. colKeys , colValues .
lstDemo colKeys.
lstDemo SelectionChanged.
:
lstDetail.DataContext = colValues[lstDemo.SelectedIndex];
lstDemo .
colKeys, colValues.
, colValues lstDetail.
, .
14. LINQ
261
IEnumerable ,
, , ,
. ,
, .
, ,
.
. 14.1. .
14.1. IEnumerable,
Average
.
,
Count
LongCount
Max
.
,
Min
. ,
Sum
. ,
, , Java. Count
, . . Java, ToString lblAggregate.
:
lblAggregate.Text = (from person in colPersons
where person.Platforms.Contains("Java")
select person.F).Count().ToString();
262
IV. . LINQ
? Count ,
, ,
. , , .
lblAggregate.Text = (from person in colPersons
select person.Platforms.Count()).Max().ToString();
lblAggregate , .
.
LINQ . , ,
, ,
- .
, , , . from, select group.
, :
IEnumerable<string> qryPlatforms = from person in colPersons
from platform in person.Platforms
orderby platform
select platform;
colPersons, from
. "" Platforms colPersons, from platform in person.Platforms.
, ""
colPersons, .
,
,
. , .
person in colPersons,
14. LINQ
263
, , , "" , .
, .
.
-
, , .
into,
group select. into . :
group IGrouping, ;
select , ,
. ,
select, , .
group plGroup. . , select, ,
.
"" :
var qryPersons = from person in colPersons
select new { FNN = person.F + " " + person.N1 + " " + person.N2,
Age = person.Age } into pr
group pr by pr.Age;
colPersons ,
FNN (, ) Age () .
, .
var qryDepts = from dept in colDepts
select new { deptname = dept.Name,
cnt = (from person in colPersons
where person.DeptID == dept.ID &&
person.Platforms.Contains("Silverlight")
select person).Count() };
colDepts , deptname (-
264
IV. . LINQ
) cnt ( ,
Silverlight ).
deptname , cnt .
colPersons ,
DeptID ID colDepts, "" Platforms "Silverlight". Count.
, - . . , .
, ,
let .
let < > = <>
, let, ,
C#, .
; .
, , , , , .
,
.
IEnumerable<string> qryPersons = from person in colPersons
let FNN = person.F + " " + person.N1 + " " + person.N2
orderby FNN descending
select FNN;
FNN,
, ,
14. LINQ
265
colPersons
.
IEnumerable<string> qryDepts = from dept in colDepts
let persons = (from person in colPersons where person.DeptID == dept.ID
select person)
where persons.Count() > 1
select dept.Name;
colDepts
persons, , , . (, , .)
, .
, , persons.
, .
, .
, ... . - , .
,
, - . DeptCollection, , .
dpt = new Dept();
dpt.ID = 3;
dpt.Name = "--";
Add(dpt);
... .
!
, join
. ,
. , join .
- . !
266
IV. . LINQ
LINQ,
. , , - ...
, , ,
. , .
,
:
IEnumerable<IGrouping<string, string>> qryDepts = from dept in colDepts
join person in colPersons on dept.ID equals person.DeptID
group person.F + " " + person.N1 + " " + person.N2 by dept.Name;
:
IEnumerable<IGrouping<string, string>> qryDepts = from dept in colDepts
join person in colPersons on dept.ID equals person.DeptID into prGroup
from pr in prGroup.DefaultIfEmpty(new Person())
group pr.F + " " + pr.N1 + " " + pr.N2 by dept.Name;
, join into,
. , , , , group.
, ( ) prGroup,
. , , .
. ,
group, .
DefaultIfEmpty pr.
DefaultIfEmpty? ,
. , , .
, .
, prGroup, DefaultIfEmpty
.
"", prGroup , DefaultIfEmpty , ,
Person, "" . , , "" .
14. LINQ
267
,
, . ,
, pr, . . , .
, Silverlight
. , SQL, .
.
.
. , ...
?
LINQ
Silverlight.
Visual Web Developer 2008
LINQ-, .
, ,
Silverlight. , .
268
IV. . LINQ
Silverlight.
15.
16.
17.
18.
19.
15
Silverlight : LINQ
. C#-, , .
- . !
Silverlight. Silverlight-.
XAML. ...
, . Silverlight
( XAML-).
Line . :
X1 ;
Y1 ;
X2 ;
Y2 ;
Stroke ;
StrokeThickness .
272
V. Silverlight.
, (X)
, (Y) .
X1, Y1, X2, Y2 StrokeThickness double. Stroke, Brush, ; -, .
XAML- ,
Silverlight. , , Green (),
Red (), Blue (), Black (), White () Transparent
(, "" ). Silverlight .
<Line X1="100" Y1="100" X2="300" Y2="200" Stroke="Aqua"></Line>
- ( Aqua Stroke).
Line . "", "" ""
. ,
,
"".
Line , : ( ,
), ( ), . Silverlight.
Rectangle . ; .
Width .
Height .
Stroke .
StrokeThickness .
Fill .
Transparent,
. . .
Opacity 0
( ) 1 ( ). 1.
RadiusX -
. 0.
15.
273
RadiusY
. 0.
Width, Height, StrokeThickness, Opacity, RadiusX RadiusY
, Stroke
Fill Brush.
Rectangle "" (Canvas).
5 Canvas.Left Canvas.Top.
, ;
.
<Canvas>
<Rectangle Canvas.Left="10" Canvas.Top="10" Width="100" Height="200"
Stroke="Green" StrokeThickness="10" Fill="Transparent"></Rectangle>
</Canvas>
, , .
, Fill.
Rectangle .
,
.
<Grid>
<Rectangle Stroke="Blue" Fill="Blue"></Rectangle>
<TextBox Margin="5,5,5,5"></TextBox>
</Grid>
"" . (. .
XAML- , ),
.
.
Ellipse Rectangle,
. Width, Height, Stroke,
StrokeThickness, Fill Opacity.
<Ellipse Canvas.Left="200" Canvas.Top="150" Stroke="Yellow" Fill="Yellow"
Width="100" Height="75"></Ellipse>
(Yellow) "".
<Ellipse Canvas.Left="100" Canvas.Top="100" Stroke="Black"
Width="200" Height="200"></Ellipse>
274
V. Silverlight.
, . . . ,
, , .
, Silverlight , , .
.
Polygon , . ,
,
. , .
,
, Points.
PointCollection Point, , . XAML-
< >,
< >, ; .
Polygon Stroke,
StrokeThickness, Fill Opacity.
"" Line, Polygon . "", "", "" .
<Polygon Points="0,100 100,0 100,200" Stroke="Black"></Polygon>
. ,
.
, , Polygon,
, . , . .
<Polygon Points="10,10 10,60 30,60 10,10 10,100 100,100 10,10"
Stroke="Black" Fill="Blue"></Polygon>
, . 15.1. ,
.
15.
275
. 15.1. ,
( FillRule EvenOdd)
, Silverlight ,
(, , ).
FillRule, FillRule EvenOdd
NonZero.
FillRule EvenOdd (, , ), Silverlight ""
, .
, ,
.
NonZero FillRule Silverlight
. ,
, ,
. , , .
, , , .
FillRule , XAML-, NonZero , .
, . 15.2.
. 15.2. ,
( FillRule NonZero)
276
V. Silverlight.
Polyline , , .
, Polygon.
<Polyline Points="0,100 100,0 100,200" Stroke="Black"></Polyline>
, .
.
, , Silverlight- , .
(, ), , .
Path. -
.
Path Data Geometry. Geometry
, ;
.
Path Stroke, StrokeThickness, Fill
.
Opacity.
, .
LineGeometry. StartPoint
EndPoint, , ,
. Point; XAML-
< >,< >;
.
<Path Stroke="Black">
<Path.Data>
<LineGeometry StartPoint="0,150" EndPoint="400,150"></LineGeometry>
</Path.Data>
</Path>
. (
...)
15.
277
.
RectangleGeometry.
:
Rect ;
RadiusX -
;
RadiusY
.
RadiusX RadiusY .
Rect Rect. XAML-
:
< >,
< >,<>,<>
<RectangleGeometry Rect="20,20,200,200"
RadiusX="5" RadiusY="5"></RectangleGeometry>
.
. EllipseGeometry, :
Center ;
RadiusX ;
RadiusY .
RadiusX RadiusY .
Center Point.
<EllipseGeometry Center="200,150"
RadiusX="100" RadiusY="75"></EllipseGeometry>
.
,
, . ,
, Line, Rectangle
Ellipse. ,
, .
GeometryGroup.
Geometry,
Data Path.
278
V. Silverlight.
. , ,
.
<Path Stroke="Black" Fill="Blue">
<Path.Data>
<GeometryGroup>
<GeometryGroup.Children>
<GeometryCollection>
<EllipseGeometry Center="200,150" RadiusX="100"
RadiusY="100"></EllipseGeometry>
<RectangleGeometry Rect="150,100,100,100"></RectangleGeometry>
</GeometryCollection>
</GeometryGroup.Children>
</GeometryGroup>
</Path.Data>
</Path>
"" .
15.
279
PathGeometry,
, ,
, ,
(). "" Silverlight.
, ,
Figures . PathFigureCollection,
PathFigure, .
PathGeometry FillRule.
PathFigure, , Segments,
PathSegmentCollection;
PathSegment, . -, .
, PathFigure , .
StartPoint
Point.
IsClosed , -
.
false ( ), ,
true .
IsFilled , -
; Path.
true ( ),
, false .
, .
? "" , .
,
.
StartPoint
PathFigure.
.
.
280
V. Silverlight.
IsFilled false,
.
LineSegment.
Point
Point.
<Path Stroke="Black" Fill="Blue">
<Path.Data>
<PathGeometry>
<PathGeometry.Figures>
<PathFigure StartPoint="0,150" IsClosed="True" IsFilled="False">
<PathFigure.Segments>
<LineSegment Point="150,0"></LineSegment>
<LineSegment Point="150,300"></LineSegment>
</PathFigure.Segments>
</PathFigure>
<PathFigure StartPoint="200,150">
<PathFigure.Segments>
<LineSegment Point="350,0"></LineSegment>
<LineSegment Point="350,300"></LineSegment>
<LineSegment Point="200,150"></LineSegment>
</PathFigure.Segments>
</PathFigure>
</PathGeometry.Figures>
</PathGeometry>
</Path.Data>
</Path>
, .
. , .
PolyLineSegment , . Points, , ; Polygon
Polyline.
<Path Stroke="Black" Fill="Blue">
<Path.Data>
<PathGeometry>
<PathGeometry.Figures>
<PathFigure StartPoint="0,150" IsClosed="True" IsFilled="False">
<PathFigure.Segments>
15.
281
, .
ArcSegment . , .
Point
Point.
Size . Size, XAML-
< >,< >;
.
RotationAngle , ,
, .
0.
SweepDirection , , SweepDirection :
Counterclockwise (
);
Clockwise .
IsLargeArc , 180 (
true) ( false; ).
<PathFigure StartPoint="0,0">
<PathFigure.Segments>
<ArcSegment Point="100,100" Size="100,50"></ArcSegment>
<ArcSegment Point="0,0" Size="50,100"></ArcSegment>
</PathFigure.Segments>
</PathFigure>
282
V. Silverlight.
. ...
<PathFigure StartPoint="0,0">
<PathFigure.Segments>
<ArcSegment Point="100,100" Size="100,50"></ArcSegment>
<ArcSegment Point="0,0" Size="100,50"
RotationAngle="90"></ArcSegment>
</PathFigure.Segments>
</PathFigure>
, .
( , ), BezierSegment. ,
Point.
Point1 . -
, , . , Silverlight, , "" .
Point2 .
Point3 .
<PathFigure StartPoint="0,0">
<PathFigure.Segments>
<BezierSegment Point1="50,100" Point2="200,0"
Point3="100,300"></BezierSegment>
</PathFigure.Segments>
</PathFigure>
.
, PolyBezierSegment. Points
PointCollection
Point, . XAML-
< >,<
>,< >, ;
.
<PathFigure StartPoint="0,0">
<PathFigure.Segments>
15.
283
<PolyBezierSegment
Points="50,100,200,0,100,150,50,100,0,200,0,0"></PolyBezierSegment>
</PathFigure.Segments>
</PathFigure>
, , .
, Point1. Point2
.
Point.
QuadraticBezierSegment.
<PathFigure StartPoint="0,0">
<PathFigure.Segments>
<QuadraticBezierSegment Point1="50,100"
Point2="200,0"></QuadraticBezierSegment>
</PathFigure.Segments>
</PathFigure>
, .
, PolyQuadraticBezierSegment.
Points PointCollection Point, . XAML-
< >,< >, ; .
<PathFigure StartPoint="0,0">
<PathFigure.Segments>
<PolyQuadraticBezierSegment
Points="50,100,50,50,0,200,0,0"></PolyQuadraticBezierSegment>
</PathFigure.Segments>
</PathFigure>
... , , .
<PathFigure StartPoint="100,100">
<PathFigure.Segments>
<LineSegment Point="50,100"></LineSegment>
<ArcSegment Point="50,0" Size="100,50"></ArcSegment>
<BezierSegment Point1="0,0" Point2="100,50"
Point3="200,300"></BezierSegment>
284
V. Silverlight.
<QuadraticBezierSegment Point1="400,0"
Point2="0,0"></QuadraticBezierSegment>
</PathFigure.Segments>
</PathFigure>
- .
(. ). ,
, PathGeometry .
Border
Silverlight . Border, - . .
Border Child. UIElement; , Silverlight.
Border .
BorderBrush Brush.
Background Brush.
BorderThickness
Thickness. XAML- <
>,< >,< >,
< >,
,
.
.
CornerRadius
CornerRadius. XAML-
< >,<
>,<
>,< >,
,
. .
15.
285
DataGrid .
,
Silverlight . ,
, "" . ,
Foreground,
"" (, ), Background,
, BorderBrush, .
?
Silverlight . ,
,
. .
Silverlight ; "" .
Brush.
.
, . Silverlight !
<Line X1="100" Y1="100" X2="300" Y2="200" Stroke="Aqua"></Line>
Silverlight , .
.NET Framework Class
Library for Silverlight / System.Windows.Media Namespace / SolidColorBrush Class Silverlight.
286
V. Silverlight.
XAML- Silverlight,
,
SolidColorBrush, , .
, SolidColorBrush "", XAML-.
<Line X1="100" Y1="100" X2="300" Y2="200">
<Line.Stroke>
<SolidColorBrush Color="#984EA5"></SolidColorBrush>
</Line.Stroke>
</Line>
, Color
SolidColorBrush. Color XAML-
#[< >]< ><
>< >,
00 FF. , . , .
, SolidColorBrush Opacity, . 0 ( ) 1 ( ).
<SolidColorBrush Color="#984EA5" Opacity="0.5"></SolidColorBrush>
, , , . ,
.
Windows 2000
Windows XP Windows Vista.
. "" , , . . 15.3.
LinearGradientBrush. , .
,
, .
15.
287
. 15.3.
! ,
.
[0,0] , [1,1]
. , - , 0 1. , [0,5,0,5] .
<LinearGradientBrush StartPoint="0,0" EndPoint="1,0">
</LinearGradientBrush>
[0,0]
[1,0]. , "" ( . 15.3) .
<LinearGradientBrush StartPoint="0,0" EndPoint="0,0.5">
</LinearGradientBrush>
288
V. Silverlight.
"" . ( , "" , .)
<LinearGradientBrush StartPoint="0,1" EndPoint="1,0">
</LinearGradientBrush>
, ""
, .
, . GradientStops,
GradientStopCollection, GradientStop.
GradientStop ,
, .
GradientStop ,
.
Color Color.
Offset -
, "" ,
0 ( ) 1 ( ).
<Rectangle Width="400" Height="300">
<Rectangle.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="1,0">
<LinearGradientBrush.GradientStops>
<GradientStopCollection>
<GradientStop Color="Black" Offset="0"></GradientStop>
<GradientStop Color="White" Offset="0.5"></GradientStop>
<GradientStop Color="Blue" Offset="1"></GradientStop>
</GradientStopCollection>
</LinearGradientBrush.GradientStops>
</LinearGradientBrush>
</Rectangle.Fill>
</Rectangle>
, . 15.3. "" .
( 0)
, ( 0,5)
, ( 1) .
15.
289
, ,
.
.
LinearGradientBrush Opacity, .
, ,
. ?
Silverlight SpreadMethod
LinearGradientBrush.
GradientSpreadMethod :
Pad , -
( );
Reflect , -
;
Repeat
.
<LinearGradientBrush StartPoint="0,0" EndPoint="0,0.5"
SpreadMethod="Reflect">
. . .
</LinearGradientBrush>
, ""
(. 15.4). - , .
RadialGradientBrush.
, [0,0]
, [1,1] .
,
RadialGradientBrush, .
GradientOrigin , -
, Point;
Center , -
, Point;
RadiusX ,
, ;
RadiusY ,
, .
290
V. Silverlight.
. 15.4.
GradientStops.
RadialGradientBrush Opacity SpreadMethod.
<Rectangle Width="400" Height="300">
<Rectangle.Fill>
<RadialGradientBrush GradientOrigin="0.5,0.5" Center="0.5,0.5"
RadiusX="0.5" RadiusY="0.5">
<RadialGradientBrush.GradientStops>
<GradientStopCollection>
<GradientStop Color="Black" Offset="0"></GradientStop>
<GradientStop Color="White" Offset="0.5"></GradientStop>
<GradientStop Color="Blue" Offset="1"></GradientStop>
</GradientStopCollection>
</RadialGradientBrush.GradientStops>
</RadialGradientBrush>
</Rectangle.Fill>
</Rectangle>
, . 15.4.
15.
291
, (. 15.5). ,
.
. 15.5.
, . ( 8.)
292
V. Silverlight.
ImageBrush.
ImageSource , ;
.
<Rectangle Width="400" Height="300">
<Rectangle.Fill>
<ImageBrush ImageSource="image.jpg"></ImageBrush>
</Rectangle.Fill>
</Rectangle>
AlignmentX , , , , .
AlignmentX :
Left ;
Right ;
Center ( ).
AlignmentY .
AlignmentY :
Top ;
Bottom ;
Center ( ).
Stretch , .
Stretch :
None .
;
Fill , -
. ( );
Uniform , -
, . ;
UniformToFill ,
, .
.
15.
293
ImageBrush Opacity.
<Rectangle Width="600" Height="800" Stroke="Black">
<Rectangle.Fill>
<ImageBrush ImageSource="image.jpg" AlignmentX="Right"
Stretch="None"></ImageBrush>
</Rectangle.Fill>
</Rectangle>
, , Silverlight ().
.
, , ,
Visual Web Developer 2008,
, . , 7 8.
,
MediaElement, .
( MediaElement 7.)
, 0, .
<MediaElement x:Name="melFill" Source="video.wmv"
Opacity="0"></MediaElement>
294
V. Silverlight.
,
.
XAML-, , . ?
,
, . (
13.) .
<UserControl.Resources>
<LinearGradientBrush x:Key="lgbFill" StartPoint="0,0" EndPoint="1,0">
<LinearGradientBrush.GradientStops>
<GradientStopCollection>
<GradientStop Color="Black" Offset="0"></GradientStop>
<GradientStop Color="White" Offset="0.5"></GradientStop>
<GradientStop Color="Blue" Offset="1"></GradientStop>
</GradientStopCollection>
</LinearGradientBrush.GradientStops>
</LinearGradientBrush>
</UserControl.Resources>
, , . .
<Rectangle Width="400" Height="300" Stroke="{StaticResource lgbFill}"
Fill="{StaticResource lgbFill}"></Rectangle>
- ,
.
, , . .
?
Silverlight. , ,
. .
Silverlight .
, . -
.
16
Silverlight
. , .
Silverlight-. ,
.
Silverlight.
Silverlight ,
, .
, -.
Silverlight .
. - .
, .
Clip, .
Clip Geometry. ,
Geometry, . . ,
( LineGeometry), .
15.
296
V. Silverlight.
,
, . , , .
<Image Source="image.jpg">
<Image.Clip>
<EllipseGeometry Center="150,200" RadiusX="150"
RadiusY="200"></EllipseGeometry>
</Image.Clip>
</Image>
. ,
(. 16.1).
. 16.1.
. , , , . . .
16.
297
. ;
.
OpacityMask,
. Brush.
<Image Source="image.jpg">
<Image.OpacityMask>
<RadialGradientBrush GradientOrigin="0.5,0.5" Center="0.5,0.5"
RadiusX="0.5" RadiusY="0.5">
<RadialGradientBrush.GradientStops>
<GradientStopCollection>
<GradientStop Color="#FF000000" Offset="0"></GradientStop>
<GradientStop Color="#99000000" Offset="0.75"></GradientStop>
<GradientStop Color="#00000000" Offset="1"></GradientStop>
</GradientStopCollection>
</RadialGradientBrush.GradientStops>
</RadialGradientBrush>
</Image.OpacityMask>
</Image>
(. 16.2).
. 16.2.
298
V. Silverlight.
. ,
: .
Effect,
. Effect; -, .
BlurEffect.
Radius,
; 5.
<TextBlock Text="!" FontSize="36">
<TextBlock.Effect>
<BlurEffect></BlurEffect>
</TextBlock.Effect>
</TextBlock>
(. 16.3).
. 16.3.
DropShadowEffect.
, .
BlurRadius
. 5.
Color Color.
#FF000000 ( ).
Direction -
. 315.
Opacity
0 ( ) 1 ( ; ).
ShadowDepth
. 5.
16.
299
(. 16.4).
. 16.4.
, , , , , . .
Silverlight , . : .
, , . .
, ( Geometry) ( Brush).
RenderTransform.
Transform.
Transform
RelativeTransform.
, , , , ( 15).
300
V. Silverlight.
Transform.
-, .
(, ) , . TranslateTransform. X Y, .
, .
<TextBlock Text="!" FontSize="36">
<TextBlock.RenderTransform>
<TranslateTransform X="2" Y="2"></TranslateTransform>
</TextBlock.RenderTransform>
</TextBlock>
<TextBlock Text="!" FontSize="36"
Foreground="Aqua"></TextBlock>
- .
, , 2 . -
; ,
.
<Rectangle Width="400" Height="300">
<Rectangle.Fill>
<RadialGradientBrush GradientOrigin="0.5,0.5" Center="0.5,0.5"
RadiusX="0.5" RadiusY="0.5">
<RadialGradientBrush.GradientStops>
<GradientStopCollection>
<GradientStop Color="Black" Offset="0"></GradientStop>
<GradientStop Color="White" Offset="0.5"></GradientStop>
<GradientStop Color="Blue" Offset="1"></GradientStop>
</GradientStopCollection>
</RadialGradientBrush.GradientStops>
<RadialGradientBrush.RelativeTransform>
<TranslateTransform X="0.25" Y="-0.25"></TranslateTransform>
</RadialGradientBrush.RelativeTransform>
</RadialGradientBrush>
</Rectangle.Fill>
</Rectangle>
, ,
.
16.
301
, , . . RelativeTransform,
.
ScaleTransform . , .
ScaleX ScaleY , ,
. 1 (. . ).
CenterX CenterY
, "" "" .
. 0; , [0,0]
.
. ,
[200,0]
; ""
"" .
, RotateTransform.
, .
Angle -
. , . 0.
CenterX CenterY
, .
. 0; , [0,0] .
302
V. Silverlight.
- ...
SkewTransform , .
.
AngleX AngleY
.
, . 0.
CenterX CenterY
, .
. 0; , [0,0] .
.
<Rectangle Width="400" Height="300">
<Rectangle.Fill>
<RadialGradientBrush GradientOrigin="0.5,0.5" Center="0.5,0.5"
RadiusX="0.5" RadiusY="0.5">
<RadialGradientBrush.GradientStops>
<GradientStopCollection>
<GradientStop Color="Black" Offset="0"></GradientStop>
<GradientStop Color="White" Offset="0.5"></GradientStop>
<GradientStop Color="Blue" Offset="1"></GradientStop>
</GradientStopCollection>
</RadialGradientBrush.GradientStops>
<RadialGradientBrush.RelativeTransform>
<SkewTransform CenterX="0.5" CenterY="0.5"
AngleX="45"></SkewTransform>
</RadialGradientBrush.RelativeTransform>
</RadialGradientBrush>
16.
303
</Rectangle.Fill>
</Rectangle>
, ,
.
- ...
.
- , . .
TransformGroup.
Transform,
, ,
.
TransformGroup Children. TransformCollection, Transform.
, , Children, .
, , , .
, , , XAML-.
<TextBlock Text="!" FontSize="36">
<TextBlock.RenderTransform>
<TransformGroup>
<TransformGroup.Children>
<TransformCollection>
<RotateTransform Angle="-90"></RotateTransform>
<TranslateTransform Y="400"></TranslateTransform>
</TransformCollection>
</TransformGroup.Children>
</TransformGroup>
</TextBlock.RenderTransform>
</TextBlock>
90 , 400 ( ).
, .
304
V. Silverlight.
Silverlight . , , Silverlight 3;
.
.
Projection, Projection.
-, .
PlaneProjection.
PlaneProjection ,
.
RotationX, RotationY RotationZ
X, Y Z
. , . 0.
, ,
X, Y Z. 0 ( )
1 ( ). 0,5, 0,5 0 ; ,
[0,5,0,5,0] .
X, Y Z. , ,
. 0.
X, Y Z. , , . 0.
<Image Source="image.jpg">
<Image.Projection>
<PlaneProjection RotationY="-30" RotationZ="20"
GlobalOffsetZ="-30"></PlaneProjection>
16.
305
</Image.Projection>
</Image>
30 Y,
20 Z Z
"" 30 .
. 16.5. , ...
. 16.5.
, , .
.
?
Silverlight.
, ,
, .
" " , .
.
17
Silverlight, .
,
, . ,
?
Silverlight-, . -, Silverlight ""
""! XAML-!
Silverlight-
. , ,
, .
, Silverlight - . - , ,
, , - .
,
. .
.
,
( ), Silverlight .
, ()
,
17.
307
. , ( ), , , , , . ,
.
: , . , .
,
. ,
. , ,
Silverlight: "
".
Silverlight ,
,
(. ).
, . . ,
.
,
. , ,
, (. . ).
.
Silverlight . ; , .
, , .
- ,
.
.
( ).
. ,
. , ,
Loaded .
308
V. Silverlight.
.
.
, .
.
, . Silverlight .
(
Image) , , "
". Opacity
1 0. ,
10 .
, .
C#-.
Storyboard.
Children TimelineCollection,
Timeline . Children ,
.
<Storyboard x:Name="sbdDemo">
</Storyboard>
, Silverlight.
. ( 13.)
<UserControl.Resources>
<Storyboard x:Name="sbdDemo">
</Storyboard>
</UserControl.Resources>
,
. ,
( x:Name). Silverlight, -,
, , , C#-. , ...
17.
309
. Silverlight, .
ColorAnimation Color,
. . .
DoubleAnimation .
PointAnimation Point,
. . .
Opacity , DoubleAnimation.
: .
, ;
.
From .
, . , DoubleAnimation
, ColorAnimation Color, PointAnimation Point.
From , (, XAML-, ).
To .
. ,
.
By ,
. , ,
. ,
,
.
Duration .
Duration. XAML-
[<>:]<>:<>:<>[.< >].
<DoubleAnimation . . . Duration="0:0:10" . . .>
, 10 .
Duration
Automatic. .
<DoubleAnimation . . . Duration="Automatic" . . .>
310
V. Silverlight.
?
:
Storyboard.TargetName ;
Storyboard.TargetProperty .
, XAML- :
<UserControl.Resources>
<Storyboard x:Name="sbdDemo">
<DoubleAnimation From="1" To="0" Duration="0:0:10"
Storyboard.TargetName="imgDemo"
Storyboard.TargetProperty="Opacity"></DoubleAnimation>
</Storyboard>
</UserControl.Resources>
imgDemo .
Loaded
, :
sbdDemo.Begin();
Begin .
. , " " 10 .
.
<Storyboard x:Name="sbdDemo">
<PointAnimation To="150,0" Duration="0:0:10"
Storyboard.TargetName="lngDemo"
Storyboard.TargetProperty="StartPoint"></PointAnimation>
</Storyboard>
. . .
<Path Stroke="Black">
<Path.Data>
<LineGeometry x:Name="lngDemo" StartPoint="0,150"
EndPoint="400,150"></LineGeometry>
</Path.Data>
</Path>
. PointAnimation , StartPoint . , -
17.
311
(150,0);
, XAML- (0,150).
<Storyboard x:Name="sbdDemo">
<ColorAnimation To="Green" Duration="0:0:10"
Storyboard.TargetName="gdsDemo"
Storyboard.TargetProperty="Color"></ColorAnimation>
</Storyboard>
. . .
<Rectangle Stroke="Black">
<Rectangle.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="1,0">
<LinearGradientBrush.GradientStops>
<GradientStopCollection>
<GradientStop x:Name="gdsDemo" Color="Blue"
Offset="0"></GradientStop>
<GradientStop Color="Red" Offset="1"></GradientStop>
</GradientStopCollection>
</LinearGradientBrush.GradientStops>
</LinearGradientBrush>
</Rectangle.Fill>
</Rectangle>
,
ColorAnimation.
,
. .
FillBehavior , , .
FillBehavior :
HoldEnd (-
);
Stop .
AutoReverse . false (, ,
), . true, , ; . , ,
, .
: AutoReverse true,
FillBehavior .
312
V. Silverlight.
, FillBehavior
HoldEnd.
, . ,
,
, . RepeatBehavior.
RepeatBehavior XAML- :
< >x -
[<>:]<>:<>:<>[.< >]
Forever .
BeginTime .
TimeSpan, 10. XAML- [<>:]<>:<>:<>[.< >]. 0,
.
BeginTime . , .
. ,
EasingFunction IEasingFunction. , , , .
Graphics, Animation, and Media / Animation / Animation Overview Silverlight.
<Storyboard x:Name="sbdDemo">
<PointAnimation To="150,0" Duration="0:0:10"
Storyboard.TargetName="lngDemo"
Storyboard.TargetProperty="StartPoint">
<PointAnimation.EasingFunction>
<BounceEase EasingMode="EaseInOut"></BounceEase>
</PointAnimation.EasingFunction>
</PointAnimation>
</Storyboard>
. . .
17.
313
<Path Stroke="Black">
<Path.Data>
<LineGeometry x:Name="lngDemo" StartPoint="0,150"
EndPoint="400,150"></LineGeometry>
</Path.Data>
</Path>
, BounceEase.
.
. , Silverlight,
.
, , .
.
ColorAnimationUsingKeyFrames
Color.
DoubleAnimationUsingKeyFrames
.
PointAnimationUsingKeyFrames
Point.
.
ColorAnimationUsingKeyFrames;
DoubleKeyFrameCollection, DoubleKeyFrame,
DoubleAnimationUsingKeyFrames;
PointKeyFrameCollection, PointKeyFrame,
PointAnimationUsingKeyFrames.
314
V. Silverlight.
,
. .
LinearColorKeyFrame, LinearDoubleKeyFrame LinearPointKeyFrame -
, .
, , , . .
Value.
.
.
, .
, ,
, . ,
PointAnimationUsingKeyFrames,
LinearPointKeyFrame, DiscretePointKeyFrame SplinePointKeyFrame.
.
.
, , .
LinearPointKeyFrame.
<LinearPointKeyFrame KeyTime="0:0:4"
Value="10,10"></LinearPointKeyFrame>
17.
315
"" DiscretePointKeyFrame.
<DiscretePointKeyFrame KeyTime="0:0:5"
Value="10,100"></DiscretePointKeyFrame>
, .
, .
SplinePointKeyFrame.
KeySpline KeySpline. XAML-
< >,
0 1.
, , " ".
XAML- :
<Storyboard x:Name="sbdDemo">
<PointAnimationUsingKeyFrames Duration="0:0:10"
Storyboard.TargetName="lngDemo"
Storyboard.TargetProperty="StartPoint">
<PointAnimationUsingKeyFrames.KeyFrames>
<LinearPointKeyFrame KeyTime="0:0:4"
Value="10,10"></LinearPointKeyFrame>
<DiscretePointKeyFrame KeyTime="0:0:5"
Value="10,100"></DiscretePointKeyFrame>
<SplinePointKeyFrame KeyTime="0:0:10"
Value="150,0" KeySpline="0,0.75 0.75,1"></SplinePointKeyFrame>
</PointAnimationUsingKeyFrames.KeyFrames>
</PointAnimationUsingKeyFrames>
</Storyboard>
. . .
<Path Stroke="Black">
<Path.Data>
<LineGeometry x:Name="lngDemo" StartPoint="0,150"
EndPoint="400,150"></LineGeometry>
</Path.Data>
</Path>
316
V. Silverlight.
, , ObjectAnimationUsingKeyFrames. Object, . . .
KeyFrames ObjectAnimationUsingKeyFrames ObjectKeyFrameCollection, ObjectKeyFrame,
.
- DiscreteObjectKeyFrame. ,
ObjectAnimationUsingKeyFrames ""
.
. , XAML-:
<Storyboard x:Name="sbdDemo">
<ObjectAnimationUsingKeyFrames Duration="0:0:5"
Storyboard.TargetName="recDemo" Storyboard.TargetProperty="Fill">
<ObjectAnimationUsingKeyFrames.KeyFrames>
<DiscreteObjectKeyFrame KeyTime="0:0:1">
<DiscreteObjectKeyFrame.Value>
<SolidColorBrush Color="Yellow"></SolidColorBrush>
</DiscreteObjectKeyFrame.Value>
</DiscreteObjectKeyFrame>
<DiscreteObjectKeyFrame KeyTime="0:0:2">
<DiscreteObjectKeyFrame.Value>
<SolidColorBrush Color="Red"></SolidColorBrush>
</DiscreteObjectKeyFrame.Value>
</DiscreteObjectKeyFrame>
<DiscreteObjectKeyFrame KeyTime="0:0:3">
<DiscreteObjectKeyFrame.Value>
<SolidColorBrush Color="Green"></SolidColorBrush>
</DiscreteObjectKeyFrame.Value>
</DiscreteObjectKeyFrame>
<DiscreteObjectKeyFrame KeyTime="0:0:4">
<DiscreteObjectKeyFrame.Value>
<SolidColorBrush Color="Blue"></SolidColorBrush>
</DiscreteObjectKeyFrame.Value>
</DiscreteObjectKeyFrame>
<DiscreteObjectKeyFrame KeyTime="0:0:5">
<DiscreteObjectKeyFrame.Value>
<SolidColorBrush Color="Black"></SolidColorBrush>
</DiscreteObjectKeyFrame.Value>
</DiscreteObjectKeyFrame>
</ObjectAnimationUsingKeyFrames.KeyFrames>
17.
317
</ObjectAnimationUsingKeyFrames>
</Storyboard>
. . .
<Rectangle x:Name="recDemo" Stroke="Black" Fill="White"></Rectangle>
? ?
. ?
! ,
, . .
, .
.
<Storyboard x:Name="sbdDemo">
<PointAnimation To="150,0" Duration="0:0:10"
Storyboard.TargetName="lngDemo"
Storyboard.TargetProperty="StartPoint"></PointAnimation>
<PointAnimation To="150,400" Duration="0:0:10"
Storyboard.TargetName="lngDemo"
Storyboard.TargetProperty="EndPoint"></PointAnimation>
</Storyboard>
. . .
<Path Stroke="Black">
<Path.Data>
<LineGeometry x:Name="lngDemo" StartPoint="0,150"
EndPoint="400,150"></LineGeometry>
</Path.Data>
</Path>
.
.
<Storyboard x:Name="sbdDemo">
<Storyboard>
<PointAnimation To="150,0" Duration="0:0:10"
Storyboard.TargetName="lngDemo"
Storyboard.TargetProperty="StartPoint"></PointAnimation>
318
V. Silverlight.
,
. , ,
.
. "".
, , . .
BeginTime.
TimeSpan (. 10)
. , . , 5 ,
3 ,
8 (5+3) .
SpeedRatio. , , .
; 1 ,
1 . 1 ( ).
<Storyboard x:Name="sbdDemo">
<Storyboard BeginTime="0:0:2" SpeedRatio="0.5">
17.
319
, , 2 2 ( SpeedRatio
0.5).
, C#-.
, Storyboard.
Begin . .
Stop .
Pause .
Resume Pause
.
Seek SeekAlignedToLastTick "" .
TimeSpan, , "" ;
"" , .
.
Seek "", ,
. SeekAlignedToLastTick ,
, .
sbdDemo.Seek(new TimeSpan(0, 0, 1));
"" .
SkipToFill ""
. . AutoReverse true, . RepeatBehavior Forever, "" ,
InvalidOperation.
320
V. Silverlight.
Storyboard,
Completed. .
private void sbdFirst_Completed(object sender, EventArgs e)
{
sbdSecond.Begin();
}
?
, Silverlight .
Flash, , .
. Silverlight-, . 2, .
18
Silverlight:
, , .
!..
, .
Silverlight-. , .
, .
. .
, - Silverlight 3.
.
, , . C#-, , new , Web-, .
- Silverlight . , ,
.
Silverlight 3
. . ,
. .
322
V. Silverlight.
, Silverlight- .
, (
). , , .
, ,
. "" ,
. ,
, .
, , .
: , ,
, , .
,
UserControl, Page.
( ).
, .
,
() . ; Silverlight -, .
- . .
. , -
. .
Visual Web Developer 2008 MultiPage.
ListDemo Person
ListDemoItemCollection. Person Platforms, -
18.
323
.
, , MultiPage.
.
"" Frame.
System.Windows.Controls,
System.Windows.Controls.Navigation.dll.
. , Visual Web Developer 2008 XAML-:
<navigation:Frame></navigation:Frame>
Source Frame ,
(. . ).
Uri - XAML- . ( Uri 7.) XAML .
<navigation:Frame Source="/ListPage.xaml"></navigation:Frame>
ListPage.xaml. . , -
, "" , , .
8 , . , .
. .
pages. ( ,
8.) .
Source .
<navigation:Frame Source="/pages/ListPage.xaml"></navigation:Frame>
ListPage.xaml, pages.
324
V. Silverlight.
, . .
.
"" Solution Explorer
New Item Add. Add
New Item (. 18.1).
18.
325
<navigation:Page x:Class="MultiPage.ListPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:navigation="clr-namespace:System.Windows.Controls;
assembly=System.Windows.Controls.Navigation"
Title=" ">
<Grid x:Name="LayoutRoot">
</Grid>
</navigation:Page>
, Page.
,
System.Windows.Controls,
System.Windows.Controls.Navigation.dll. ,
System.Windows.Controls
navigation.
, Page ( , )
Title. , Web- . ( Web- Web; Web-,
.)
.
, Silverlight-.
x:Class, . , XAML.
XAML-, ,
"".
, .
ListDemoItemCollection.
<navigation:Page.Resources>
<local:ListDemoItemCollection
x:Key="colItems"></local:ListDemoItemCollection>
</navigation:Page.Resources>
326
V. Silverlight.
btnToDetail.
,
lstSpecs .
. , , ,
.
,
DetailPage.xaml. .
, ;
, , .
, , Person. , , XAML-
C#- DataContext. , ,
, :
<TextBox Text="{Binding Path=F}" . . .>
XAML- .
btnToMain,
.
. , C#-.
Click (btnToDetail), . , -,
, -, , . .
18.
327
NavigationService Page.
NavigationService,
.
Navigate.
Uri, ,
. ,
true, false.
Click btnToDetail :
if (lstSpecs.SelectedIndex > -1)
{
NavigationService.Navigate(new Uri("/pages/DetailPage.xaml",
UriKind.Relative));
}
, lstSpecs - ,
, . Navigate Uri,
DetailPage.xaml. "" ,
Uri Relative UriKind.
(btnToMain) . Click :
NavigationService.Navigate(new Uri("/pages/ListPage.xaml",
UriKind.Relative));
Silverlight,
. Web-, Web-. Web Silverlight- !
, ,
(Forward) (Back) Web-.
NavigationService ,
. .
GoForward GoBack , ,
, .
.
CanGoForward CanGoBack true,
, false . .
328
V. Silverlight.
, Click
btnToMain :
if (NavigationService.CanGoBack)
{
NavigationService.GoBack();
}
NavigationService StopLoading.
. .
Page Loading. .
Frame CanGoForward CanGoBack
GoForward, GoBack, Navigate StopLoading. , ; .
Navigating .
Navigated .
NavigationStopped -
StopLoading.
NavigationFailed ,
(, ).
Page, .
, ,
.
, !
, , !
! . Silverlight
. , . , ,
, .
18.
329
(?).
< >=< >,
&.
, 1
num, :
/pages/DetailPage.xaml?num=1
, . , , , , , Unicode. ,
.
Click
btnToDetail :
if (lstSpecs.SelectedIndex > -1)
{
NavigationService.Navigate(new Uri("/pages/DetailPage.xaml?num=" +
lstSpecs.SelectedIndex, UriKind.Relative));
}
(num)
.
; Silverlight .
.
NavigationContext Page. NavigationContext, . QueryString,
(. 11); ,
.
Loaded . :
ListDemoItemCollection colSpecs;
int specNum = 0;
330
V. Silverlight.
if (NavigationContext.QueryString.ContainsKey("num"))
{
if (int.TryParse(NavigationContext.QueryString["num"], out specNum))
{
colSpecs = new ListDemoItemCollection();
LayoutRoot.DataContext = colSpecs[specNum];
}
}
, ,
, num.
ContainsKey, , . ,
TryParse.
, ,
.
ListDemoItemCollection, , .
, , ,
,
(LayoutRoot). . ,
,
.
, ... .
- (HyperlinkButton)
Silverlight- Web-,
HyperlinkButton. , , Web HTML.
<HyperlinkButton Content=""
NavigateUri="/pages/ListPage.xaml"></HyperlinkButton>
Content
HyperlinkButton. ContentControl; ,
.
, ,
NavigateUri Uri. XAML-
.
HyperlinkButton Click, .
18.
331
Click
, .
HyperlinkButton
ActualHeight,
ActualWidth, FontFamily, FontSize, FontStretch, FontStyle, FontWeight, Height,
HorizontalAlignment, IsEnabled, IsTabStop, Margin, MaxHeight, MaxWidth,
MinHeight, MinWidth, Name, Padding, TabIndex, VerticalAlignment, Visibility
Width Focus.
Web-
Silverlight Web-.
HyperlinkButton. NavigateUri
-. TargetName
_new Web- Web-
. !
<HyperlinkButton Content=" Silverlight"
NavigateUri="http://www.microsoft.com/rus/Silverlight/"
TargetName="_new"></HyperlinkButton>
,
Silverlight.
?
.
Web-.
, Silverlight-
. , .
19
,
. , () .
, .
. ,
, . Windows-
. -
Silverlight? , .
- , , - . Windows -, . - Silverlight?
.
Silverlight , - .
Silverlight .
GridDemo .
Silverlight ,
.
.
19.
333
Web-, -
Silverlight-,
.
. -
,
.
-
.
( ) -
. Windows-.
-
, .
, -
.
, . : ...
Silverlight ,
MSIL , ,
, .
, ,
, ... ... ... . .
"--" .
, , , .
Silverlight . , , ,
: ,
. (, ,
Silverlight, . .)
, , , , , .
, "" , .
,
.
, ,
.
.
334
V. Silverlight.
,
. ChildWindow.
. Visual Web Developer 2008
GridDemo. XAML- , , grdDemo
"" :
<data:DataGrid . . . ItemsSource="{Binding}" . . .>
colItems, :
private ListDemoItemCollection colItems;
InitializeComponent :
colItems = new ListDemoItemCollection();
grdDemo.DataContext = colItems;
,
grdDemo.
,
C#- colItems.
,
C#-.
btnAdd. .
,
"" Solution Explorer
New Item Add.
Add New Item (. . 18.1).
Categories "" Visual C#,
, Silverlight. Templates
Silverlight Child Window. Name ,
; AddWindow.xaml.
Add. ( Cancel
.)
Visual Web Developer 2008 , , -
19.
335
Solution Explorer.
AddWindow.xaml,
.
. XAML-, .
<controls:ChildWindow x:Class="GridDemo.AddWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="clrnamespace:System.Windows.Controls;assembly=System.Windows.Controls"
Width="400" Height="300"
Title=" ">
<Grid x:Name="LayoutRoot" Margin="2">
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Button x:Name="btnCancel" Content=""
Click="CancelButton_Click" Width="75" Height="23"
HorizontalAlignment="Right" Margin="0,12,0,0" Grid.Row="1" />
<Button x:Name="btnOK" Content="" Click="OKButton_Click"
Width="75" Height="23" HorizontalAlignment="Right"
Margin="0,12,79,0" Grid.Row="1" />
</Grid>
</controls:ChildWindow>
, .
,
ChildWindow.
,
System.Windows.Controls, System.Windows.Controls.dll. ,
System.Windows.Controls controls.
, ChildWindow ( , ) Title.
Object , . ; .
ChildWindow Width Height,
. , , ,
, .
336
V. Silverlight.
.
Click btnAdd. .
,
new. Silverlight .
Show
ChildWindow. .
, , no
comments:
AddWindow wndAdd = new AddWindow();
wndAdd.Show();
. .
"" . , K .
19.
337
, . , ,
, , , ... K "". , Visual Web Developer 2008 Click - , . ?
,
Close ChildWindow. .
Close , , ;
Click .
- ,
, K . ( .)
, - ,
.
DialogResult ChildWindow. null.
, null.
, -
,
<Ctrl>+<Shift>+<F4> Close,
false.
, K, -
true.
, ,
false.
DialogResult -
.
AddWindow.xaml.cs
Click K , , .
, Click K :
this.DialogResult = true;
DialogResult
true. , -, , -, ,
, K.
Click :
this.DialogResult = false;
338
V. Silverlight.
, , .
DialogResult!
, K
,
. ?
, , , , Show
Click :
AddWindow wndAdd = new AddWindow();
wndAdd.Show();
if (wndAdd.DialogResult == true)
{
Person prs = new Person();
int iAge;
prs.F = wndAdd.txtF.Text;
prs.N1 = wndAdd.txtN1.Text;
prs.N2 = wndAdd.txtN2.Text;
if (int.TryParse(wndAdd.txtAge.Text, out iAge))
{
prs.Age = iAge;
}
colItems.Add(prs);
}
. ...
, , , , . , , ,
, , .
Show,
, , . ""
, , . .
:
Closed .
ChildWindow.
19.
339
Closed . .
.
Closed
.
private void wndAdd_Closed(object sender, EventArgs e)
{
AddWindow wndAdd = sender as AddWindow;
if (wndAdd.DialogResult == true)
{
Person prs = new Person();
int iAge;
prs.F = wndAdd.txtF.Text;
prs.N1 = wndAdd.txtN1.Text;
prs.N2 = wndAdd.txtN2.Text;
if (int.TryParse(wndAdd.txtAge.Text, out iAge))
{
prs.Age = iAge;
}
colItems.Add(prs);
}
}
, ;
Object. , AddWindow , .
, DialogResult
true. , ,
true, false null, true.
, , txtF, txtN1, txtN2 txtAge ,
.
Click , ,
Closed :
AddWindow wndAdd = new AddWindow();
wndAdd.Closed += wndAdd_Closed;
wndAdd.Show();
340
V. Silverlight.
.
,
K. , -
.
-
? ,
Loaded .
, , txtAge
20.
Loaded:
private void wndAdd_Loaded(object sender, EventArgs e)
{
(sender as AddWindow).txtAge.Text = "20";
}
Click ,
Closed :
AddWindow wndAdd = new AddWindow();
wndAdd.Loaded += wndAdd_Loaded;
wndAdd.Closed += wndAdd_Closed;
wndAdd.Show();
.
20. , !
-
-
. - , , ,
. -
.
- Web- .
( Silverlight -
Windows.)
- Web-. -
Web-, .
19.
341
- , (K)
(K ).
- , -
.
- -
, .
-. ,
, , , -, , . ,
-, , K .
- MessageBox. Show. :
Show(< >[, < >, < >])
, ,
.
, -. , .
MessageBoxButton.
: OK ( -
K) OKCancel ( K ).
, - K.
Show MessageBoxResult.
: OK ( K) Cancel (
).
Click K
, , - , , , .
:
if (txtF.Text == String.Empty)
{
MessageBox.Show(" ");
txtF.Focus();
}
342
V. Silverlight.
else
{
if (txtN1.Text == String.Empty)
{
MessageBox.Show(" ");
txtN1.Focus();
}
else
{
this.DialogResult = true;
}
}
,
,
.
Silverlight .
?
Silverlight, . ,
,
.
. , Web-.
.
VI
Web-
20.
21.
22.
Web-
20
Silverlight
.
GridDemo , .
, ...
, , (, , ). , , -
(, Web-). !
.
, Silverlight 3 .
, Silverlight .
,
.
, -
.
. , ,
.
346
VI. Web-
, , Silverlight
.
, .
. , .
, , , , . .
,
, , , . , , (
Web-).
GridDemo .
specs.dat, data.
, , . ,
, Person . "" Platforms "" ; .
, ,
.
.
btnSave btnLoad.
ListDemoItemCollection ; ,
. , .
, , , , ,
, .
GetUserStoreForApplication IsolatedStorageFile. .
20.
347
, GetUserStoreForApplication,
IsolatedStorageFile.
, .
- file. , ...
IsolatedStorageFile System.IO.
IsolatedStorage. ,
, .
System.IO.IsolatedStorage.IsolatedStorageFile isfData =
System.IO.IsolatedStorage.IsolatedStorageFile.
GetUserStoreForApplication();
, . , .
CreateDirectory
IsolatedStorageFile.
.
isfData.CreateDirectory("\\data\\temp");
data\temp. data,
temp. .
,
, . , Silverlight
( . 9);
, \\. .
,
OpenFile IsolatedStorageFile. , .
:
OpenFile(< >, <>[, < >])
348
VI. Web-
.
FileMode, Silverlight,
. :
CreateNew ;
Open ;
OpenOrCreate , ,
, ;
Append ,
;
Truncate -
;
Create ,
, , .
FileAccess, , . :
Read ;
Write ;
ReadWrite , .
,
, .
FileMode FileAccess
System.IO. , , .
Silverlight-
. ,
. - ,
; .
,
. 21, ,
.
Silverlight . Stream; ,
20.
349
: , . , , , IsolatedStorageFileStream.
OpenFile
IsolatedStorageFileStream.
IsolatedStorageFileStream
System.IO.IsolatedStorage. ,
, .
System.IO.IsolatedStorage.IsolatedStorageFileStream issData =
isfData.OpenFile("\\data\\specs.dat", System.IO.FileMode.Create,
System.IO.FileAccess.Write);
Silverlight /data/specs.dat
, ,
. .
System.IO.IsolatedStorage.IsolatedStorageFileStream issData =
isfData.OpenFile("\\data\\specs.dat", System.IO.FileMode.Open,
System.IO.FileAccess.Read);
, . -"" StreamReader
StreamWriter. ,
.
, - . , StreamWriter. ,
.
StreamWriter System.IO.
, ,
.
, StreamWriter,
.
new
, .
System.IO.StreamWriter stwData = new System.IO.StreamWriter(issData);
350
VI. Web-
StreamWriter WriteLine. , , .
Silverlight. .
WriteLine ,
. .
StreamWriter
Unicode.
Person prs = colItems[0];
stwData.WriteLine(prs.F);
stwData.WriteLine(prs.N1);
stwData.WriteLine(prs.N2);
stwData.WriteLine(prs.Age);
foreach (string platform in prs.Platforms)
{
stwData.WriteLine(platform);
}
stwData.WriteLine();
: , , , . ,
.
:
30
Flash
<--
, WriteLine ,
, , .
.
StreamReader,
.
20.
351
StreamReader System.IO.
, ,
.
StreamReader, ,
new , .
System.IO.StreamReader strData = new System.IO.StreamReader(issData);
StreamReader ReadLine. .
(. . ), null.
.
ReadLine, . , null, , , , .
StreamReader ReadToEnd. ,
, . , . .
EndOfStream. true, , false, .
Person prs = new Person();
prs.F = strData.ReadLine();
prs.N1 = strData.ReadLine();
prs.N2 = strData.ReadLine();
if (int.TryParse(strData.ReadLine(), out iAge))
{
prs.Age = iAge;
}
while (!(strData.EndOfStream))
{
s = strData.ReadLine();
if (s == String.Empty)
{
break;
}
else
{
prs.Platforms.Add(s);
}
}
colItems.Add(prs);
352
VI. Web-
.
, , . , ,
.
, , . . , . , "" Platforms. ,
.
. -, -""
StreamWriter StreamReader,
. -, .
,
, . , .
try-finally,
finally -"" . ,
. ( try-finally 12.)
StreamWriter StreamReader Close. , "". , ,
.
strData.Close();
Close. .
.
.
20.
353
Silverlight
IsolatedStorageFile . .
FileExists true,
, false .
if (isfData.FileExists("\\data\\specs.dat"))
{
. . .
, \data, , , .
GetFileNames , .
, ,
, . , .
* ?. , . ,
*.* , *.dat
dat, ?.txt txt, .
GetFileNames ,
. : , ! , .
( 9.)
string[] files = isfData.GetFileNames("\\data\\*.txt");
if (files.Length > 0)
{
. . .
txt,
\data.
354
VI. Web-
GetDirectoryNames
, .
, ,
, .
, . .
string[] folders = isfData.GetDirectoryNames("\\?ata");
if (folders.Length > 0)
{
. . .
, , , "ata".
. IsolatedStorageFile, .
DeleteFile , . .
DeleteFile .
isfData.DeleteFile("\\data\\specs.dat");
DeleteDirectory ,
. .
DeleteDirectory , . .
isfData.DeleteDirectory("\\data");
,
. 1 048 576 , 1 .
Silverlight-, Web-,
. , ,
20.
355
, .
Silverlight-, ,
Web- .
-
,
. , , .
IsolatedStorageFile
. .
Quota, ,
(long).
.
AvailableFreeSpace
.
.
IncreaseQuotaTo ,
. , ,
, Yes No.
Yes, , IncreaseQuotaTo
true;
No, false.
long availSpace = 524288;
if (isfData.AvailableFreeSpace < availSpace)
{
if (isfData.IncreaseQuotaTo(isfData.Quota + availSpace))
{
. . .
}
else
{
. . .
}
}
,
512 (524 288 ) , , , . ,
IncreaseQuotaTo , ,
356
VI. Web-
. ,
1,5 .
, Silverlight
.
Remove IsolatedStorageFile.
.
isfData.Remove();
, .
- , ,
Silverlight,
.
Remove
.
. Dispose
IsolatedStorageFile. .
isfData.Dispose();
, .
GetUserStoreForApplication
IsolatedStorageFile.
, GridDemo
... ! !..
20.
357
Click (btnSave).
System.IO.IsolatedStorage.IsolatedStorageFile isfData =
System.IO.IsolatedStorage.IsolatedStorageFile.
GetUserStoreForApplication();
if (!(isfData.DirectoryExists("\\data")))
{
isfData.CreateDirectory("\\data");
}
System.IO.IsolatedStorage.IsolatedStorageFileStream issData =
isfData.OpenFile("\\data\\specs.dat", System.IO.FileMode.Create,
System.IO.FileAccess.Write);
System.IO.StreamWriter stwData = new System.IO.StreamWriter(issData);
foreach (Person prs in colItems)
{
stwData.WriteLine(prs.F);
stwData.WriteLine(prs.N1);
stwData.WriteLine(prs.N2);
stwData.WriteLine(prs.Age);
foreach (string platform in prs.Platforms)
{
stwData.WriteLine(platform);
}
stwData.WriteLine();
}
stwData.Close();
isfData.Dispose();
Click (btnLoad).
int iAge;
string s;
System.IO.IsolatedStorage.IsolatedStorageFile isfData =
System.IO.IsolatedStorage.IsolatedStorageFile.
GetUserStoreForApplication();
if (isfData.FileExists("\\data\\specs.dat"))
{
System.IO.IsolatedStorage.IsolatedStorageFileStream issData =
isfData.OpenFile("\\data\\specs.dat", System.IO.FileMode.Open,
System.IO.FileAccess.Read);
System.IO.StreamReader strData = new System.IO.StreamReader(issData);
colItems.Clear();
while (!(strData.EndOfStream))
358
VI. Web-
{
Person prs = new Person();
prs.F = strData.ReadLine();
prs.N1 = strData.ReadLine();
prs.N2 = strData.ReadLine();
if (int.TryParse(strData.ReadLine(), out iAge))
{
prs.Age = iAge;
}
while (!(strData.EndOfStream))
{
s = strData.ReadLine();
if (s == String.Empty)
{
break;
}
else
{
prs.Platforms.Add(s);
}
}
colItems.Add(prs);
}
strData.Close();
}
isfData.Dispose();
, , .
, . , ,
.
.
,
, .
, Silverlight.
.
GridDemo
. ,
20.
359
btnSaveToFile btnLoadFromFile.
, .
, , ,
.
SaveFileDialog.
Windows,
.
SaveFileDialog Filter,
, . ; - , .
Filter , :
< >|< ,
>
(|).
*.< >.
, .
(*.dat)|*.dat
, dat.
(*.dat, *.txt)|*.dat;*.txt
, dat txt.
(*.dat)|*.dat| (*.txt)|*.txt|
(*.*)|*.*
: dat,
txt .
,
, . , . *.* ( ),
.
FilterIndex . , FilterIndex
360
VI. Web-
, . , , .
; .
, ,
,
.
Filter ( ), ,
.
, DefaultExt
, , .
,
. ShowDialog.
, .
, true; , false. ShowDialog null;
, .
.
ShowDialog true, , . SafeFileName,
, . , .
OpenFile. Stream , . ,
. OpenFile .
, .
Click:
SaveFileDialog sfdData = new SaveFileDialog();
sfdData.Filter = " (*.dat)|*.dat|
(*.txt)|*.txt| (*.*)|*.*";
20.
361
if (sfdData.ShowDialog() == true)
{
System.IO.Stream strData = sfdData.OpenFile();
System.IO.StreamWriter stwData = new System.IO.StreamWriter(strData);
foreach (Person prs in colItems)
{
stwData.WriteLine(prs.F);
stwData.WriteLine(prs.N1);
stwData.WriteLine(prs.N2);
stwData.WriteLine(prs.Age);
foreach (string platform in prs.Platforms)
{
stwData.WriteLine(platform);
}
stwData.WriteLine();
}
stwData.Close();
}
SaveFileDialog, ,
. , ,
, ShowDialog true. , ,
- null, true.
OpenFile,
StreamWriter, ,
. .
, .
. ,
( ,
Unicode) , .
,
.
, . OpenFileDialog, -
362
VI. Web-
Windows, .
OpenFileDialog Filter
FilterIndex ShowDialog. , SaveFileDialog.
,
File. FileInfo. FileInfo
.
, OpenText FileInfo.
, StreamReader, . .
OpenRead.
,
. FileStream, Stream.
OpenRead .
, FileInfo , .
Name .
Length
.
Exists true, , false
.
. Click:
int iAge;
string s;
OpenFileDialog ofdData = new OpenFileDialog();
ofdData.Filter = " (*.dat)|*.dat|
(*.txt)|*.txt| (*.*)|*.*";
if (ofdData.ShowDialog() == true)
{
System.IO.StreamReader strData = ofdData.File.OpenText();
colItems.Clear();
while (!(strData.EndOfStream))
{
Person prs = new Person();
20.
363
prs.F = strData.ReadLine();
prs.N1 = strData.ReadLine();
prs.N2 = strData.ReadLine();
if (int.TryParse(strData.ReadLine(), out iAge))
{
prs.Age = iAge;
}
while (!(strData.EndOfStream))
{
s = strData.ReadLine();
if (s == String.Empty)
{
break;
}
else
{
prs.Platforms.Add(s);
}
}
colItems.Add(prs);
}
strData.Close();
}
. ,
, . , .
.
?
. , .
, , Web-. .
21
. Silverlight-,
.
, .
, "",
, . , " ".
, ,
, Web-.
Web- , , . Web ,
, , , .
Silverlight Web-. .
Web-
, ,
, . 7 , , , 8.
.
21.
365
.
,
, .
Silverlight .
, , -
Web-, .
, .
, ,
.
, . ,
,
!..
, . ,
, - Web, , !
?
WebClient
WebClient.
, .
WebClient Web. , , .
, .
WebClient, -
C#-. , .
WebClient Web-
. .
, ,
Web-.
Web-, , . Windows Microsoft
366
VI. Web-
, , .
Loaded .
WebClient.
new. .
WebClient wclImage = new WebClient();
OpenReadAsync WebClient.
:
OpenReadAsync(<- >[, < >])
-
Uri. 7.
.
Object,
.
wclImage.OpenReadAsync(new Uri("image.jpg", UriKind.Relative));
OpenReadAsync
- .
.
21.
367
. , OpenReadAsync.
, .
, , .
OpenReadAsync .
, image.jpg , imgImage?
WebClient OpenReadCompleted.
.
OpenReadCompleted . Object ,
. OpenReadCompletedEventArgs,
.
, Silverlight
. . .
OpenReadCompletedEventArgs Result.
Stream ,
. , 20, .
Image. ,
.
1. BitmapImage, ,
, , OpenReadCompleted. (
BitmapImage 7.)
2. , SetSource
BitmapImage.
Stream .
3. Source Image.
. .
OpenReadCompleted,
WebClient.
368
VI. Web-
7, BitmapImage,
Uri, - . ,
,
.
Loaded ,
, ( ):
WebClient wclImage = new WebClient();
wclImage.OpenReadCompleted += wclImage_OpenReadCompleted;
wclImage.OpenReadAsync(new Uri("image.jpg", UriKind.Relative));
WebClient, ,
OpenReadCompleted.
, , Build
< > Build. ,
, Bin/Debug
Web- ( 4). Web-, ,
image.jpg ( ). Web- - Web-; <- Web>/TestPage.html. ,
Web- .
, OpenReadAsync Object. OpenReadCompleted UserState OpenReadCompletedEventArgs.
Object.
21.
369
WebClient
DownloadProgressChanged.
, .
DownloadProcessCompleted
. , , Object
, .
DownloadProcessChangedEventArgs,
.
DownloadProcessChangedEventArgs ProgressPercentage. 0 100,
.
( ProgressBar;
6),
. prbImage.
DownloadProcessChanged, WebClient.
private void wclImage_DownloadProgressChanged(object sender,
DownloadProgressChangedEventArgs e)
{
prbImage.Value = e.ProgressPercentage;
}
Loaded , , ,
DownloadProcessCompleted WebClient ( ).
WebClient wclImage = new WebClient();
wclImage.OpenReadCompleted += wclImage_OpenReadCompleted;
wclImage.DownloadProgressChanged += wclImage_DownloadProgressChanged;
wclImage.OpenReadAsync(new Uri("image.jpg", UriKind.Relative));
, , Web-,
. Web-
. (,
, , ...)
370
VI. Web-
WebClient .
CancelAsync,
.
OpenReadCompleted. , , , . Cancelled OpenReadCompletedEventArgs.
( , .) ,
true, false.
private void wclImage_OpenReadCompleted(object sender,
OpenReadCompletedEventArgs e)
{
if (!(e.Cancelled))
{
System.Windows.Media.Imaging.BitmapImage bimImage = new
System.Windows.Media.Imaging.BitmapImage();
bimImage.SetSource(e.Result);
imgImage.Source = bimImage;
}
}
, , ,
.
.
, , Web-
!..
OpenReadCompleted. ,
...
, , Error OpenReadCompletedEventArgs. , Exception , . ( 12.)
, Error
null.
21.
371
OpenReadCompleted ,
.
, - Web-.
:
Web- , ;
, -
;
.
, - ,
, , picturelist.txt.
- ;
-.
Visual Web Developer 2008 ImageViewer.
C#-, ,
ImageViewer Picture.
.
, Picture INotifyPropertyChanged
( . 13),
,
.
public class Picture : System.ComponentModel.INotifyPropertyChanged
{
private System.Windows.Media.Imaging.BitmapImage fSource;
372
VI. Web-
21.
373
.
Picture
, - .
OpenReadAsync.
,
OpenReadCompleted. ,
, Source
Picture. PropertyChanges,
INotifyPropertyChanged , .
lstPictures.
, Image, Source Picture. ""
.
<ListBox x:Name="lstPictures" ItemsSource="{Binding}">
<ListBox.ItemTemplate>
<DataTemplate>
<Image Source="{Binding Path=Source}"></Image>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
-
. Loaded
. :
WebClient wclList = new WebClient();
wclList.OpenReadCompleted += wclList_OpenReadCompleted;
wclList.OpenReadAsync(new Uri("picturelist.txt", UriKind.Relative));
.
,
OpenReadCompleted. .
if ((!(e.Cancelled)) && (e.Error == null))
{
System.IO.StreamReader strPictures = new
System.IO.StreamReader(e.Result);
System.Collections.ObjectModel.ObservableCollection<Picture>
colPictures = new
System.Collections.ObjectModel.ObservableCollection<Picture>();
while (!(strPictures.EndOfStream))
{
Picture pct = new Picture(strPictures.ReadLine());
374
VI. Web-
colPictures.Add(pct);
}
lstPictures.DataContext = colPictures;
strPictures.Close();
}
picturelist.txt , 20,
Picture .
lstPictures .
. .
.
, , , ,
Web-. picturelist.txt, , ,
Web-. ,
, Web- Web Web-. , .
?
, Silverlight , . : ,
, .
. , Web-.
Silverlight Visual Web Developer 2008
.
22
Web-
, ,
. - , Web-.
, ,
. , , Web-,
( 1).
, ,
, .
; , , , . Web-, Microsoft
.
Web- .
Web-
Web- , , ,
Web-
, (, ).
Web- ,
, , , , .
376
VI. Web-
,
. , , . . ?
, , , .
, ,
, , .
.
, . , ,
,
.
. -, , . -,
, . "" , .
; , , .
, "" .
22. Web-
377
.
, , . .
, . , ,
. ,
,
. ,
, .
C#,
. , C#: , , , ,
. ; .
.
- . ,
.
. , .
.
,
. ,
. ,
;
.
GridDemo, , .
, 20,
.
, ,
Web- Silverlight-.
persons .
Silverlight- PersonsClient
persons,
378
VI. Web-
Web-
. , .
Visual Web Developer 2008 "" Microsoft SQL Server 2008. Visual
Web Developer 2008 SQL Server 2008
.
, persons.
Visual Web Developer 2008 Database Explorer
(. 22.1). , Database
Explorer View <Ctrl>+<Alt>+<S>,
.
22. Web-
379
, Data source
Microsoft SQL Server Database File (SqlClient). , Change. Data source Change Data Source (. 22.3) Microsoft
SQL Server Database File OK.
Database file name (new or existing) Add Connection . , ,
Browse
Windows. , persons.
380
VI. Web-
, .
persons . ,
. . , , . 22.1.
22.1. persons persons
SQL Server 2008
id
int
22. Web-
381
22.1 ()
SQL Server 2008
nvarchar
20
n1
nvarchar
20
n2
nvarchar
20
age
smallint
SQL Server 2008
id
int
person
int
name
nvarchar
25
person? ...
,
Person, , Platforms
. , .
, , SQL
Server 2008, . . (
platforms), ,
. , (
person; id persons). , ,
382
VI. Web-
,
, person
. .
.
Database Explorer "", ,
"" Tables, .
Add New Table. Visual Web Developer 2008 ,
(. 22.4).
. 22.4. ,
. , , .
, , .
.
.
Column Name .
Data Type SQL Server 2008.
nvarchar(< >), ,
nvarchar(20) 20 .
22. Web-
383
Allow Nulls. , , ,
( null). , ( ).
, persons.
(. . 22.1). Allow Nulls
, n2 ().
. ,
, .
id ""
Identity Specification. (Is Identity). ,
;
Yes.
id . , . Set Primary Key ( ) , Set Primary Key Table Designer . , ,
.
. Visual Web Developer 2008
Choose Name,
. persons Enter a name for the table
OK. , "" Tables
Database Explorer persons,
.
persons.
platforms.
. persons
: , ,
. platforms , .
person, id
.
384
VI. Web-
. persons, , , ,
platforms, , ,
. ( , 14, LINQ.)
SQL Server 2008 "". ,
persons platforms , .
platforms. "" Tables
Database Explorer Open Table Definition. Visual Web Developer 2008 .
Relationships ( )
Relationships Table
Designer. Foreign Key
Relationships (. 22.5).
Selected Relationship
; , , . , Add. -
22. Web-
385
, Selected Relationship
. , , , Tables And
Columns Specification , . Tables and
Columns (. 22.6).
386
VI. Web-
id
person . .
, Close, Foreign Key
Relationships. platforms.
Visual Web Developer 2008 , ,
, ; Yes, .
. , .
persons.
"" Tables Database Explorer
Show Table
Data. Visual Web Developer 2008 , (. 22.7).
. 22.7. ,
, .
- ,
. -.
- ;
null.
. .
22. Web-
387
<Enter> -.
, <Esc>.
persons . platforms,
person ,
id persons.
.
Web-
Web-, ""
. .
Web-
Web- ,
. 3,
"" ;
.
:
PersonsClient;
Web- PersonsSite, Web-
PersonsWS. Web- ,
Web-.
Web-, Web-.
New Project File <Ctrl>+<Shift>+<N>. Project types
New Project (. . 3.6) "" Visual C#
Web. Templates ASP.NET Web Application.
Name Web- PersonsSite.
, Create directory for
solution. Visual Web Developer 2008
, . PersonsSolution Solution Name.
OK. .
388
VI. Web-
C#. ,
C#-.
""
PersonsSite Solution Explorer
New Item Add. Add
New Item (. . 18.1). "" Visual C#
Categories Data, Templates ADO.NET
Entity Data Model. Name
Persons. Add.
Entity Data Model Wizard, "" (. 22.8). What should the model
contain? Generate from database, Visual Web Developer 2008
,
Next.
22. Web-
389
"" (. 22.9)
Which data connection should your application use to connect to the
database? persons. (
; SQL Server 2008
mdf.) Next.
"" (. 22.10) Which database objects do you want to include in your model?.
"" ;
"" , .
"" Tables , .
Finish.
Visual Web Developer 2008
(. 22.11).
, : (persons platforms),
, , , -
390
VI. Web-
Web-
Web-.
""
PersonsSite Solution Explorer New Item
22. Web-
391
. 22.11. ,
, PersonsWS Web-.
DataService, Web-.
, , .
; <
392
VI. Web-
>Entities.
personsEntities.
:
public class PersonsWS : DataService<personsEntities>
, PersonsWS InitializeService.
Web- , ,
, , ,
:
. ,
, InitializeService:
config.SetEntitySetAccessRule("persons", EntitySetRights.All);
config.SetEntitySetAccessRule("platforms", EntitySetRights.All);
config InitializeService
IDataServiceConfiguration.
SetEntitySetAccessRule .
, EntitySetRights.
All ( , ) .
. Web-
Build < > Build.
Solution Explorer, ,
Web- svc. Web- Microsoft .NET.
, C#- Web-
.
Web- . .
Silverlight-,
Web-
Visual Web Developer 2008 PersonsClient.
New Project
22. Web-
393
394
VI. Web-
.
. : btnAddPerson
, btnRemovePerson ,
btnAddPlatform btnRemovePlatform
.
Silverlight-
Web-
Web-.
Visual Web Developer 2008 ,
Web- . ,
,
.
Solution Explorer ""
PersonsClient, .
Add Service Reference. Add Service Reference (. 22.13).
22. Web-
395
Address - Web-,
Go. Web-
Web-, ,
Silverlight-, Discover. .
Visual Web Developer 2008 Web-
Services. , Web- . ""
, Web-, "".
Namespace ,
Visual Web Developer 2008 Web . Persons.
, OK. Visual
Web Developer 2008 .
Persons. persons platforms. persons id, f,
n1, n2, age platforms, platforms id, persons name.
, "" ,
Web-. , Web-
, .
Persons personsEntities.
Web-, , ( ) () . Silverlight personsEntities Web-.
personsEntities DataServiceContext. , Web. .
Web-
, Web-,
. Web- ,
. .
, .
,
396
VI. Web-
.
.
(
( platforms). .
ObservableCollection.
persons),
private System.Collections.ObjectModel.ObservableCollection
<Persons.persons> colPersons;
private System.Collections.ObjectModel.ObservableCollection
<Persons.platforms> colPlatforms;
, Web-
personsEntities.
private Persons.personsEntities svcPersons;
Web-.
, DataServiceContext,
Uri, Web-. , Web-
svc, PersonsWS.svc. , ,
Web-, :
svcPersons = new Persons.personsEntities(new Uri("PersonsWS.svc",
UriKind.Relative));
Web- .
Loaded . .
, Web-, BeginExecute, DataServiceContext, , . -
22. Web-
397
, Silverlight! , , ,
.
BeginExecute :
BeginExecute< >(< Web->,
<, >, < >)
, .
, Web.
Uri, Web-, .
, .
- , .
Object, . . . , null.
, Loaded .
:
svcPersons.BeginExecute<Persons.persons>(new Uri("persons",
UriKind.Relative), svcPersons_QueryComplete, null);
svcPersons_QueryComplete,
. . -,
. -, IAsyncResult, . ,
Web- .
IAsyncResult AsyncState.
,
BeginExecute, Object.
svcPersons_QueryComplete .
DataServiceContext EndExecute.
IAsyncResult,
. svcPersons_QueryComplete .
398
VI. Web-
EndExecute IEnumerable.
EndExecute,
IEnumerable , . ,
.
svcPersons_QueryComplete:
private void svcPersons_QueryComplete(IAsyncResult result)
{
IEnumerable<Persons.persons> colResult =
svcPersons.EndExecute<Persons.persons>(result);
colPersons.Clear();
foreach (Persons.persons prs in colResult)
{
colPersons.Add(prs);
}
}
,
.
Silverlight-,
Web-
.
- .
Solution Explorer "", Web- PersonsSite, Web-
Web-.
Set as a StartUp Project.
"" PersonsSite .
, , .
Start Debugging ( ) , Start Debugging Debug <F5>. , , Web- Web-
, Web. .
Web- Visual Web Developer 2008
Web-. Web-
22. Web-
399
, Web-,
.
Web- Visual Web Developer 2008
.
Silverlight-
Web-.
Web-
(. ).
. ,
Web- Web-.
Web- . !
,
, Web-.
Web- Web-
Web-, Web- .
LINQ- Web-
LINQ- . ( LINQ
14.)
, , .
DataServiceQuery.
;
DataServiceContext.
DataServiceQuery System.Data.Services.
Client. ,
, .
DataServiceQuery ,
. ,
.
400
VI. Web-
.
.
private System.Data.Services.Client.DataServiceQuery<Persons.persons>
qryPersons;
. 14,
from, , . ?
!
CreateQuery,
DataServiceContext
Web-. Web-, .
CreateQuery ,
,
.
CreateQuery DataServiceQuery.
LINQ- .
Web- ,
, .
DataServiceQuery, . . .
, BeginExecute
DataServiceQuery. :
BeginExecute(<, >,
< >)
, DataServiceContext,
: Web-.
,
DataServiceQuery.
, , Loaded ,
.
qryPersons =
(System.Data.Services.Client.DataServiceQuery<Persons.persons>)
from person in svcPersons.CreateQuery<Persons.persons>("persons")
orderby person.f
select person;
qryPersons.BeginExecute(svcPersons_QueryComplete, null);
22. Web-
401
svcPersons_QueryComplete, .
,
IEnumerable<Persons.persons> colResult =
svcPersons.EndExecute<Persons.persons>(result);
:
IEnumerable<Persons.persons> colResult = qryPersons.EndExecute(result);
, , EndExecute DataServiceQuery, .
DataServiceContext , .
. , , .
LINQ- Web- . :
qryPersons =
(System.Data.Services.Client.DataServiceQuery<Persons.persons>)
from person in svcPersons.CreateQuery<Persons.persons>("persons")
where person.age > 30
orderby person.f
select person;
30 .
,
... ?
persons, Visual Web Developer 2008
Web-, platforms. platforms, . . ,
. , ,
13.
- , . , Web ,
. .
grdPersons.
SelectionChanged
.
402
VI. Web-
BeginLoadProperty
DataServiceContext -. :
BeginLoadProperty(<,
>, < >, <, >,
< >)
, . . , , , .
, SelectionChanged
grdPersons :
svcPersons.BeginLoadProperty(grdPersons.SelectedItem as Persons.persons,
"platforms", svcPersons_LoadPropertyCompleted, null);
platforms ,
grdPersons. svcPersons_LoadPropertyCompleted.
,
,
: .
BeginLoadProperty,
BeginExecute.
, EndLoadProperty
DataServiceContext -. IAsyncResult,
( EndExecute).
QueryOperationResponse.
QueryOperationResponse "" Web-. IEnumerable; , , .
svcPersons_LoadPropertyCompleted.
private void svcPersons_LoadPropertyCompleted(IAsyncResult result)
{
System.Data.Services.Client.QueryOperationResponse colResult =
svcPersons.EndLoadProperty(result);
colPlatforms.Clear();
foreach (Persons.platforms pls in colResult)
22. Web-
403
{
colPlatforms.Add(pls);
}
}
, svcPersons_QueryComplete.
.
,
, .
...
, 19, . txtF,
txtN1, txtN2 txtAge, , ,
. AddPerson.
Click btnAddPerson .
:
AddPerson wndAdd = new AddPerson();
wndAdd.Closed += wndAddPerson_Closed;
wndAdd.Show();
Web, , . .
404
VI. Web-
. Web- .
BeginSaveChanges DataServiceContext .
:
BeginSaveChanges(<, >,
< >)
, , . EndSaveChanges, DataServiceContext
.
IAsyncResult, .
, ,
.
,
:
private void wndAddPerson_Closed(object sender, EventArgs e)
{
AddPerson wndAdd = sender as AddPerson;
if (wndAdd.DialogResult == true)
{
Persons.persons prs = new Persons.persons();
short iAge;
prs.f = wndAdd.txtF.Text;
prs.n1 = wndAdd.txtN1.Text;
prs.n2 = wndAdd.txtN2.Text;
if (short.TryParse(wndAdd.txtAge.Text, out iAge))
{
prs.age = iAge;
}
colPersons.Add(prs);
svcPersons.AddObject("persons", prs);
svcPersons.BeginSaveChanges (svcPersons_SaveChangesCompleted, null);
}
}
private void svcPersons_SaveChangesCompleted(IAsyncResult result)
{
svcPersons.EndSaveChanges(result);
}
. DataGrid ,
22. Web-
405
. .
DataGrid RowEditEnded, , , <Enter>.
.
Web-
UpdateObject DataServiceContext .
. .
UpdateObject
. BeginSaveChanges.
RowEditEnded grdPersons:
svcPersons.UpdateObject(grdPersons.SelectedItem);
svcPersons.BeginSaveChanges(svcPersons_SaveChangesCompleted, null);
.
. Web-,
.
Web-
DeleteObject DataServiceContext -. .
DeleteObject
BeginSaveChanges.
Click btnRemovePerson
, :
if (MessageBox.Show(" ?", "",
MessageBoxButton.OKCancel) == MessageBoxResult.OK)
{
Persons.persons prs = grdPersons.SelectedItem as Persons.persons;
colPersons.Remove(prs);
svcPersons.DeleteObject(prs);
svcPersons.BeginSaveChanges(svcPersons_SaveChangesCompleted, null);
}
406
VI. Web-
, , -.
( - 19.) , K, .
, , ,
. ,
...
.
.
, platforms,
, , .
?
persons platforms,
platforms. platforms
persons, , , . . persons. ,
platforms
persons . .
, , Web- .
Web-
.
, . AddObject Web.
svcPersons.AddObject("platforms", pls);
22. Web-
407
AddLink, DataServiceContext
.
:
AddLink(< >,
< ,
>,
< >)
,
.
, , .
.
svcPersons.AddLink(currentPerson, "platforms", pls);
, .
, , .
,
.
svcPersons.SetLink(pls, "persons", currentPerson);
currentPerson
pls.
persons.
,
Web-.
408
VI. Web-
, . , :
1. platforms.
2. , .
3. , , .
4. .
5. Web-.
6. Web-.
.
txtName,
. AddPlatform.
Click btnAddPlatform . :
AddPlatform wndAdd = new AddPlatform();
wndAdd.Closed += wndAddPlatform_Closed;
wndAdd.Show();
.
Closed AddPlatform:
private void wndAddPlatform_Closed(object sender, EventArgs e)
{
AddPlatform wndAdd = sender as AddPlatform;
if (wndAdd.DialogResult == true)
{
Persons.platforms pls = new Persons.platforms();
pls.name = wndAdd.txtName.Text;
colPlatforms.Add(pls);
Persons.persons currentPerson = grdPersons.SelectedItem as
Persons.persons;
currentPerson.platforms.Add(pls);
pls.persons = currentPerson;
svcPersons.AddObject("platforms", pls);
svcPersons.AddLink(currentPerson, "platforms", pls);
svcPersons.SetLink(pls, "persons", currentPerson);
svcPersons.BeginSaveChanges(svcPersons_SaveChangesCompleted, null);
}
}
22. Web-
409
, . , ,
.
.
?
Silverlight-, Web-. .NET Visual Web
Developer 2008.
, . "", Silverlight. .
410
VI. Web-
VII
23.
24.
Silverlight-
23
... !
, Web-, , Web- , ,
. ,
, .
...
, , .
. ,
.
Silverlight, . , ,
.
, 13.
. .
C#-.
, , DataContext,
. .
. MultiPage, 18, -
414
VII.
. , , , ,
.
, . 18. ,
...
Windows- ,
, , . Silverlight- .
ToolTipService.ToolTip, . .
<Button x:Name="btnAddPerson" Content="" . . .
ToolTipService.ToolTip=" " . . .></Button>
22.
btnAddPerson
PersonsClient,
, ToolTipService.ToolTip
ToolTip. , .
, Content.
Object , . , , ,
, .
<Button x:Name="btnAddPerson" Content="" . . .>
<ToolTipService.ToolTip>
<ToolTip>
<ToolTip.Content>
<StackPanel>
<Image Source="add.jpg"></Image>
<TextBlock Text=" "></TextBlock>
</StackPanel>
23.
415
</ToolTip.Content>
</ToolTip>
</ToolTipService.ToolTip>
</Button>
, , "".
HorizontalOffset VerticalOffset
, , .
0.
IsOpen true,
, false .
, , .
IsOpen C#-!
18 ,
.
ToolTip , . Opened
, Closed .
1 , Silverlight-,
Web-, Web-. Web-, , , "" .
416
VII.
Silverlight , .
Silverlight- .
...
, Silverlight-
.
,
Web-,
Web-.
( Silverlight- Web-),
<Esc> <Alt>+<F4>. ,
.
, ,
, .
, , Click .
, , , .
OpenFileDialog
,
.
( 20.)
SaveFileDialog.
, ? ...
1. , Silverlight-
. Visual Web
Developer 2008
Application. Application ,
, .
2. , Application
Current.
, Application.
3. Application Host. SilverlightHost,
Silverlight,
.
23.
417
Current Application,
Silverlight ( Host),
Web- ( Content),
(
IsFullScreen).
PersonsClient,
22, , btnFullScreen.
. Click .
:
if (Application.Current.Host.Content.IsFullScreen)
{
Application.Current.Host.Content.IsFullScreen = false;
btnFullScreen.Content = " ";
}
else
{
Application.Current.Host.Content.IsFullScreen = true;
btnFullScreen.Content = " ";
}
, ,
,
btnFullScreen.
Content FullScreenChanged, .
418
VII.
, . ,
. ,
.
Silverlight . ( 20.) ,
.
,
.
"" IsolatedStorageSettings.
,
, ,
, .
IsolatedStorageSettings System.IO.
IsolatedStorage. ,
, .
, IsolatedStorageSettings,
( ). Silverlight
, , .
, .
ApplicationSettings IsolatedStorageSettings.
, , .
.
.
private System.IO.IsolatedStorage.IsolatedStorageSettings iseOptions =
System.IO.IsolatedStorage.IsolatedStorageSettings.ApplicationSettings;
, . . IsolatedStorageSettings,
. ( 11.) , -
23.
419
.
.
IsolatedStorageSettings ""
.
,
Add.
Add(<>, <>)
,
, .
iseOptions.Add("width", 800);
800 width.
,
:
LayoutRoot.Width = iseOptions["width"];
:
iseOptions["width"] = 1024;
Contains , , .
true, , false .
if (!(iseOptions.Contains("width")))
{
iseOptions.Add("width", LayoutRoot.Width);
}
, width, ,
, .
if (iseOptions.Contains("width"))
{
LayoutRoot.Width = iseOptions["width"];
}
, width, ,
, .
, , .
, , .
420
VII.
Remove.
true, ,
false .
iseOptions.Remove("width");
Count
.
Clear .
.
,
. .
Save IsolatedStorageSettings, .
?
, ,
, ...
Silverlight-.
, ...
24
Silverlight-
Silverlight-. Silverlight, XAML C#
Visual Web Developer 2008.
. .
,
.
Silverlight. ,
, ,
Web-.
Web-
, Windows-.
-, Silverlight !
Silverlight-.
Silverlight-
, .
,
- .
"" , .
, "". ,
: , . -
422
VII.
() , ,
, ()
. ,
.
, "", .
. , 2.0 ,
1.0.
, - . - ;
. ,
" ".
, . ,
.
-
. , .
.
, .
, .
.
, . ? .
Visual Web Developer 2008
, . .
Visual Web Developer
: . , . , , .
24. Silverlight-
423
, . .
Configuration Manager Build. Configuration Manager (. 24.1).
,
. .
? ? 4 , .
.
424
VII.
, , Bin.
: Debug Release. .
,
Release.
, , ( ) ZIP,
( Web-, ). xap , .
Web-.
TestPage.html.
, "" , .
Windows. .
, .
, .
, Visual Web
Developer 2008 , . , GridDemo
GridDemo.
, GridDemo
GridDemo.dll. : , ,
, .
, , . , GridDemo (
, )
System.ComponentModel.DataAnnotations.dll, System.Windows.Controls.Data.dll,
System.Windows.Controls.Data.Input.dll,
System.Windows.Controls.dll
System.Windows.Data.dll. ,
.
! , , .
.
,
. Visual Web Developer 2008
ZIP,
. .
24. Silverlight-
425
? , - .
, ,
.
, , ,
.
: de, es,
fr . ,
. ,
de, es,
fr . .
? , . (
.) - :
, Silverlight 3
Microsoft, , ...
! 8 ,
.
8.
,
, . ""
"" , .
, , Silverlight-:
;
Web-, (
Web-, Visual Web Developer 2008,
Web-, );
ZIP- , ;
"" ,
,
;
.
426
VII.
Web- . !
Silverlight-.
? ?
! Solution Explorer "" Properties
. < >
Properties Project. , "" ;
.
Silverlight (. 24.2). ,
; , , .
. 24.2. Silverlight ,
Application ,
, ,
24. Silverlight-
427
, (
). ( )
.
, .
Assembly Information. , Assembly Information (. 24.3).
, , .
Title ( ).
Description .
Company .
Product ( -
).
Copyright .
Trademark , .
428
VII.
( ):
,
;
, -
;
,
;
, .
GUID ,
Visual Web Developer 2008
. .
Neutral Language , . , (None) ( ), Russian Russian (Russia) ( ).
. Silverlight.
, OK, . ,
Cancel.
Silverlight ,
. ? , Silverlight build options!
Xap file name . , ...
Reduce XAP size by using application library caching
! , Visual Web Developer 2008 ZIP-, .
, .
, .
, , .
24. Silverlight-
429
Silverlight-
Web-
Silverlight- Web, Visual Web Developer 2008. Web-
HTML-,
Silverlight.
Silverlight- Web, HTML- .
.
:
<object width="< >" height="< >"
data="data:application/x-silverlight-2,"
type="application/x-silverlight-2" >
<param name="source" value="<- >"/>
<a href="http://go.microsoft.com/fwlink/?LinkID=149156"
style="text-decoration: none;">
<img src="http://go.microsoft.com/fwlink/?LinkId=108181"
alt="Get Microsoft Silverlight"
style="border-style: none"/>
</a>
</object>
HTML- <OBJECT>, , ,
Silverlight- Web-. width height .
<OBJECT> <PARAM>. value - , . , name source.
, Silverlight-,
, Web-, .
430
VII.
Microsoft, Silverlight .
Silverlight-
! Silverlight-, Web-.
Silverlight- ,
Windows-.
Silverlight- ,
Windows-.
(Start) .
Silverlight- Web-, .
Silverlight-, , .
Silverlight- Silverlight , , , ,
Web-, ,
. , . Silverlight-.
Silverlight- ,
. .
Silverlight-
, . ( , .)
Silverlight, .
Enable running application out of the browser, Silverlight build options. , .
.
Out-of-Browser Settings,
Enable running application out of the browser.
Out-of-Browser Settings (. 24.4).
Windows Title ,
Silverlight-.
.
24. Silverlight-
431
Width Height , , . ,
800600 .
Shortcut name , . < > Application.
Download description ,
. ,
Silverlight-.
16 x 16 Icon, 32 x 32 Icon, 48 x 48 Icon 128 x 128 Icon 1616, 3232, 4848
128128 . . , , -
432
VII.
Windows.
Use GPU Acceleration Silverlight
. ,
.
, OK, . Cancel
.
! .
Silverlight-
Silverlight- Web, . Install < >
onto this computer. (
Shortcut name Out-of-Browser Settings (. . 24.4).)
Install application (. 24.5),
.
24. Silverlight-
433
,
(Start) . ,
Windows-,
( ) <Alt>+<F4>.
Silverlight-, Web- Web-, , - Web- Remove this application. Silverlight
-, , ;
.
Silverlight-.
Silverlight!
434
VII.
- Microsoft Silverlight 3. , XAML C#,
Microsoft Visual Web Developer 2008 Express Edition,
Web-.
,
. .
. , - , - , - .
,
Silverlight 3 - . ...
, .
Silverlight:
MSIL-, , , , .
: , (
, ;
Silverlight),
.
.
"" Web-, Silverlight
.
: , , .
,
.
.
.
-
436
, . -
- , .
.
Silverlight- Silverlight.
Silverlight- Web- Web, , Web Silverlight-.
, " "...
, ... , , ,
. , , , , . .
? ,
( ). , . ,
, , .
.
. 1 - Silverlight.
1. -
-
http://www.silverlight.net/
Microsoft, Silverlight.
, ,
http://msdn.microsoft.com
/ru-ru/default.aspx
http://www.microsoft.com/
visualstudio/en-us/default.mspx
"" Microsoft,
Visual Studio
http://www.microsoft.com
/silverlight/default.aspx
"" Microsoft,
Silverlight. ,
, ...
, , Silverlight.
. 1 "", "".
, !
Silverlight-!
A
Abs() 180
Abstract 182, 184
AcceptsReturn 100
Acos() 180
ActualHeight 97
ActualWidth 97
Add() 194, 202, 207, 419
AddDays() 194
AddHours() 194
AddLink() 407
AddMilliseconds() 194
AddMinutes() 194
AddMonths() 194
AddObject() 403
AddSeconds() 194
AddYears() 194
AlignmentX 292
AlignmentY 292
Angle 301
AngleX 302
AngleY 302
Application 416
ApplicationSettings 418
ArcSegment 281
ArgumentException 215
ArgumentNullException 216
ArgumentOutOfRangeException 216
ArithmeticException 216
ArrayTypeMismatchException 215
Asin() 180
AsyncState 397
Atan() 180
AutoGenerateColumns 243
AutoPlay 125
AutoReverse 311
AvailableFreeSpace 355
Average() 261
B
Background 284
Balance 125
Base 185
Begin() 319
BeginExecute() 396, 400
BeginLoadProperty() 402
BeginSaveChanges() 404
BeginTime 312
BezierSegment 282
Binding 228, 244
BindingMode 229
BitmapImage 122
BlurEffect 298
BlurRadius 298
Border 284
BorderBrush 284
BorderThickness 284
Brush 272
Button 103
By 258, 309
C
Calendar 110
CalendarClosed 111
438
CalendarOpened 111
CancelAsync() 370
Cancelled 370
CanGoBack 327
CanGoForward 327
CanUserReorder 243
CanUserReorderColumns 242
CanUserResize 243
CanUserResizeColumns 242
CanUserSort 243
CanUserSortColumns 243
Canvas 89
Canvas.Left 90
Canvas.Top 90
Canvas.ZIndex 91
Case 157
Catch 217
Ceiling() 180
CellEditingTemplate 244
CellTemplate 244
Center 277, 289
CenterOfRotationX 304
CenterOfRotationY 304
CenterOfRotationZ 304
CenterX 301, 302
CenterY 301, 302
Chars 178
CheckBox 105
Checked 106
Child 284
Children 212, 278, 303, 308
ChildWindow 335
Class 181
Clear() 203, 208, 420
Click 104
ClickMode 104
Clip 295
Close() 337, 352
Closed 338, 415
Color 286, 288
ColorAnimation 309
ColorAnimationUsingKeyFrames 313
ColorKeyFrame 313
ColorKeyFrameCollection 313
ColumnDefinition 87
ColumnDefinitionCollection 87
ColumnDefinitions 87
Columns 243
ComboBox 109
ComboBoxItem 109
Completed 320
Const 189
Contains() 204, 419
ContainsKey() 209
ContainsValue() 209
Content 103, 105, 106, 108, 113, 115,
414, 417
ContentControl 103
Convert() 234
ConvertBack() 234
Converter 235
CornerRadius 284
Cos() 180
Count 202, 207, 420
Count() 261
CreateDirectory() 347
CreateQuery() 400
CultureInfo 234
Current 416
CurrentState 125
CurrentStateChanged 126
D
Data 276
DataContext 240
DataGrid 241
DataGridCheckBoxColumn 243
DataGridColumn 243
DataGridGridLinesVisibility 242
DataGridHeadersVisibility 242
DataGridTemplateColumn 243
DataGridTextColumn 243
DataService 391
DataServiceContext 395, 396
DataServiceQuery 399
DataTemplate 239
Date 193
DatePicker 111
DateTime 193
DateValidation 111
Day 193
DayOfWeek 193
DayOfYear 193
Days 195
Default 157
DefaultExt 360
DefaultIfEmpty() 266
DeleteDirectory() 354
DeleteFile() 354
DeleteObject() 405
Dequeue() 210
Descending 256
DialogResult 337
Dictionary 207
Direction 298
DirectoryExists() 353
DiscreteColorKeyFrame 314
DiscreteDoubleKeyFrame 314
DiscreteObjectKeyFrame 316
DiscretePointKeyFrame 314
DisplayIndex 243
DisplayMemberPath 238
Dispose() 356
DivideByZeroException 216
do 160
Dock 115
DoubleAnimation 309
DoubleAnimationUsingKeyFrames 313
DoubleKeyFrame 313
DoubleKeyFrameCollection 313
DownloadProcessChangedEventArgs 369
DownloadProgressCompleted 369
DropDownClosed 109
DropDownOpened 109
DropShadowEffect 298
Duration 309
E
EasingFunction 312
Effect 298
ElementName 233
Ellipse 273
EllipseGeometry 277
Else 156
EndExecute() 397, 401
EndLoadProperty() 402
EndOfStream 351
EndPoint 276, 287
EndSaveChanges() 404
Enqueue() 210
EntitySetRights 392
Enum 199
439
Epsilon 192
Equals 258
Error 370
Exception 215
Exists 362
Exp() 180
F
Figures 279
File 362
FileAccess 348
FileExists() 353
FileInfo 362
FileMode 348
FileStream 362
Fill 272
FillBehavior 311
FillRule 275
Filter 359
FilterIndex 359
Finally 218
Flash 18
Floor() 180
Focus() 101
FontFamily 95
FontSize 95
FontStretch 95
FontStretches 95
FontStyle 96
FontStyles 96
FontWeight 96
FontWeights 96
For 159
Foreach 165
Foreground 285
Frame 323
FrameworkElement 107
From 253, 309
FullScreenChanged 417
G
Geometry 276
GeometryCollection 278
GeometryGroup 277
GetDirectoryNames() 354
GetFileNames() 353
440
GetUserStoreForApplication() 346
GlobalOffsetX 304
GlobalOffsetY 304
GlobalOffsetZ 304
GoBack() 327
GoForward() 327
GradientOrigin 289
GradientSpreadMethod 289
GradientStop 288
GradientStopCollection 288
GradientStops 288
Grid 82
Grid.Column 87
Grid.ColumnSpan 88
Grid.Row 87
Grid.RowSpan 88
GridLinesVisibility 242
Group 258
GroupName 107
H
HasCloseButton 336
Header 115, 243
HeadersVisibility 242
Height 83, 86
HorizontalAlignment 84
HorizontalOffset 415
HorizontalScrollBarVisibility 100, 114,
242
Host 416
Hour 193
Hours 195
HTML 9, 12
HyperlinkButton 330
I
IAsyncResult 397
IDataServiceConfiguration 392
IEasingFunction 312
IEnumerable 251
If 156
IGrouping 259
Image 121
ImageBrush 292
ImageFailed 122
ImageOpened 122
J
Java 19
Join 258
K
Key 209, 259
KeyFrames 313
KeySpline 315
KeyTime 314
KeyValuePair 209
L
LargeChange 112
LastIndexOf() 179, 204
Length 178, 362
Let 264
Line 271
LinearColorKeyFrame 314
LinearDoubleKeyFrame 314
LinearGradientBrush 286
LinearPointKeyFrame 314
LineBreak 98
LineGeometry 276
LineHeight 96
LineSegment 280
LINQ 250
List 201
ListBox 107, 108
ListBoxItem 107
Loaded 91
Loading 328
LocalOffsetX 304
LocalOffsetY 304
LocalOffsetZ 304
Log() 180
Log10() 180
LongCount() 261
M
Margin 83
Math 179
Max() 180, 261
MaxDropDownHeight 109
MaxHeight 83
Maximum 112, 113
MaxLength 99
MaxValue 191, 192
MaxWidth 83
MediaElement 124
441
MediaElementState 125
MediaEnded 126
MediaFailed 126
MediaOpened 126
Message 216
MessageBox 341
MessageBoxButton 341
MessageBoxResult 341
Millisecond 193
Milliseconds 195
Min() 180, 261
MinHeight 83
Minimum 112, 113
Minute 193
Minutes 195
MinValue 191, 192
MinWidth 83
Mode 229
Month 193
MSIL 34
N
Name 97, 362
NaN 192
Navigate() 327
Navigated 328
NavigateUri 330
Navigating 328
NavigationContext 329
NavigationFailed 328
NavigationService 327
NavigationStopped 328
NegativeInfinity 192
NotEmplementedException 235
NotFiniteNumberException 216
Now 193
Null 177
NullReferenceException 215
O
Object 91, 178
ObjectAnimationUsingKeyFrames 316
ObjectKeyFrame 316
ObjectKeyFrameCollection 316
ObservableCollection 236
Offset 288
442
On 258
Opacity 272, 286
OpacityMask 297
Opened 415
OpenFile() 347, 360
OpenFileDialog 361
OpenRead() 362
OpenReadAsync() 366
OpenReadCompleted 367
OpenReadCompletedEventArgs 367
OpenText() 362
Orderby 255
Orientation 89, 112
Out 175, 184
OutOfMemoryException 215
OverflowException 216
Override 184
P
Padding 95
Page 325
Partial 182
Password 103
PasswordBox 103
PasswordChanged 103
PasswordChar 103
Path 228, 276
PathFigure 279
PathFigureCollection 279
PathGeometry 279
PathSegment 279
PathSegmentCollection 279
Pause() 126, 319
Peek() 210, 211
PI 179
PlaneProjection 304
Play() 126
Point 274, 276, 280
Point1 282
Point2 282
Point3 282
PointAnimation 309
PointAnimationUsingKeyFrames 313
PointCollection 274
PointKeyFrame 313
PointKeyFrameCollection 313
Points 274, 280
PolyBezierSegment 282
Polygon 274
Polyline 276
PolyLineSegment 280
PolyQuadraticBezierSegment 283
Pop() 211
Position 126
PositiveInfinity 192
Pow() 180
Private 181, 183
ProgressBar 112
ProgressPercentage 369
Projection 304
Protected 183
Protected internal 183
Public 181, 183
Push() 211
Q
QuadraticBezierSegment 283
QueryOperationResponse 402
QueryString 329
Queue 210
Quota 355
R
RadialGradientBrush 289
RadioButton 106
Radius 298
RadiusX 272, 277, 289
RadiusY 273, 277, 289
ReadLine() 351
Readonly 183
ReadToEnd() 351
Rect 277
Rectangle 272
RectangleGeometry 277
RelativeTransform 299
Remove() 203, 208, 356, 420
RemoveAt() 203
RenderTransform 299
RepeatBehavior 312
ResourceDictionary 227
Resources 227
Result 367
Resume() 319
RotateTransform 301
RotationAngle 281
RotationX 304
RotationY 304
RotationZ 304
Round() 180
RoutedEventArgs 91
RowDefinition 86
RowDefinitionCollection 86
RowDefinitions 86
RowEditEnded 405
Run 97
S
SafeFileName 360
Save() 420
SaveFileDialog 359
ScaleTransform 301
ScaleX 301
ScaleY 301
ScrollBarVisibility 101
ScrollViewer 113
Sealed 181, 185
Second 194
Seconds 195
Seek() 319
SeekAlignedToLastTick() 319
Segments 279
Select 253
Select() 102
SelectAll() 101
SelectedDate 110
SelectedDatesChanged 110
SelectedIndex 108, 115
SelectedItem 240
SelectedText 99
SelectionChanged 102, 109, 116
SelectionLength 100
SelectionStart 100
SetEntitySetAccessRule 392
SetLink() 407
SetSource() 367
ShadowDepth 298
Show() 336, 341
ShowDialog() 360
ShowGridLines 85
Sign() 180
443
SilverlightHost 416
Sin() 180
Size 281
SkewTransform 302
SkipToFill() 319
Slider 111
SmallChange 111
SolidColorBrush 286
Source 121, 122, 124, 126, 228, 323
SourceName 293
SpeedRatio 318
SplineColorKeyFrame 314
SplineDoubleKeyFrame 314
SplinePointKeyFrame 314
SpreadMethod 289
SQL 250
Sqrt() 180
Stack 210
StackOverflowException 215
StackPanel 89
StartPoint 276, 279, 287
Static 182, 183
Stop() 126, 319
StopLoading() 328
Storyboard 308
Storyboard.TargetName 310
Storyboard.TargetProperty 310
Stream 348
StreamReader 350
StreamWriter 349
Stretch 121, 292
String 178
Stroke 271
StrokeThickness 271
Struct 196, 197
Substring() 179
Sum() 261
SweepDirection 281
Switch 157
SystemException 215
T
TabControl 114
TabIndex 101
TabItem 115
TabStripPlacement 115
Tan() 180
444
TargetName 331
Text 93, 99, 111
TextAlignment 94
TextBlock 93
TextBox 99
TextChanged 102
TextDecorationCollection 94
TextDecorations 94
TextWrapping 94
Thickness 284
This 174
Throw 219
Timeline 308
TimelineCollection 308
TimeOfDay 194
TimeSpan 195
Title 325, 335
To 309
Today 194
ToLower() 179
ToolTip 414
ToolTipService.ToolTip 414
ToString() 191
TotalDays 195
TotalHours 195
TotalMilliseconds 195
TotalMinutes 195
TotalSeconds 195
ToUpper() 179
Transform 299
TransformCollection 303
TransformGroup 303
TranslateTransform 300
Try 217
TryGetValue() 208
TryParse() 191
Type 234
U
UIElement 212
UIElementCollection 212
Unchecked 106
Unicode 141
UpdateObject() 405
Uri 123
UriKind 123
UserControl 47, 91
UserState 368
V
ValidatesOnExceptions 232
Value 111, 112, 209, 259, 314
ValueChanged 112
Var 254
VerticalAlignment 84
VerticalOffset 415
VerticalScrollBarVisibility 100, 114, 242
VideoBrush 293
Virtual 184
Visibility 85
Void 184
Volume 125
W
WebClient 365
Web- 9
Web-
16
13
Web- 10
Web- 11
Web- 375
395
Web- 9
12
Web- 12
Web- 14
Where 255
While 160, 161
Width 83, 87
World Wide Web 9
WriteLine() 350
X
X 300
X:Class 47
X:Key 227
X:Name 57
X1 271
X2 271
XAML 33, 44
XML 33
Xmlns 79
445
Y2 271
Year 194
Z
Z- 90
Y 300
Y1 271
49
261
307
306
306
45, 46, 58
376
376
377
162
16, 73, 74
155
421
422
422
422
293
12
60, 137
155
157
155
64, 155
9
286, 289
258
307
303
277
258
149
435
Add Connection 379
Add Existing Item 129
Add New Item 324
Add Reference 74
Add Service Reference 394
Assembly Information 427
Change Data Source 379
Choose Name 383
Configuration Manager 423
Entity Data Model Wizard 388
Foreign Key Relationships 384
Install application 432
New Project 40
New Silverlight Application 41, 393
Open File 67
Open Project 66
446
(.)
Out-of-Browser Settings 430
Tables And Columns 385
52
352
377
250
263
52
346
31, 57, 76, 146
77, 78
77
163
253
149
- 10
22, 196
214
18
325
10
47
307
354
30, 168
182
181
32
201
32
181
32
182
181
207
258
57, 139
141
53, 200, 258
166
18
25
26
234
138
189
189
189
171
189
190
57, 169, 186, 187
26
"" 83
26
26
422
282
283
395
23
296
163, 173
164
163
163
162
30, 169
get 169
set 169
184
184
184
31
184
184
397
185
184
184
62
171
184
32
184
388
181
322
32
29, 168
53, 86
42
332
332
42
66
43
340
138
61, 138
149
162
150
185
219
166
61, 150
152
61, 150
161
176
145
158, 161
61
150
150
176
447
172
151
149
153
346
210
65
36, 113
Database Explorer 378
Error List 65
Output 65
Properties 130
Solution Explorer 43, 74
Toolbox 48
37
38
37
, 11
31, 169, 328
60, 137
263, 264
251
60, 147
252
172
84, 85, 199
84, 199
16
262
322
325
322
169, 377
183
183
183
377
383
183
171
377
183
274
448
416
333, 348
299
80
224, 413
22
13
153
306
39
66
66
40
398
75
75
78
79
79
276
228
31, 169
129
130
130
227
227
227, 308
40, 41, 387
10
73
73
30, 169
188
188
188
203
188
94, 171
32
188
141
141
207
28, 30, 170
29, 58, 92, 171
171
32
16
210
23
24
38
147
140
95, 190
159
HTML 10
XAML 45
47
45
45
45
307
60, 139
253
171
144
143
254
173
62
64, 144
145
143
173
140
142
142
301
288
282
173
155
72
72
66
73
39, 43, 72
73
44, 66
73
40, 66, 71
72
66
255
31
322
- 366
418
449
286
286
289
291
285
285
158
161
161
165, 204, 209
160
161
158
159
239
247
239
14
295
12
17
18
33