do an tim hieu silver light 4

Upload: hoang-trong-diep

Post on 07-Apr-2018

221 views

Category:

Documents


0 download

TRANSCRIPT

  • 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: