Upload
hoang-trong-diep
View
223
Download
0
Embed Size (px)
Citation preview
8/6/2019 Do an Tim Hieu Silver Light 4
1/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 1
N TM HIU SILVERLIGHT 4
CHNG 1: TNG QUAN V SILVERLIGHT
1. V sao li c Silverlight?a. S kh khn ca cc doanh nghip khi xy dng chin lc Web
Ngy nay khi pht trin cc ng dng trn web cc doanh nghip phn mm thng au
u vi nhng kh khn v s h tr trn trnh duyt v h iu hnh. iu h mun l
vi nhng ngn ng v cng c pht trin vn quen thuc t trc n gi u c th
lm cho h nhng ng dng chy tt trn mi nn tng, mi trnh duyt. Silverlight ra i
nh mt cng ngh ph hp cho php h lm c nhng vic nh th. Nu bn quenthuc vi cng ngh .Net Framework th khi tip cn vi Silverlight bn s tch kin c
rt nhiu thi gian v chi ph cho cng ngh web mi
b. Nhu cu cn thit ca th gii a phng tinCc cng ngh plug-in trn web trc y khng cho php bn truyn ti nhng d liu
hnh nh cht lng cao nh 720p HDTV, Trong khi cht lng ng truyn mng ngy
nay ang ngy cng tt hn v nhu cu c xem nhng video cht lng cao cng tng
ln th s ra i ca Silverlight em n cho ngi am m th gii a phng tin
mt s tha mn tht s.
Mt s cng ngh khc s dng plug-in m rng gii hn ca trnh duyt, nh Java,
ActiveX, Shockwave, v Adobe Flash nhng cha thc hon ton thng tr nn tng
pht trin web.
Hin ti, flash chim u th hn so vi silverlight vi tnh ph bin v s trng thnh
ca mnh, nhng silverlight c nhng iu m flash khng c nh:
y Phin bn rt gn CRL ca .NET, v cho php nh pht trin vit m
client-side s dng C#.
8/6/2019 Do an Tim Hieu Silver Light 4
2/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 2
y Silverlight nhm ti vic kt hp h tr a nn tng vi b th vin phong
ph .NET Framework.
2. Silverlight l g?Silverlight l mt dng plug-in da trn cng ngh ca Microsoft .Net, n c lp vi a
nn tng v a trnh duyt, n cho php pht trin cc ng dng a phng tin c bit
l cc ng dng trn web. Silverlight cung cp mt m hnh lp trnh lp trnh mm do
v ng nht, n h tr Ajax, Python, Ruby v cc ngn ng lp trnh .Net nh Visual
basic,C#.
Kh nng a phng tin ca silverlight th hin mc truyn ti m thanh v hnh
nh cht lng cao mt cch nhanh chng v hiu qu trn tt c cc trnh duyt chnhnh Internet Explorer, Firefox, Safari.
Silverlight l mt khung ng dng (application framework) vit v chy cc ng dng
Internet phong ph vi s nhn mnh v a phng tin, hnh ng, v ha, vi cc
tnh nng v mc ch tng t nh ca Adobe Flash. Mi trng thi gian chy (h
thng thc thi) cho Silverlight c sn nh l mt plug-in cho hu ht cc trnh duyt web.
Trong khi nhng phin bn u ca Silverlight tp trung vo dng phng tin truyn
thng (streaming media), cc phin bn hin ti h tr a phng tin, ha v hot
hnh (animation), v cung cp cho cc nh pht trin h tr cho ngn ng CLI v cng c
pht trin.
Phin bn hin ti 4 c pht hnh vo thng 4 nm 2010.N tng thch vi nhiu trnh
duyt web c s dng trn h iu hnh Microsoft Windows v Mac OS X.Cc thit b
di ng, bt u vi in thoi Windows Phone 7 v Symbian (seri 60), c kh nng
c h tr trong nm 2010. Mt phn mm min ph thm vo c tn l Moonlight, pht
trin bi Novell trong s hp tc vi Microsoft, c sn mang li Silverlight chc nng
tng thch vi Linux, FreeBSD v nn tng m ngun m khc.
8/6/2019 Do an Tim Hieu Silver Light 4
3/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 3
y Cung cp mt h thng ch ha tng t nh Windows Presentation
Foundation.
y Tch hp a phng tin, ha, hnh ng v tng tc trong mt mi trng
runtime duy nht.y Giao din ngi dng c khai bo trong Extensible Application Markup
Language (XAML) v c lp trnh bng .NET Framework.
Vi vic s dng Expression Studio v Visual Studio, cc nh thit k v pht trin c
th hp tc mt cch hiu qu hn bng cch s dng chnh k nng ca h c hin nay
lm pht trin cc sn phm web tng lai Light up the web.
3. Lch s pht triny Silverlight 1 (20/11/2007) l mt cng ngh kh khim tn:
y H tr ha 2D v media. Nhng khng c CLRcng nh h tr .NET,
nn buc phi vit bng javascript.
y Silverlight 2 (14/10/2008) c nhng thay i ng k:
8/6/2019 Do an Tim Hieu Silver Light 4
4/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 4
y Tch hp thm CLRv cc lp .NET Framework, v m hnh ha da
trn WPF, DLR, Deep Zoom
y Silverlight 3 (09/07/2009) gi m hnh pht trin nh silverlight 2:
y
Tch hp mt s nhm chc nng c la chn cn thn v ci tin hiuxut. im ni bt : animation, navigation, 3D, bitmap catching, better data
validation,behavior
y Silverlight 4 (15/04/2010) hon thin mt s tnh nng c v tch hp mt s tnh
nng mi nh Webcam,h tr in n, ko th
4. Silverlight v FlashFeatures/Benefits Flash Silverlight
2D animaton/graphic with audio and video Yes Yes
Industry standard video codec No Yes
Hardware-assisted editing and encoding solution No yes
XML-based prensentation layer for SEO No Yes
Choice of standards-based and hight performace Yes Yes
Client-site playing for ad-insertion Yes Yes
High-performance multi-code enabled client Yes yes
Scalable full screen video up to HD No yes
3 D support No No
Tool complex operation No Yes
8/6/2019 Do an Tim Hieu Silver Light 4
5/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 5
Client-size 1,2
MB
1,2 MB
5. Cc c tnh ca SilverlightSilverlight kt hp nhiu cng ngh vo mt nn tng pht trin, n cho php bn c
la chn nhiu cng c v ngn ng lp trnh thch hp gii quyt bi ton ca bn.
Silverlight cung cp cc tnh nng sau:
a. S kt hp ca WPF v XAML.Silverlight l mt gi nh ca cng ngh Windows Presentation Foundation (WPF). N
c m rng nhiu hn cc Element trong trnh duyt to giao din ngi dng.
PWF cho php bn to ra ha 3 chiu, hnh nh ng, a phng tin v nhiu tnhnng phong ph khc trn my khch. XAML (Extensible Application Markup
Language) cung cp cc c php nh du c trng cho vic to cc Element.
b. M rng cho ngn ng kch bnSilverlight cung cp vic m rng cho cc ngn ng kch bn (Javascript) mt s cc
trnh duyt ph bin th hin vic trnh by giao din v thao tc ngi dng mt cch
phong ph hn.
c. S tch hp vi cc ng dng cSilverlight tch hp lin mch vi ngn ng javascript v m Ajax ca ASP.Net b
sung cc chc nng bn xy dng c. Bn c th to nhng ti nguyn trn nn my
ch c trong ASP.NET v s dng cc kh nng ca Ajax trong ASP.NET tng tc
vi ti nguyn trn nn my ch m khng lm gin on ngi dng.
d. S dng m hnh ngn ng lp trnh trn nn tng .Net Framework v cccng c kt hpBn c th to cc ng dng trn nn tng Silverlight v s dng cc ngn ng ng nh
InronPython cng nh l cc ngn ng C# v Visual Basic. Bn cng c th s dng cc
cng c pht trin nh Visual Studio to ng dng trn nn tng Silverlight
8/6/2019 Do an Tim Hieu Silver Light 4
6/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 6
e. Htr mngSilverlight bao gm cc h tr cho HTTP qua TCP. Bn c th kt ni ti cc dch v ca
WCF, SOAP, hoc ASP.NET AJAX v nhn v cc nh dng theo cu trc XML, JSON
hay d liu RSS.
f. Htr ngn ng tch hp truy vn (LINQ)iu ny cho php bn truy cp d liu bng cch s dng c php trc quan t nhin v
mnh m, c g bi cc i tng c trong cc ngn ng .Net Framework.
6. Kin trc tng th v cc m hnh lp trnh ca Silverlighta. Kin trc v cc thnh phn
V c bn Silverlight l mt nn tng thng nht ca nhiu thnh phn khc nhau. Tuy
nhin chng ti nhm li cc thnh phn chnh ca silverlight vo bng di y.
Thnh phn Din t
Nn tng trnh by c
s
Cc thnh phn v dch v hng ti giao din ngi dng v
tng tc ngi dng, bao gm cc control cho d liu cho
ngi dng nhp, thit b a phng tin, qun l phn quyn
s, trnh by d liu, ha vector, ch, hnh nh ng. cng
bao gm XAML c t vic b tr giao din
.Net Framework cho
silverlight
L mt gi nh trong .Net Framework, bao gm cc thnh phn
v c th vin, k c tng vic tng tc d liu, kh nng m
rng cc control, mng, garbage collection, v CLR
Ci t v cp nht L thnh phn s l cc tin trnh ci t lm sao n
gin ha cho ln ci t u tin, tip sau ch cung cp c
ch t ng cp nht v tng tc mc thp.
Di y l hnh nh m t nhng thnh phn trong kin trc ca Silverlight cng vi cc
thnh phn v dch v lin quan khc.
8/6/2019 Do an Tim Hieu Silver Light 4
7/110
8/6/2019 Do an Tim Hieu Silver Light 4
8/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 8
Xp t LayoutCho php kh nng xp t v tr ng cc thnh phn giao din
ngi dng
Trnh by d liu
(Data Binding)
Cho php vic kt ni d liu ca cc i tng v cc thnh phn
giao din ngi dng
DRM Kh nng Qun l phn quyn s
XAML Cung cp trnh phn tch cho XAML
Cc lp trnh vin c th tng tc vi thnh phn nn tng trnh by c s trn y bng
cch s dng XAML c t. XAML l mt yu t quan trng nht trong vic tng
tc gia .Net Framwork v cc kiu trnh by Layout, ngoi ra cc lp trnh vin cng c
th s dng c ch qun l code bn trong thao tc vi lp trnh by
c. NetFrameworkfor Silverlight:Tnh nng M t
Data
H tr ngn ng truy vn tch hp (LINQ) v LINQ vi c t
XML, d dang x l vic tch hp v lm vic vi d liu t nhiu
ngun khc nhau. H tr vic s dng XML v cc lp bin i
ha (serialization) x l d liu
Base class library
Thuc th vin ca .Net Framework, n cung cp cc chc nng
lp trnh ch yu nh vic x l chui, biu thc chnh quy, u
vo v u ra, nh x, tp hp v ton cc ha.
Window
Communication
Foundation
Cung cp cc tnh nng n gin ha vic truy cp d liu t
xa. C ch ny bao gm mt i tng trnh duyt, HTTP request
v HTTP Response, RSS, JSON, POX, v cc SOAP
8/6/2019 Do an Tim Hieu Silver Light 4
9/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 9
(WCF)
Common language
runtime
(CLR)
Cung cp vic qun l b nh, dn dp b nh tha, x l ngoi
l
Windows
Presentation
Foundation
controls
(WPF)
Cung cp cc control giu tnh nng nh Button, Calendar,
CheckBox, DataGrid, DatePicker, HyperlinkButton, ListBox,
RadioButton, and ScrollViewer.
Dynamic language
runtime
(DLR)
H tr vic bin dch v thi hnh vi tnh nng ng ca cc ngn
ng kch bn nh Javascript v IronPython cho cc chng trnh
trn nn tng Silverlight.
7. Cc m hnh lp trnh ca silverlight phin bn Silverlight 1.0 cung cp cho bn duy nht mt m hnh lp trnh l Javascript
API, cho n phin bn Silverlight 2.0 tr ln cung cp c hai m hnh lp trnh lManaged API v Javascript API. Trong khi Javascipt API ch cho php bn g m lnh
Javascript tng tc vi trnh duyt th Managed API s dng c c ch lm
vic ca Common Language Runtime (CLR) v k c Dynamic Language Runtime
(DLR) bin dch v thi chng trnh code (C#, VB) ca bn.
a. Javascript APITrong mt chng trnh silverlight nhng theo kiu Javascript API, n ti ch mt trang
XAML n l thay v ti mt gi ng dng. Trang XAML ny c th bao gm cc tham
chiu URI t nhng ngun bn my ch khc nh l cc on video v hnh nh.
Silverlight nhng s dng XAML to mt cy i tng ci m bn c th thao tc lp
trnh vi javascript lu tr bn trong mt trang HTML
Javascript API khng cung cp mt m hnh ng dng c kh nng h tr cc ng
8/6/2019 Do an Tim Hieu Silver Light 4
10/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 10
dng t hp vi s iu hng bn trong. Tuy nhin n cho php lm nhng kch bn
theo kiu Splash screan. Bn cng c th lm cc s iu hng trong Javascript API
bng cch ti li trang XAML mi hoc ti li c trang web trong trnh duyt.
b. Managed APITrong lp trnh silverlight theo kiu Managed API, bn c th thao tc lp trnh vi c file
XAML v file code bn trong. Khi mt Silverlight nhng ti file XAML, n s to mt
cy m hnh ci m bn cng c th g bng cc m lnh bn trong ( thng l C#,
Visual basic).
8. Kh nng h tr trnh duyt, h iu hnh v cc cng ngh lin quana.
Htr ca h iu hnh v trnh duyt c m t bng di y
Operating system
Internet
Explorer 7
Internet
Explorer 6
Firefox 1.5,
2.x, and 3.x
Safari 2.x
and 3.x
Windows Vista c c
Windows XP SP2 c c c
Windows XP SP3 c c c
Windows 2000 c
Windows Server 2003
(excluding IA-64)
c c c
Mac OS 10.4.8+
(PowerPC)
8/6/2019 Do an Tim Hieu Silver Light 4
11/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 11
Mac OS 10.4.8+ (Intel-
based)
c C
b. Cc cng ngh v cng c lin quan ca silverlightMicrosoft Expression Blend: S dng cng c ny bn bn c th to v thay i cch
xp xp trnh by Layer ca ng dng bng cch thao tc n canvas v control trong
XAML, lm vic vi cc chc nng ha, Lp trnh vi ngn ng Javascript.
Visual Studio 2008: Visual Studio cung cp cc cng c hiu qu cho vic pht trin cc
ng dng c h tr thao tc code bn tron. Tt c cc phin bn c ca Visual Studio
u c kh nng h tr Silverlight,Tuy nhin phin bn mi ny n cn h tr cc tnh
nng c bit hn nh bao gm kh nng IntelliSense, debugging v cc template cho
vic to mi mt ng dng Silverlight.
ASP.NET AJAX: Bao gm tp cc Control, Service, v cc th vin cn thit cho vic
to v tng tc vi nn ng dng web
Microsoft ASP.NET 3.5 Extensions Preview: Cng ngh ny cung cp chc nng thm
vic tng cng cc ng dng ASP.NET AJAX. N bao gm 2 control s dng hu
ch cho vic xy dng ng dng nn tng silverlight cng nh l mt phn ca ng dng
ASP.NET:
- ASP.NET MediaPlayer ServerControl
- ASP.NET Silverlight ServerControl
Internet servers: Bao gm IIS (Microsoft Internet Information Services), v Apache
Web server
Microsoft Windows Communication Foundation (WCF) services.
8/6/2019 Do an Tim Hieu Silver Light 4
12/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 12
CHNG 2: LAYOUT MANAGEMENT
Khi bn xy dng ng dng Silverlight, mt trong nhng iu bn cn lm u tin l
vic s b tr giao din ha ca bn nh th no. Silverlight cung cp 1 s layout sau
Control M t u im Khuyt im
Canvas Da trn ta tuyt i Layout c bn
Cc control con phi c
thuc tnh Canvas.Top v
Canvas.Left
StackPanel
To cc thnh phn k tip
nhau theo chiu ngang hoc
dc
C th lng
nhiu
StackPanel c
Gii hn s item, gii hn
canh l v khong cch
gia cc item
GridGing nh table ca
HTML
Layout tt nht
v c dng
nhiu nht
Cc nh ngha ct v
hng i khi phc tp.
Grid lng nhau d gy
nhm ln
WrapPanel
Ging nh stack panel
nhng khi gp bin th t
ng xung hng
C th cha
c nhiu item,
s lng khng
cn khai bo
trc
Gii hn s control khi
WrapPanel t kch thc
ti a
DockPanel
Panel lun bm st v tr
no (top,
left,right,bottom)
Gip s dng
ht khng gian
ng dng
Layout gii hn chiu
ngang dc ca cc panel
dng fill
1. Canvasnh ngha mt khu vc m trong bn c th ch ra v tr ca tng i tng thnh
phn bng cch s dng cc ta tham chiu.Bn c th s dng lng cc Canvas vi
nhau v nhng thnh phn bn trong ca Canvas phi l mt UIElement.Trong nhiu
8/6/2019 Do an Tim Hieu Silver Light 4
13/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 13
trng hp th Canvas ch ng vai tr nh mt i tng cha ng nhng i tng
khc v khng c mt thuc tnh hin th no.
V d s dng Canvas:
1. To project mi.
2. Trong phn t gc Grid, thm Canvas, t width v height l 300, t mu nn lxanh l
8/6/2019 Do an Tim Hieu Silver Light 4
14/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 14
3. Thm nt vo Canvas nh sau:
4. Thm nt mi vo Canvas nhng t v tr khc bng thuc tnh Canvas.Top v
Canvas.Left nh sau
8/6/2019 Do an Tim Hieu Silver Light 4
15/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 15
5. Khi chy trn trnh duyt s nh sau
8/6/2019 Do an Tim Hieu Silver Light 4
16/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 16
Chy chng trnh lp y trnh duyt
Mc nh phn t gc UserControl c rng 300 v cao 300, nu mun chy chng trnh
lp y trnh duyt th ta b i tuc tnh width v height i nh sau
Khi kt qu nh sau
8/6/2019 Do an Tim Hieu Silver Light 4
17/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 17
2. StackPanelSp xp nhng thnh phn bn trong n thnh mt dng v c th hin th theo hai kiu
ngang hoc l dc. Gi tr mc nh c gn ch thuc tnh Orientation l chiu dc
(Vertical)
V d di y hng dn cch to nhng nhng i tng trong StackPanel
8/6/2019 Do an Tim Hieu Silver Light 4
18/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 18
i chiu xut hin thnh chiu ngang nh sau
8/6/2019 Do an Tim Hieu Silver Light 4
19/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 19
3. Gridnh ngha dng li phc tp bao gm nhng dng v ct.Mc nh Grid cha mt ct
v mt dng. nh ngha nhiu ct hoc dng chng ta dng ColumnDefinitions v
RowDefinitions.Mi ColumnDefinition v RowDefinition trong ColumnDefinitions
v RowDefinitions xc nh mt dng hoc ct.ColumnDefinition v RowDefinition
cng nh ngha kch thc ca mi ct v dng s dng i tng GridLength
V d: Di y l v d dng Grid ln mt thit k giao din c bn.
1. To peoject mi
2. Bn thy c sn 1 grid c chn sn trong xaml, bn t thuc tnh
ShowG
ridL
ines l true nhn thy cc ng phn chia
8/6/2019 Do an Tim Hieu Silver Light 4
20/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 20
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"mc:Ignorable="d"d:DesignHeight="400" d:DesignWidth="600">
3. Thm ct v hng vo grid bng Grid.RowDefinitions v Grid.ColumnDefinitions
Lu nu dt width hoc height l * th ct hoc dng s t chim ly phn khng
gian cn li. y l kt qu
4. t thm cc button vo 4 gc ca grid nh sau
8/6/2019 Do an Tim Hieu Silver Light 4
21/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 21
8/6/2019 Do an Tim Hieu Silver Light 4
22/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 22
4. Wrap PanelXut hin bn Silverlight 3 trong Silverlight Toolkit, tng t nh Stack Panel nhng
c khc bit: khi cc item trong Wrap panel khng va vi chiu rng hoc cao ca
control ny, chng s t xung dng ( nu t Horizontal orientation) hoc chuyn sang
ct mi (nu l vertical orientation).iu ny gip ta c th cha 1 s lng khng xc
nh cc item.
8/6/2019 Do an Tim Hieu Silver Light 4
23/110
8/6/2019 Do an Tim Hieu Silver Light 4
24/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 24
CHNG 3: SILVERLIGHT CONTROL
1. XAML l g?XAML c vit tt bi cm t: Extensible Application Markup Language l mt ngn
ng dng khai bo. Bn c th to ra cc phn t ha(UI) vi nhng khai bo thngqua th trong XAML. Sau bn c th dng file m lnh tch bit ca n(code-behind)
tr v nhng s kin v iu khin nhng i tng m bn nh ngha trong
XAML. N l mt ngn ng m t da trn XML l rt trc quan xy dng giao din
t nhng bc phc tho cho ti sn xut sn phm, c bit hu ch cho i tng c
kinh nghim thit k website v k thut.
y XAML: l mt ngn ng nh du, xy dng da trn nn tng XML, c s
dng khi to i tng .NET. Ban u n c thit k xy dng giao din
ngi dng trong WPF. Silverlight cng dng n xy dng giao din ngi
dng.
y XAML cho php bn khai bo cc i tng to nn mt vng ni dung XAML,
v tng tc vi cc phn t bng m C#.
2. S kinXAML l mt ngn ng khai bo cho i tng v nhng c tnh ca chng, nhng n
cng bao gm nhng c php cho s kt hp s kin cho i tng trong nhng th nh
du.Bn ch r tn ca s kin nh l mt thuc tnh tn trn i tng m s kin c
nghe.V gi tr ca thuc tnh, bn ch r tn ca hm nghe s kin m bn nh ngha
phn code-behind hoc phn javascript.
Vic c khai bao hay khng c tnh x:Class th root trong XAML c nh hng n
vic x l s kin. Nu bn khai bo x:Class tc l vic x l s kin ca bn s cthc hin trong code-behind, trng hp ny thng xut hin trong kiu lp trnh
Managed API). Cn ngc li th vic x l s kin ca bn c thc hin ngay trong
th Javascript cha trong HTML, trng hp ny thng xut hin trong kiu lp trnh
JavaScript API
8/6/2019 Do an Tim Hieu Silver Light 4
25/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 25
a. Khai bo s kin trong XAML1. To project mi trong Visual Studio, chn Web application lm host cho chng
trnh Silverlight.
2.
Trong th gc Grid nh ngha 4 dng v 2 ct nh sau:
3. Thm 1 Button vo gc trn tri v 1 TextBlock vo gc trn phi
4. Thm thuc tnh Click cho nt. Khi nhp Click=, Visual s nhc bn to event
handler t ng, khi nhn Enter, thuc tnh Click s hon tt nh sau
8/6/2019 Do an Tim Hieu Silver Light 4
26/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 26
Thm vo , Visual s t thm s kin Button_Click vo code behind nh sau:
publicpartialclassMainPage :UserControl{publicMainPage()
{InitializeComponent();
}
privatevoidButton_Click(objectsender, RoutedEventArgse){}
}
5. Bn cn thay i Text ca TextBlock, bn cn t Name cho n truy xut
code behind:
6. Trong s kin Button_Click, i text ca TextBlock:
privatevoidButton_Click(objectsender, RoutedEventArgse){
8/6/2019 Do an Tim Hieu Silver Light 4
27/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 27
txtXAMLEventText.Text = "Thank you for clicking!";}
7. Chy chng trnh v nhn nt, ta thy text ca TextBlock thay i
b. Khai bo s kin trong managed code1. Thm 1 button v 1 text block vo dng 2 ca Grid:
8/6/2019 Do an Tim Hieu Silver Light 4
28/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 28
2. tham chiu n button v text block trong managed code, bn phi t Name
cho chng
8/6/2019 Do an Tim Hieu Silver Light 4
29/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 29
8/6/2019 Do an Tim Hieu Silver Light 4
30/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 30
3. Sau phng thc InitializeComponent(), nhp this.btnManaged.Click +=, visual
studio s nhc new RoutedEventHandler(bntManaged_Click); (Press TAB to
insert),
4. Tip tc Tab ly tn mc nh ca s kin
publicpartialclassMainPage :UserControl{publicMainPage()
{InitializeComponent();this.btnManaged.Click +=newRoutedEventHandler(btnManaged_Click);
}voidbtnManaged_Click(objectsender, RoutedEventArgse)
{thrownewNotImplementedException();
}privatevoidButton_Click(objectsender, RoutedEventArgse)
{txtXAMLEventText.Text = "Thank you for clicking!";
}}
8/6/2019 Do an Tim Hieu Silver Light 4
31/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 31
5. Mc nh Visual Studio s throw NotImplementedException, bn thay th bng
lnh in ra text cho text block
voidbtnManaged_Click(objectsender, RoutedEventArgse)
{txtManagedEventText.Text = "Thank you for clicking";}
6. Kt qu
3. Border ControlDng to ng bao v nn cho bt k control no trong Silverlight, k c Stack panel
v Grid, c php:
8/6/2019 Do an Tim Hieu Silver Light 4
32/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 32
Ngoi ra cn c th bo gc bng thuc tnh CornerRadius:
8/6/2019 Do an Tim Hieu Silver Light 4
33/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 33
C th t mu nn s dng thuc tnh Background:
8/6/2019 Do an Tim Hieu Silver Light 4
34/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 34
Mt v d khc phc tp hn, dng Border control gm mu nn c hiu ng bng, s
dng i tng Brush
8/6/2019 Do an Tim Hieu Silver Light 4
35/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 35
8/6/2019 Do an Tim Hieu Silver Light 4
36/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 36
4. Control nhp liu
1. To project mi,
2. Trong phn t gc Grid, thm 3 RowDefinition:
Thm 3 textbox v TextArea vo Stack panel dng u, 1 button dng 2, 1
Ellipse dng 3.Thm 1 TextBlock bn trn Ellipse dng bo li. t tn cho
cc control va ri.
8/6/2019 Do an Tim Hieu Silver Light 4
37/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 37
8/6/2019 Do an Tim Hieu Silver Light 4
38/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 38
Grid.Row="2"HorizontalAlignment="Center"VerticalAlignment="Center"FontSize="20"FontFamily="Arial"
FontWeight="Bold" />
Thm s kin Click cho Button:
publicpartialclassMainPage :UserControl{publicMainPage()
{InitializeComponent();this.btnTry.Click += newRoutedEventHandler(btnTry_Click);
}
voidbtnTry_Click(objectsender, RoutedEventArgse){thrownewNotImplementedException();
}}
3. Khi click button, ta ly cc gi tr mu qua thuc tnh text:
voidbtnTry_Click(objectsender, RoutedEventArgse){this.ellipse.Fill = newSolidColorBrush(Color.FromArgb(
255,byte.Parse(this.txtRed.Text),byte.Parse(this.txtGreen.Text),byte.Parse(this.txtBlue.Text)
));}
V mu ch c gi tr t 0 n 255 nn ta dng try/catch bt li v bo li bng text
block nh sau
voidbtnTry_Click(objectsender, RoutedEventArgse)
{try{
this.ellipse.Fill = newSolidColorBrush(Color.FromArgb(
255,byte.Parse(this.txtRed.Text),byte.Parse(this.txtGreen.Text),
8/6/2019 Do an Tim Hieu Silver Light 4
39/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 39
byte.Parse(this.txtBlue.Text)));
this.lblColor.Text = "";}
catch
{this.lblColor.Text = "Error with R,G,B Values";}
}
4. Chy chng trnh v nhn kt qu nh ban u
5. t gi tr thuc tnh cho controla. C php thuc tnh
t gi tr thuc tnh trong XAML cng ging nh XML, a phn cc thuc tnh c gi
tr chui. Mt phn t bao gm tn control, v cc thuc tnh
b. C php phn t:Trng hp c thuc tnh khng n gin l chui, ta phi khai bo theo cch khc
6. Chuyn kiuV d: Thuc tnh Margin c th l kiu chui trong trng hp ny:
Nhng khi bn mun t r cc kiu margin th
Khi silverlight s ly chui "0,15,0,0"
8/6/2019 Do an Tim Hieu Silver Light 4
40/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 40
V chuyn sang kiu phc tp gm 4 gi tr: left margin = 0, top margin = 15, right
margin = 0, and bottom
margin = 0
7. Thuc tnh nh kmL thuc tnh c gn vi control cha.V d nu Button c gn vo trong Canvas, n
s c thm 2 thuc tnh l Canvas.Top v Canvas.Left, 2 thuc tnh ny gn tham chiu
n control cha l Canvas.
Lng Control trong control
V d trn ta thy Button ln c th cha Ellipse, Stack panel, list box, text block.
8/6/2019 Do an Tim Hieu Silver Light 4
41/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 41
8/6/2019 Do an Tim Hieu Silver Light 4
42/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 42
CHNG 5: DATABINDING TRONG SILVERLIGHT
1. Cc cng ngh truy cp d liu trong SilverlightTrong cc ng dng trn nn tng Silverlight c cho php truy cp d liu theo nhiu
cng ngh hay phng thc khc nhau.C
ch n gin nht hin th v tng tcngi dng l Data Binding. Cch khc na truy cp d liu t ng dng my khch,
nh l mt s thay th ti u ca cookie, chng ta c th s dng cng ngh Isolated
Storage. Silverlight cng cho php c v ghi trn d liu XML bng cch s dng
XmlReader hoc LINQ to XML . Ngoi ra cch ph bin trong cc ng dng hin nay
thng lm l truy cp d liu SQL Server thng qua cc cng ngh Web service,
WCF v ADO.Net Data Service.
2. S dng Data BindingData Binding cung cp mt cch n gim cho ng dng nn tng silverlight truy cp v
tng tc ti d liu. Thng thng Data Binding qun l d liu theo lung gia ngi
dng v cc i tng d liu. Tc k khi mt binding c to v d liu c thay i,
th giao din ngi dng cng c trnh by v thay i theo d liu(t ng nh x ).
Tng t khi ngi dng thay i trn giao din th n cng c th lm thay i i
tng d liu. V d nh khi ngi dng thay i gi tr trn mt TextBox, gi tr d liu
cng t ng cp nht theo thay i .
a. S lin kt gia giao din ngi dng v d liu
- Binding Object: Nh l mt xc tc giaBindingTarget v Binding Source
8/6/2019 Do an Tim Hieu Silver Light 4
43/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 43
- Binding Source: Cha cc thuc tnh d liu, cn c th l i tng ca CLR
- Binding Target: L cc thuc tnh giao diu ngi dng c th hin th hoc
thay i ti d liu. Binding target c th l DependencyProperty ca
FramworkElement
- Value Converter: Thnh phn ty chn p dng cho nhng trng hp d
liu cn phn tch hoc chuyn i
- iu hng ca lung d liu: Quyt nh ti vic tng tc d liu qua li
gia Binding Source v Binding Target (xem chi tit mc di)
b. Cc phng thc iu hng ca lung d liuMi mt kiu binding data u c mt phng thc iu hng lung d liu(Mode
propery). Ci ny quyt nh khi no v lm th no d liu chy trn. C 3 phng
thc iu hng lung d liu sau
- OneTime: binding d liu ti target (giao din ngi dng) mt ln v sau
kt thc kt ni khng binding na. Phng thc ny ph hp khi hin th d
liu m t khi hoc khng bao gi cn thay i.
- OneWay: Binding d liu ti target v gi n n khi Source (ngun d liu)
thay i th target cng thay i theo. Phng thc ny ph hp khi trnh by
d liu m ngi dng khng c php thay i
- TwoWay: Binding d liu ti target v gi n n khi source thay i th
target cng thay i theo, nhng khi target thay i th source cng thay i
theo. Phng thc ny ph hp khi trnh by d liu m cho php ngi dng
thay i d liu ngun
8/6/2019 Do an Tim Hieu Silver Light 4
44/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 44
S dng class Binding d liu, gm 2 thnh phn: ngun v ch, v 1 thuc tnh
gi l binding mode ( kiu binding). Kiu binding ny s xc nh d liu c truyn t
ngun sang ch theo cch no(1 chiu, 1 ln hay 2 chiu).
Cch s dng class binding, dng ngn ng xaml. V d truyn Text ca TextBox vo
data source ca phn t FirstName nh sau:
V d: Ta c i tng Book vi 2 thuc tnh: Title v ISBN. Hai thuc tnh ny s
vo TextBox nh hnh
8/6/2019 Do an Tim Hieu Silver Light 4
45/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 45
1. To project mi
2. To 2 ct v 6 dng trong grid. t TextBlock mi dng trong ct 1 v TextBox
mi dng trong ct 2 nh sau
8/6/2019 Do an Tim Hieu Silver Light 4
46/110
8/6/2019 Do an Tim Hieu Silver Light 4
47/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 47
InitializeComponent();this.Loaded += newRoutedEventHandler(Page_Loaded);
}voidPage_Loaded(objectsender, RoutedEventArgse)
{
}publicclassBook{
publicstringTitle { get; set; }publicstringISBN { get; set; }
}}
4. To instance cho class Book v gn n vo DataContext ca LayoutRoot
voidPage_Loaded(objectsender, RoutedEventArgse){
Bookb = newBook(){Title = "Beginning Silverlight 4: From Novice toProfessional",ISBN = "978-1430229889"
};this.LayoutRoot.DataContext = b;}
5. Chy chng trnh v bn thy d liu ca class Book c vo TextBox
6. Nhng khi thay i thuc tnh th class Book vn cha h tr nhn bit khi thuc
tnh ca n b thay i, lm iu ta cn dng interface
INotifyPropertyChanged
7. Cho class Book k tha interface InotifyPropertyChanged v thm namespace
System.ComponentModel
8/6/2019 Do an Tim Hieu Silver Light 4
48/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 48
Bm chut phi vo interface InotifyPropertyChanged v chn Implement Interface
Khi 1 public event s c thm vo
8/6/2019 Do an Tim Hieu Silver Light 4
49/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 49
publicclassBook :INotifyPropertyChanged{publicstringTitle { get; set; }publicstringISBN { get; set; }publiceventPropertyChangedEventHandlerPropertyChanged;
}8. To phng thc pht ra s kin PropertyChanged
publicclassBook :INotifyPropertyChanged{publicstringTitle { get; set; }publicstringISBN { get; set; }publiceventPropertyChangedEventHandlerPropertyChanged;voidFirePropertyChanged(stringproperty)
{if (PropertyChanged != null)
{PropertyChanged(this,newPropertyChangedEventArgs(property));
}}
}
9. Thm cc thuc tnh private v get/set , trong thao tc set, ta gi phng thc
FirePropertyChanged, truyn cho n tn thuc tnh
publicclassBook :INotifyPropertyChanged{privatestring_title;privatestring_isbn;publicstringTitle
{get
{return_title;
}set
{_title = value;
FirePropertyChanged("Title");}
}publicstringISBN
{get
{return_isbn;
8/6/2019 Do an Tim Hieu Silver Light 4
50/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 50
}set
{_isbn = value;FirePropertyChanged("ISBN");
}}publiceventPropertyChangedEventHandlerPropertyChanged;voidFirePropertyChanged(stringproperty)
{if (PropertyChanged != null)
{PropertyChanged(this,newPropertyChangedEventArgs(property));
}}
}
Tuy nhin hin ti kiu binding l 1 chiu t class n text box, nu mun cho thay
i bn text box c truyn ngc li t text box v class ta phi chnh Mode v
TwoWay
10.Chnh li kiu binding trong code xaml trn cc control
8/6/2019 Do an Tim Hieu Silver Light 4
51/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 51
Grid.Row="3" />
11.Chy chng trnh, ta thy nu sa ni dung text box v chuyn qua text box khc,
ni dung ca cc text box lin quan n cng 1 thuc tnh s thay i ni dung
theo
3. Binding gia cc phn tC php cng tng t nh d liu, ch khc l c ch r tn phn t cn bind.V d
bn mun truyn thuc tnh IsEnabled ca 1 control ti thuc tnh IsChecked ca check
box. Gi s check box c name l EnableButton, c php nh sau
IsEnabled="{Binding IsChecked, Mode=OneWay, ElementName=EnableButton}"
8/6/2019 Do an Tim Hieu Silver Light 4
52/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 52
V d 2: Ta c check box v button, nu click check box th button s enable, v nu
check box b chn th button s disable
1. To project mi
2. Thm StackPanel vo Grid gc, thm ToggleButton v Check box vi name l
EnableButton trong StackPanel
3. Bind thuc tnh IsEnabled ca ToggleButton ti thuc tnh IsChecked ca check
box theo mode 1 chiu
4.Chy chng trnh
8/6/2019 Do an Tim Hieu Silver Light 4
53/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 53
5. B chn check box v bn thy button b disable
8/6/2019 Do an Tim Hieu Silver Light 4
54/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 54
CHNG 6: SILVERLIGHT TOOLKITToolkit c pht trin qua nhiu giai on, khi silverlight 4 ra i, 10 control sau
c pht trin hon chnh
AutoCompleteBox Calendar
ChildWindow
DataGrid
DataPager
DatePicker
GridSplitter
HeaderedItemsControl
TabControl
TreeView
Nhng control cha t ti mc hon chnh
DockPanel
Expander
HeaderedContentControl Label
NumericUpDown
Viewbox
WrapPanel
Nhng control cha c test k, mc preview
Accordion
Charting
DataForm
DomainUpDown
ImplicitStyleManager
LayoutTransformer
8/6/2019 Do an Tim Hieu Silver Light 4
55/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 55
Accordion
Charting
DataForm
DomainUpDown ImplicitStyleManager
LayoutTransformer
Nhng control cha c m bo, vn ang trong qu trnh pht trin v cha t chun
preview
GlobalCalendar
TransitioningContentControl
TreeMap
Drag-and-drop support for items controls
BusyIndicator
Bn c th download ti: http://silverlight.codeplex.com
Bn nn download file MSI v ci t
8/6/2019 Do an Tim Hieu Silver Light 4
56/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 56
Cc control trong toolkit
8/6/2019 Do an Tim Hieu Silver Light 4
57/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 57
CHNG 7: TRUY CP D LIU
Mt trong nhng quan nim sai lm v vic truy xut d liu trong Silverlight l thngtm mt th vin ADO.NET. Nhng tht s trong Silverlight khng c tn ti th vin
ny. Silverlight l 1 client-technology c trin khai trn Internet.Bn s khng munplug-in trn trnh duyt truy xut ca bn v nh th s l c s d liu ca bn. liu cm k.
Bn c th chn mt trong cc cch sau giao tip vi c s d liu:
Web services: SOAP, ASP.NET web services (ASMX), WCF services, POX, RESTendpoints
Sockets: network socket communication
File: accessing static content via web requests.
Socket: socket c l l cch truy xut s liu tin tin nht. Cch ny cn c 1 socket hostv cng yu cu giao tip qua phm vi cc port c ch nh trc. Nu iu ny c thc chp nhn vi bn th y l phng tin hiu qu v mnh giao tip trong ngdng ca bn.Tuy nhin ti khng ngh y l cch tiu chun bn public trn web.Socket c dng nhiu trong mc ch thng mi
File: Silverlight c th giao tip vi d liu trong my v trn web. Vi d liu trn my,
ng dng khng c truy xut trc tip vo h thng tp tin, nhng c th s dngOpenfileDialog v SaveFileDialog to 1 lung n my khch.
Web service: y l tri tim ca vic truy xut d liu trong Silverlight. Silverlight cungcp chun truy xut ASP.NET Web services (ASMX) or WCF-base services s dng
phng thc Add service reference trong Visual Studio, to ra trongly-typed proxy codecho bn.
y ti s gii thiu vi cch truy xut d liu bng WCF service:
Chng ta s to ra mt ng dng n gin v..
1. To mi 1 ng dng Silverlight t tn l WCFService:
8/6/2019 Do an Tim Hieu Silver Light 4
58/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 58
2. Right click vo WCFService.Web v chon Add -> New Item. Chn Code
File v t tn l StartingHands.cs
8/6/2019 Do an Tim Hieu Silver Light 4
59/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 59
3. Trong StartingHands.cs chng ta to 1 class StartingHands c ni dung
namespace WCFService.Web
{
public class StartingHands
{
public string Nickname { get; set; }
public string Notes { get; set; }
public string Card1 { get; set; }
public string Card2 { get; set; }
public static List GetHands()
{
List hands = new List();
hands.Add(
new StartingHands()
{
Nickname = "Big Slick",
Notes = "Also referred to as Anna
Kournikova.",
8/6/2019 Do an Tim Hieu Silver Light 4
60/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 60
Card1 = "As",
Card2 = "Ks"
});
hands.Add(
new StartingHands()
{Nickname = "Pocket Rockets",
Notes = "Also referred to as Bullets.",
Card1 = "As",
Card2 = "Ad"
});
hands.Add(
new StartingHands()
{
Nickname = "Blackjack",
Notes = "The casino game blackjack.",
Card1 = "As",Card2 = "Js"
});
hands.Add(
new StartingHands()
{
Nickname = "Cowboys",
Notes = "Also referred to as King Kong",
Card1 = "Ks",
Card2 = "Kd"
});
hands.Add(
new StartingHands()
{
Nickname = "Doyle Brunson",
Notes = "Named after poker great Doyle
Brunson",
Card1 = "Ts",
Card2 = "2s"
});
return hands;
}}
}
4. Tip theo bn cn to WCF service gi phng thc GetHands() ca lpStartingHands:
8/6/2019 Do an Tim Hieu Silver Light 4
61/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 61
- Right-click the WCFService.web v chn New Item. Trong Add NewItem dialog chn Silverlight-enable WCF Service v t tnStartingHandService.svc
- To phng thc GetHands() trong StartingHandService.svc.cs vi kiutr v List:
namespace WCFService.Web{
[ServiceContract(Namespace = "")][AspNetCompatibilityRequirements(RequirementsMode =
AspNetCompatibilityRequirementsMode.Allowed)]public class StartingHandsService
{[OperationContract]
public List GetHands(){
return StartingHands.GetHands();}
}}
8/6/2019 Do an Tim Hieu Silver Light 4
62/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 62
- Phng thc ny n gin ch gi phng thcStartingHands.GetHands(). Ch rng bn phi s dngSystem.Collections.Generic s dng List
5. By gi bn cn to reference trong Silverlight project ca bn ng dng
ca bn c th truy cp vo service. lm iu , right-clickReferencetrong WCFService v chn Add Service Reference.
- Click Discover trong hp thoi Add Service Reference.- Visual Studio s tm StartingHandService.svc v a n vo danh sch
Service trong hp thoi Add Service Reference, Nhng bn cn phi buidsolution trc Visual Studio tm ra Service ca bn.
- Nhn StartingHandService.svc hin StartingHandService. Click
StartingHandService thy phng thc GetHands(). NhpStartingHandServidceReference trong khung Namespace v click OK
6. Bc tip theo l to giao din cho chng trnh
8/6/2019 Do an Tim Hieu Silver Light 4
63/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 63
Chng ta s to giao din nh trn:
Chn iu khin DataGrid trong Hp thoi ToolBox. Vo phn Code togiao din vi on m sau:
8/6/2019 Do an Tim Hieu Silver Light 4
64/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 64
Margin="4"Fill="White"
Grid.Column="0" />
8/6/2019 Do an Tim Hieu Silver Light 4
65/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 65
}void Page_Loaded(object sender, RoutedEventArgs e){
StartingHandServiceClient service = newStartingHandServiceClient();service.GetHandsCompleted += new
EventHandler(service_GetHandsCompleted);service.GetHandsAsync();
}void service_GetHandsCompleted(object sender,
GetHandsCompletedEventArgs e){
this.grdData.ItemsSource = e.Result;}
}
Ch rng bn phi s dng using WCFService.StartingHandServiceReference;
7. Bc tip theo l to 1 file xml c tn crossdomain , file ny dng truycp d liu t Domian khc:
8/6/2019 Do an Tim Hieu Silver Light 4
66/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 66
CHNG 8: NAVIGATION
1. NavigationNavigation l 1 c trng trong Silverlight.Cho php lp trnh vin thc hin vic chuyn
hng n trang khc trong ng dng Silverlight. Framework cn c th cho php ngilp trnh to ra history chuyn hng n trang trc v sau bng cc nt back vforward
Trong chng ny chng ta s lm vic vi 2 i tng l Frame v Page. Page controltng t nh nhng phn ring r ca ni dung. Frame cha nhng page control v cungcp hot ng chuyn hng gia cc page. Ti 1 thi im Frame ch cha ni dung 1
page.
Chng ta s to 1 ng dng chuyn hng gia cc page s dng Navigation Framework.Trong ng dng chng ta s cha 2 HyperlinkButton v 1 Frame. Khi click voHyperlinkButton s load 1 trong 2 page trong frame:
1. To 1 project mi v t tn NavAppFromScratch2. Tin hnh to giao din: chng ta s c 2 dng, 1 cho 2 hyberlinkbutton, 1 cho ni
dung navigated
3. Bc tip theo chng ta s thm Navigation Framework vo chng trnh bngcch thm reference n System.Windows.Controls.Navigation.dll. lm iu chng ta right-clickReference trong Project v chn Add Reference
8/6/2019 Do an Tim Hieu Silver Light 4
67/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 67
- Trong hp thoi Add Reference, tab .NET, tm v chnSystem.Windows.Control.Navigation v chn OK
8/6/2019 Do an Tim Hieu Silver Light 4
68/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 68
4. By gi chng ta thm i tng Navigation vo chng trnh bng cch addnamespace System.Windows.Controls.Navigation vo Usercontrol
5. Chng ta c th to Frame vo dng th 2
8/6/2019 Do an Tim Hieu Silver Light 4
69/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 69
6.Chng ta s to 2 trang khc tin hnh chuyn hng trn . Ln lt t tnl View1 v View2
7. Trong View1.xaml v View2.xaml ln lt thm vo TextBlock control:
8/6/2019 Do an Tim Hieu Silver Light 4
70/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 70
View1.xaml:
View2.xaml:
8. n y chung ta c 1 frame v 2 view s c load vo frame ny. load c2 page vo frame th chng ta s sa i 1 cht trn trang MainPage.xaml
9. To event handler bng cch right-click vo LinkLick trong thuc tnh Click chnNavigate to Event Handler:
private void LinkClick(object sender, RoutedEventArgs e){
HyperlinkButton button = (HyperlinkButton)sender;string viewSource = button.Tag.ToString();ContentFrame.Navigate(new Uri(viewSource, UriKind.Relative));
}
8/6/2019 Do an Tim Hieu Silver Light 4
71/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 71
2. NAVIGATIONSERVICE OBJECTNh bn thy trong chng trnh trc, thay i trang hin th bn dng phng thcnavigate ca i tng Frame. Nhng nu bn cn chuyn hng n 1 trang khc t 1trang trong Frame th sao:
y trang Inner View 1 c chuyn hng t trang View 1, m View 1 li nm trongFrame, bn li phi n Frame ang cha View 1 v thc hin chuyn hng.
Tht may l Navigation Framework c cha 1 i tng cho php 1 View truy cp nHosting Frame ca n. i tng l NavigationService. Chng ta s tm hiu n thngqua vic to ng dng sau:
1. Bn tip tc lm vic trn ng dng trc v tin hnh thm 1 trangInnerView1.xaml
2. Trong trang View1.xaml, thm 1 button chuyn hng n trangInnerView1.xaml mi to
8/6/2019 Do an Tim Hieu Silver Light 4
72/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 72
HorizontalAlignment="Center" />
3. Sau to 1 event handler ca button to trn View1.xaml
private void Button_Click(object sender, RoutedEventArgs e){
NavigationService.Navigate(new Uri("/InnerView1.xaml", UriKind.Relative));
}
3. PASSING DATA to NAVIGATION PAGETrong phn ny chng ta s bn v vic truyn d liu n 1 page trong 1 navigationframework. In HTML pages, chng ta dng QueryString truyn d liu n 1 trangkhc.Trong ng dng Silverlight Navigation th vic cng c thc hin bi thuc
tnh QueryString ca i tng NavigationC
ontext. V d:string productID = NavigationContext.QueryString[ProductID].ToString();
on m trn dng nhn ni dung ca productID trn 1 trang khc truyn vo.
1. Chng ta tip tc m rng ng dng trc, chng ta s truyn 1 vi d liu voInnerView1.xaml s dng NagavationContext:
2. Thm 1 ComboBox vo View1.xaml, ComboBox ny c dng chn mu sccho vn bn trong InnnerView1.xaml:
8/6/2019 Do an Tim Hieu Silver Light 4
73/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 73
3. Tip theo vo phn code behind ca View1 v sa li event handler Button_Click truyn d liu l mu chn:
private void Button_Click(object sender, RoutedEventArgs e){
string color = Color.SelectionBoxItem.ToString();NavigationService.Navigate(new Uri(string.Format("/InnerView1.xaml?Color={0}", color),UriKind.Relative));
}
4. M InnerView1.xaml v thm 1 TextBlock di TextBlock trc :
5. Vo phn code behind ca InnerView1.xaml v thc hin nhn d liu s dngNavigationContext, on code ny s bin m ca vn bn TextBlock th 2 trnInnerView1.xaml sang mu chn:
protected override void OnNavigatedTo(NavigationEventArgs e){
string color = NavigationContext.QueryString["Color"].ToString();Brush b;switch (color){
case "Red":
b = new SolidColorBrush(Color.FromArgb(255, 255, 0,0));ViewHeader.Foreground = b;ViewColor.Foreground = b;ViewColor.Text = "(Red)";break;
case "Green":b = new SolidColorBrush(Color.FromArgb(255, 0, 255,0));
8/6/2019 Do an Tim Hieu Silver Light 4
74/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 74
ViewHeader.Foreground = b;ViewColor.Foreground = b;ViewColor.Text = "(Green)";break;
default:b = new SolidColorBrush(Color.FromArgb(255, 0, 0,
255));ViewHeader.Foreground = b;ViewColor.Foreground = b;ViewColor.Text = "(Blue)";break;
}}
CHNG 9: URI MAPPING
Khi s dng QueryString truyn d liu, URLs c th s hin th 1 vi thng tin mbn khng mun hin th
http://www.domain.com/Catalog.aspx#ProductDetails.xaml?ID=4
URLs ny lm cho chng ta khng my d chu, v hy nhn link bn di:
http://www.domain.com/Catalog.aspx#Product/4
URL ny d c hn v thn thin hn nhiu, lm c iu ny trong Silverlightchng ta c th s dng URI Mapping.
1. Tip tc s dng ng dng trc. Chng ta m file App.xaml v thm vo tabApplication 1 xml namespace:
Namespace c thm vo, chng ta c th s dng URIMapper
8/6/2019 Do an Tim Hieu Silver Light 4
75/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 75
xmlns:nav="clr-namespace:System.Windows.Navigation;assembly=System.Windows.Controls.Navigation"x:Class="NavAppFromScratch.App">
Trong URIMapper chng ta s to 2 phn t URIMapping, 1 cho View1.xaml, 1 choView2.xaml. Mi Mapping s cha 2 thuc tnh: thuc tnh URI l tn th hin caMapping s xut hin trn browser address bar, thuc tnh MappedUri miu t Uri cnh x n bi UriMapping
Vo MainPage.xaml sa li ni dung ca Tag:
M file View1.xaml.cs iu chnh li ni dung event handler Button_Click:
private void Button_Click(object sender, RoutedEventArgs e){
8/6/2019 Do an Tim Hieu Silver Light 4
76/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 76
string color = Color.SelectionBoxItem.ToString();NavigationService.Navigate(new Uri(string.Format("InnerView/{0}", color),UriKind.Relative));
}
n hot ng, bn cn thm vo UriMapping:
CHNG 9: ISOLATED STORAGE
Silverlight dng isolated storage nh 1 h thng file o lu tr d liu trong 1 th mcn trn my tnh ca bn. N chia d liu lm 2 phn ring bit: Phn th nht cha ccthng tin qun l nh dung lng cho php v phn th hai l d liu tht s . Mi ngdng Silverlight c phn b mt vng ring trong h thng lu tr ny vi dung lnglu tr mc nhin l 1MBc im:
- Isolate storage lu tr theo tng ngi dng cho php cc ng dng lu tr ccci t cho tng ngi ring bit.
- Ngi qun tr c th t gii hn a trn mi ngi dng, khng c bt kcacnh3 bo no v khng gian trng cn li.
- D rng Isolated storage c t trong th mc n trong h thng nhngkhng c ngha l ngi dng khng th tm ra th mc ny, do vy IsolatedStorage khng hon ton an ton v ngi dng c th thay i hoc xa file.Tuy nhin, nu mun ngi dng khng th thay i cc file th bn c thdng cc lp m ha m ha li cc file trc khi lu.
Nhng lp cho vic truy cp isolated strorage c cha trong namespaceSystem.IO.IsolatedStorage.
Namespace ny cha 3 lp:
- IsolatedStorageFile- IsolatedStorageStream- IsolatedStorageSettings
8/6/2019 Do an Tim Hieu Silver Light 4
77/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 77
1. IsolatedStorageFile:Lp ny cung cp cc thuc tnh v phng thc s dng khi lm vic vi isolatedstorage trong Silverlight. N miu t khu vc ca Isolated Storage v cc file, th mccha trong vng .Cc phng thc v thuc tnh thng dng:CreateDirectory()CreateFile()GetDirectoryName()GetFileName()QuotaAvailableFreeSpaceV D:using (var store = IsolatedStorageFile.GetUserStoreForApplication()){
store.CreateDirectory("Directory1");long quota = store.Quota;long availableSpace = store.AvailableFreeSpace;
}
2. IsolatedStorageFileStreamN dng c, chp v to file trong Isolated Storage. Class ny c extends t lpFileStream v trong hu ht trng hp, ngi lp trnh s s dng StreamReader vStreamWriter. V d:
using (var store = IsolatedStorageFile.GetUserStoreForApplication()){
IsolatedStorageFileStream stream =store.CreateFile("TextFile.txt");StreamWriter sw = new StreamWriter(stream);sw.Write("Contents of the File);sw.Close();
}
3. IsolatedStorageSettingCho php ngi lp trnh lu tr cp key/value trong Isolated Storage. Cp key/value l user-specific v cung cp 1 cch thun li lu tr nhng iu chnh ni bV d:
public partial class MainPage : UserControl{ private IsolatedStorageSettings isSettings IsolatedStorageSettings.ApplicationSettings;
public MainPage(){
InitializeComponent();this.Loaded += new RoutedEventHandler(Page_Loaded);
8/6/2019 Do an Tim Hieu Silver Light 4
78/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 78
this.cmdSave.Click += newRoutedEventHandler(cmdSave_Click);
}void cmdSave_Click(object sender, RoutedEventArgs e){
isSettings["name"] = this.txtName.Text;
SetWelcomeMessage();}void Page_Loaded(object sender, RoutedEventArgs e){
SetWelcomeMessage();}
private void SetWelcomeMessage(){
if (isSettings.Contains("name")){
string name = (string)isSettings["name"];this.txtWelcome.Text = "Welcome " + name;
}else{
txtWelcome.Text ="Welcome! Enter Your Name and PressSave.";
}}
}
u tin khi ngi dng chy ng dng h s thy dng tin "Welcome! Enter YourName and Press Save.". Sau h c th nhp tn mnh v nhn nt Save. Tn ca h sc lu trong isolated storage trong my di 1 cp key/value c gi l name. Ln s
dng tip theo, tn ca ngi dng vn c lu trong isorated storage v s thy 1 tinnhn ht c thn thin : Welcome + tn ngi dng
r hn v Isolated storage, chng ta cng xy dng ng dng sau:1. u tin chng ta xy dng giao din cho ng dng:
8/6/2019 Do an Tim Hieu Silver Light 4
79/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 79
Code:
8/6/2019 Do an Tim Hieu Silver Light 4
80/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 80
Margin="5">
8/6/2019 Do an Tim Hieu Silver Light 4
81/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 81
8/6/2019 Do an Tim Hieu Silver Light 4
82/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 82
2.
Tip theo chng ta s to 4 event hadler cho 3 nt Up Directory, Open Directory,Save, Show File bng cch right-click vo thuc tnh Click trong mi nt v chn
Navigate to Event Handler
Nhp on m sau vo MainPage.xaml.cs:publicpartialclassMainPage :UserControl
{privatestring currentDir = "";public MainPage()
{InitializeComponent();
this.Loaded += newRoutedEventHandler(Page_Loaded);}
void Page_Loaded(object sender, RoutedEventArgs e){
LoadFilesAndDirs();GetStorageData();
}
Trong , phng thc LoadFilesAndDirs() dng to cc file v th mc trongIsolated storage. GetStorageData() dng hin th danh sch cc file v th mc ctrong isolated storage v hin th gii hn ca iolated storage v s khng gian cn trng
trong .privatevoid LoadFilesAndDirs()
{using (var store =IsolatedStorageFile.GetUserStoreForApplication())
{// Create three directories in the root.store.CreateDirectory("Dir1");store.CreateDirectory("Dir2");store.CreateDirectory("Dir3");// Create three subdirectories under Dir1.
string subdir1 = System.IO.Path.Combine("Dir1", "SubDir1");string subdir2 = System.IO.Path.Combine("Dir2", "SubDir2");string subdir3 = System.IO.Path.Combine("Dir3", "SubDir3");store.CreateDirectory(subdir1);store.CreateDirectory(subdir2);store.CreateDirectory(subdir3);
// Create a file in the root.IsolatedStorageFileStream rootFile =store.CreateFile("InTheRoot.txt");
8/6/2019 Do an Tim Hieu Silver Light 4
83/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 83
rootFile.Close();// Create a file in a subdirectory.IsolatedStorageFileStream subDirFile=store.CreateFile(System.IO.Path.Combine(subdir1, "SubDir1.txt"));subDirFile.Close();
}
}
privatevoid GetStorageData(){
this.lstDirectoryListing.Items.Clear();this.lstFileListing.Items.Clear();using (var store =IsolatedStorageFile.GetUserStoreForApplication())
{string searchString =System.IO.Path.Combine(currentDir, "*.*");
string[] directories =store.GetDirectoryNames(searchString);foreach (string sDir in directories){
this.lstDirectoryListing.Items.Add(sDir);}
string[] files = store.GetFileNames(searchString);foreach (string sFile in files)
{this.lstFileListing.Items.Add(sFile);
}long space = store.AvailableFreeSpace;
txtAvalSpace.Text = (space / 1000).ToString();long quota = store.Quota;
txtQuota.Text = (quota / 1000).ToString();this.lblCurrentDirectory.Text = String.Concat("\\", currentDir);
}}
Nt Up Directory quay v th mc trc .
privatevoid btnUpDir_Click(object sender, RoutedEventArgs e){
if (currentDir != ""){
currentDir = System.IO.Path.GetDirectoryName(currentDir);
}GetStorageData();
}
Nt Open Directory dng m th mc chnprivatevoid btnOpenDir_Click(object sender, RoutedEventArgs e)
{if (this.lstDirectoryListing.SelectedItem != null)
{
8/6/2019 Do an Tim Hieu Silver Light 4
84/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 84
currentDir =System.IO.Path.Combine(currentDir,this.lstDirectoryListing.SelectedItem.ToString());
}GetStorageData();
}
Nt Show File dng hin th ni dung ca tp tin chn ln khung bn phi, trongevent hadler ca nt ny chng ta s dng IsolatedStorageFile vIsolatedStorageFileStream ghi ni dung tp tin v hin th chng.
privatevoid btnOpenFile_Click(object sender, RoutedEventArgs e){
if (this.lstFileListing.SelectedItem != null){
this.txtFileName.Text =this.lstFileListing.SelectedItem.ToString();using (var store =
IsolatedStorageFile.GetUserStoreForApplication()){
string filePath =System.IO.Path.Combine(currentDir,this.lstFileListing.SelectedItem.ToString());IsolatedStorageFileStream stream =store.OpenFile(filePath, FileMode.Open);StreamReader sr = newStreamReader(stream);this.txtContents.Text = sr.ReadToEnd();sr.Close();
}
}}
nt Save, chng ta tin hnh to v lu tp tin mi vo ni c chn trong isolatedstorage:privatevoid btnSave_Click(object sender, RoutedEventArgs e)
{string fileContents = this.txtContents.Text;using (var store =IsolatedStorageFile.GetUserStoreForApplication())
{IsolatedStorageFileStream stream =
store.OpenFile(System.IO.Path.Combine(currentDir,this.txtFileName.Text),FileMode.OpenOrCreate);StreamWriter sw = newStreamWriter(stream);sw.Write(fileContents);sw.Close();stream.Close();
8/6/2019 Do an Tim Hieu Silver Light 4
85/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 85
}GetStorageData();
}
3. Managing Isolated StorageHin th v xa Isolated Storage: hin th isolated storage trong my ca bn, n gin ch cn nhp phi vo ng dngSilverlight no , v chn Silverlight Configuration. Trong hp thoi hin ra, chn tabApplication Storage. y cc bn c th thy thng tin v Isolated Storage trong myca bn
Nu bn mun xa storage ca site no th bn chn site v nhn Delete, hoc deteleall thc thi cho tt c site.
Nu nh bn mun c nhiu khng gian lu tr hn trong Isolated Storage ca bn th cth s dng phng thc TryIncreaseQuotaTo(). Chng ta s lm iu ny bng vic mrng v d trc:
1. Trong MainPage.xaml ca v d trc, to thm nt Increase Quota k bn ntSave.
8/6/2019 Do an Tim Hieu Silver Light 4
86/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 86
x:Name="btnIncreaseQuota"Margin="5"Content="Increase Quota"Width="150"Height="30"Click="btnIncreaseQuota_Click">
2. Tip theo chng ta s to event hadler cho nt va to. Chng ta s truyn vo
phng thc TryIncreaseQuotaTo(). Con s 4000000 = 4MB
private void btnIncreaseQuota_Click(object sender,RoutedEventArgs e){
using (var store =IsolatedStorageFile.GetUserStoreForApplication()){
if (store.IncreaseQuotaTo(4000000)){
GetStorageData();}
else{
// The user rejected the request to increase thequota size}
}}
Ch rng TryIncreaseQuotaTo() tr v kiu Boolean, ph thuc vo vic ngidng c ng tng gim kch thc gii hn khng.
CHNG 10 SYSTEM INTEGRATION AND DEVICE SUPPORT
1. Notification (Toast) API:Toast l mt ca s nh thng bo thng tin v nhiu loi s kin khc nhau. Mc nh th
ca s thng bo ny s hin th gc phi di mn hnh i vi windows v gc phi trn mnhnh.Toast notification tr nn rt thng dng trong vic thit k phn mm v vy n c thmvo trong Silverlight 4. Ta s kho st k hn thng qua v d sau y:
Trong v d sau y, ta s to mt Silverlight trong thc hin nhn mt button sau toast s hin th trong vng 5s.
a. To mt Silverlight tn l NotifyApplication ng thi to mt ASP.NET Web vi tnNotifyApplication.Web.
8/6/2019 Do an Tim Hieu Silver Light 4
87/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 87
b. Thm mt Button vo LayoutRoot vi cc thuc tnh Width=200, Height=30 vContent=Display Notify Window v to s kin Button_Click.
c. Tip theo ta to mi UserControl nh ngha ca s hin th thng tin khi thc hin skin Click vo Button. to mi user control ta Click phi vo Projectchn AddNewItem v chn Silverlight UserControl t tn l NotifyWindow.xaml.
d. Sau khi to NotifyWindow ta thit t LayoutRoot vi Width=300, Height=75 vthm cc thnh phn sau y:
8/6/2019 Do an Tim Hieu Silver Light 4
88/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 88
e.
By gi ta s ci t s kin Button_C
lick cho hin th ca s Notification Toast.Trc tin, Notification ch chy bn ngoi trnh duyt (Out of Browser). Ta s kimtra iu ny thng qua thuc tnh App.Current.IsRunningOfBrowser.
8/6/2019 Do an Tim Hieu Silver Light 4
89/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 89
f. Tip theo, ta to i tng thuc NotificationWindow v NotifyWindow. Ta cn thitlp chnh xc kch thc Width v Height ca NotificaitionWindow bng viNotifyWindow. Cui cng, ta thit lp ni dung thng bo l User ControlNotifyWindow v thc hin phng thc Show ca NotificationWindow vi tham struyn vo l thi gian 5s.
g. kim tra ng dng, ta cn chy Silverlight bn ngoi trnh duyt, thit t taClick phi Project chn Properties sau nh du vo Enable runningapplicationout of browser.
h. Cui cng ta lu li Project v nhn F5 chy ng dng v xem kt qu.
8/6/2019 Do an Tim Hieu Silver Light 4
90/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 90
2. Webcam/Microphone Access:Bt u t phin bn Silverlight 4.0, ta c th truy cp v s dng Webcam/Microphonetrn my tnh ca ngi s dng. bit r hn iu ny, chng ta s xem xt chc nng ny v
mt v d v n.
CaptureDeviceConfiguration l 1 lp do Silverlight cung cp, lp ny h tr ngi dngcc tnh nng truy cp v s dng Webcam/Microphone. Ngoi ra Silverlight cn h tr cho talp CaptureSource, lp h tr cc tnh nng cho php thu li hnh nh/m thanh lu li di ccdng file thng dng.
hiu r v cch s dng cng nh chc nng ca 2 lp trn ta xt qua v d sau y:
a.
To mt Project vi tn l CameraAccess v Web host ng dng ln tn lCameraAccess.Web.
b. Ta thc hin thit k giao din ging nh sau:
8/6/2019 Do an Tim Hieu Silver Light 4
91/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 91
c. Sau khi thit k giao din ta tin hnh ci t code, ta to 2 s kin tng ng vi 2button l StartCapture v StopCapture, ng thi thm mt bin CaptureSource.
8/6/2019 Do an Tim Hieu Silver Light 4
92/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 92
d. Tip theo ta ci t hm StartCapture, u tin ta kim tra xem thit b ang c sdng nu c th ta phi dng vic s dng li. Sau , ta to mi i tng thucCaptureSource v thit lp VideoCaptureSystem v AudioCaptureSystem gnvi thit
b video/audio mc nh ca h thng.
e. Sau khi ci t thit b ta to mt VideoBrush v thit t source l CaptureSourcethng qua thuc tnh Fill. Ta s s dng VideoBrush hin th hnh nh lnRectangle.
f. c th s dng thit b ta cn phi c s chp thun t ngi s dng. Nu khngc s chp thun ta cn yu cu quyn truy cp. Sau khi c s chp thun ta s thchin thu d liu t thit b.
8/6/2019 Do an Tim Hieu Silver Light 4
93/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 93
g. dng vic thu d liu ta cn kim tra xem source cn tn ti khng, nu c th ta sthc hin vic dng thu d liu li.
h. Cui cng ta nhn F5 tin hnh test.
3. COM InteroperabilityMt trong nhng thun li ca ng dng Client l kh nng s dng c nhng ng
dng v th vin c ci t sn. Silverlight 4 cho php ta truy cp v s dng cc COM cci t sn, AutomationFactory l lp h tr vic to mt i tng truy cp v s dng ccCOM c sn. Xt v d sau y thy c th vic s dng AutomationFactory:
a. To mt Project vi tn l InvokeNotepad v Web host ng dng ln tn lInvokeNotepad.Web.
b. Sau khi to xong Project, ta thit k giao din ca Silverlight nh sau:
8/6/2019 Do an Tim Hieu Silver Light 4
94/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 94
c. Tip theo ta ci t code behind trong Mainpage.xaml.cs. u tin ta cn kim tra ngdng Silverlight c c php truy cp vo my ngi s dng v s dng cc thnh phn trn my. Tip theo ta s dng AutomationFactory to ra i tngWScript.Shell COM. Cui cng ta s dng phng thc Run thc hin lnh.
d. COM Interoperpability i hi ng dng phi chy OOB v c s cho php ca ngis dng v vy ta cn thit t Silverlight chy OOB. thit t ta Click phi Projectchn Properties sau nh du vo Enable running application out oh browser.
e. Tip theo Click vo Out of Browser Settings, sau Click chn Require elevatedtrust when running outside the browser.
8/6/2019 Do an Tim Hieu Silver Light 4
95/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 95
f. Nhn F5 chy chng trnh. Khi Silverlight hin ra, ta nhn vo Invoke Notepad ths khng c g xy ra. iu ny l do COM Interoperability ch hot ng khiSilverlight chy OOB. V vy ta s tin hnh ci t cho Silverlight chy ngoi trnhduyt bng cch click phi trn Silverlight chn Install InvokeNotepad Applicationonto this computer
g. Sau khi ci t xong Silverlight s t ng chy, khi ta click vo Invoke Notepadv xem kt qu thc hin c.
8/6/2019 Do an Tim Hieu Silver Light 4
96/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 96
4. Dropping Files on Silverlight Application:Mt trong nhng hn ch m Web Application hin nay chnh l vic upload file vi s
lng nhiu, chng ta buc phi chn tm cc file m khng th n thun ko th chng votrnh duyt. Silverlight 4 b sung thm cc API h tr tnh nng ko th file vo cc thnhphn ca mnh.
s dng tnh nng ko th file th ta ch cn thm mt thuc tnh AllowDrop v thitt gi tr l true cho mi element ca Silverlight. Khi thit t AllowDrop th cc element s cthm cc s kin x l v Drag and Drop: DragEnter, DragLeave and DragOver. Nhng s kinchnh l Drop xy ra khi ngi dng th 1 file vo element.
Drop Event: xy ra khi mt file c th vo control vi thuc tnh AllowDrop l true.y l s kin chnh cho php Silverlight ly thng tin v file hay cc file thng qua thuc tnhDropEventArgs.Data.
Xt v d v Enabling an Application As a Drop Targeta. To mi mt Project vi tn l SilverlightDropTarget v Web host ng dng ln tn
l SilverlightDropTarget.Webb. Ta thit k giao din chng trnh nh sau: u tin thm thuc tnh AllowDrop cho
Grid vi gi tr l true, tip theo ta thm mt TextBlock c tn l FileContents vi mcch dng hin th ni dung file text.
c.
K n ta tin hnh vit code-behind x l. Trong MainPage.xaml.cs ta thm thamchiu ti System.IO v c s dng n truy xut thit b, tip theo trong hmMainPage() ta thm s kin Drop cho LayoutRoot.
d. Tip theo ci t trong hm s kin LayoutRoot_Drop, u tin ta kim tra chcchn rng d liu c th vo ng dng. Tip theo, nu c d liu ta s to mtIDataObject ly d liu thng qua thuc tnh DragEventArgs.Data. ly danh
sch cc file ta s dng phng thc GetData ca IdataObject.
8/6/2019 Do an Tim Hieu Silver Light 4
97/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 97
e. Ta tin hnh duyt qua tt c cc file, nu l file .txt ta s c v hin th ni dung lnTextBlock.
f. Cui cng nhn F5 chy ng dng.
8/6/2019 Do an Tim Hieu Silver Light 4
98/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 98
CHNG 11: EXPRESSIO
N BLENDVisual Studio 2010 l cng c dng cho vic lp trnh Silverlight v code ng thi h trdesign. H tr design trong Visual Studio 2010 ch l giao din c bn v rt kh thc hin.Microsoft ban hnh mt sn phm tn Expression Blend y l b cng c dng cho cc designerthit k giao din cho Silverlight v WPF. ng thi, Expression Blend gip cho vic tch bitcng vic thit k v vit m gia ngi lp trnh v nh thit k.
1. Cc tnh nng trong Expression Blend:y Visual XAML editor: Blend cung cp mt trnh son tho vn bn h tr cho vic
son tho ngn ng XAML mt cch d dng nht bao gm h tr ti a
IntelliSense, thit k v chnh sa Style cho cc ng dng Silverlight.
y Visual Studio 2010 integration: V c s tch bit gia phn lp trnh v thit k nnBlend h tr kh nng lin kt qua li m ngun vi Visual Studio 2010. S lin ktqua li ging ng b giao din v m mt cch d dng.
y Split-view mode:Silverlight s dng ngn ng XAML to nn giao din, v vy victhit k cn lm vic vi giao din v c v m XAML. Blend h tr cho ngi thitk ch 2 view, cho php va lm vic giao din va thao tc trn XAML mt cchtin li nht.
y Visual State Manager and template editing support:Blend h tr mt cch d dngto ra cc phn, trng thi hay chnh sa cc Control.
y Timeline:Trong Silverlight, animation (hiu ng chuyn ng) da trn cc keyframeca storyboard. Cc keyframe c sp xp trn timeline bao gm im bt u v
8/6/2019 Do an Tim Hieu Silver Light 4
99/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 99
kt thc. Expression Blend h tr panel Objects and Timeline, panel ny cho php tac th lm vic v thit t mt cch d dng hn.
S lc v lm vic trong Expression Blend:
a. Khi ng Microsoft Expression Blend ln, ta s thy c mn hnh khi ng,mn hnh s xut hin mi khi khi ng, nu khng mun n xut hin ta bcheckbox Run at startup.
b. to mi mt Project ta chn File -> New Project, khi s xut hin mt hpthoi New Project.
c. Trong hp thoi ny ta chn loi Project m bn c mun to v t tn cho n. y ta chn Silverlight Application + Website vi tn l BlendProjects.
8/6/2019 Do an Tim Hieu Silver Light 4
100/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 100
d. Mc nh, Expression Blend s m file MainPage.xaml. Giao din lm vic mc nhca Expression Blend l ch split-view gia thit k v m xaml.
8/6/2019 Do an Tim Hieu Silver Light 4
101/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 101
chnh sa code hay lp trnh code ta s tin hnh chuyn qua Visual Studio thchin. Trong Project Panel ta click phi project chn Edit in Visual Studio.
e. Trong Visual Studio, ta thay i nh trong file MainPage.xaml nh sau:
f. Sau lu li v chuyn sang Expression Blend, Blend s hi bn v c s thay icc file nn c tin hnh ng b khng. Ta chn Yes ng b code va edit bn
Visual Studio.
8/6/2019 Do an Tim Hieu Silver Light 4
102/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 102
2. Workspace:A. Toolbox
Expression Blend Toolbox cung cp y cc cng c cho php thm v thao tc cci tng vi ng dng ca bn. B cng c c cha thnh 5 nhm khc nhau: Selection,View, Brush, Object, v Asset.
Selection
View
Brush
Object
Asset
8/6/2019 Do an Tim Hieu Silver Light 4
103/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 103
Khi click vo Asset Tool ca s Asset Library hin th h thng cc Control caSilverlight.
B.Project PanelTng t nh ca Visual Studio, hin th tt c file trong Project, cc Reference v
Properties.
8/6/2019 Do an Tim Hieu Silver Light 4
104/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 104
C.Properties PanelProperties Panel cho php ngi sdng xem v chnh sa cc thuc tnhca i tng.N c chia ra lmnhiu phn khc nhau vi cc loithuc tnh cng loi.Cc phn ny shin th ty thuc vo cc i tngbn chn la.
Ngoi ra, ta c th lc danh sch ccthuc tnh thng qua Search Box.
8/6/2019 Do an Tim Hieu Silver Light 4
105/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 105
D.Objects and Timeline Panel:Tt c cc Object bn thm vo Silverlight u s c th hin bn trong panel
Objects and Timeline.Cc Object phc hp cha cc object khc bn trong s c th hin didng cy, c th thu gn v m rng ra mt cch d dng.
3. Laying Out an Application:Silverlight cc nhiu loi Layout khc nhau, Expression Blend h tr tt cho vic thm,
chnh sa v x l cc Layout. Ta s tm hiu thng qua v d sau y:
Lm vic vi Grid Control trong Expression Blend
Bc 1: Trong Expression Blend, ta to mi Silverlight Application + Website vi tn lBlendLayout.
Bc 2: u tin, ta s nh ngha Column, lm iu ny bn ch cn n gin Clickvo ruler nm ngang pha trn cch bn tri mt khong 25% trn mn hnh thit
k. Khi bn Click th m XAML bn di t ng thmv 2
8/6/2019 Do an Tim Hieu Silver Light 4
106/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 106
Bc 3: Tip theo ta to cc dng, tng t bn Click vo ruler ng 2 ln sao cho chngcch trn v cch di 10%.
8/6/2019 Do an Tim Hieu Silver Light 4
107/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 107
Bc 4: Tip n ta to mt Grid khc nm bn trong Layout, thc hin ta chn itng Grid panel Objects and Timeline, sau double-click vo Grid controltrong Toolbox.
8/6/2019 Do an Tim Hieu Silver Light 4
108/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 108
Bc 5: Vi Grid va mi to ta s chnh sa thuc tnh thng qua panel Properties. Tachn Grid va to trong panel Objects and Timeline, sau thit lp cc thngs ti panel Properties.
8/6/2019 Do an Tim Hieu Silver Light 4
109/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Trang 109
Bc 6: Sau khi thit lp Properties, ta thm mt column vo Grid .
Bc 7: Sau khi to mt column, ta vo Search Box ca Properties g Definition. Blends lc cho ta cc thuc tnh lin quan n t kha.
Bc 8:Ta chn RowDefinitions, trong hp thoi RowDefinitions ta chn Add anotheritem nh ngha thm 2 RowDefinition vi Height l 25 v 75. Sau khi thmxong ta nhn Ok hon tt.
8/6/2019 Do an Tim Hieu Silver Light 4
110/110
Trn Bo Anh - 0865006 Hong Trng ip - 0865030 Nguyn Hu Phc - 0865110
Bc 9:Sau khi hon tt ht code t ng sinh ra trong file MainPage.xaml nh sau: