Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 11

Gii thiu

Trong cc ng dng hin i, giao dng ngi dng trc quan chim v tr ht sc quan trng. Vic trnh din ng thng tin, theo ng cch v vo ng thi im c th em li nhng gi tr kinh t x hi ng k. Ngi s dng thng thch nhng phn mm c giao din trc quan, d s dng, d tng tc, t thao tc phc tp, c mt giao din ngi dng nh vy, vic tch hp hnh nh, m thanh, vn bn v cc thnh phn trc quan khch thnh mt th thng nht ng vai tr quan trng. V d mt giao din gm cc thnh phn nh sau: Hin th text v hnh nh ngi dng Hin th v cp nht lin tc hnh nh 2 chiu nh cc biu , trng thi Hin th hnh nh 3 chiu Trnh din video. C kh nng hot ng nh mt ng dng desktop. ng thi c th chy trn trnh duyt web c gii hn v phn quyn, cho php truy cp t xa qua internet.

Vi cng ngh trc 2006, ta s gp kh khn nu xy dng ng dng nh vy bi cc nguyn nhn: C nhiu cch khc nhau lm vic vi hnh nh, m thanh nhng s gp kh khn trong qu trnh pht trin v bo tr Thit k mt giao din nh vy i hi ngi thit k giao din chuyn nghip, bi v lp trnh vin n thun s khng c cc k nng cn thit. Vic cung cp mt giao din c th chy c nh mt ng dng desktop v ng thi chy c trn trnh duyt i hi phi xy dng hai phin bn c lp s dng hai cng ngh khc nhau.

WPF ra i l xy dng mt nn tng chung gii quyt nhng thch thc nu trn

WPF l g?
WPF, vit tt l Windows Presentation Foundation, l h thng API mi h tr vic xy dng giao din ho trn nn Windows. c xem l th h k tip ca WinForms, WPF tng cng kh nng lp trnh giao din ca lp trnh vin bng cch cung cp cc API cho php tn dng nhng li th v a phng tin hin i. L mt phn ca .NET Framework 3.0, WPF sn c trong Windows Vista, Windows 7 v Windows Server 2008. WPF c 3 mc tiu c bn: Cung cp nn tng thng nht xy dng giao din ngi dng Cho php ngi lp trnh v ngi thit k giao din lm vic cng nhau mt cch d dng Cung cp mt cng ngh chung xy dng giao din ngi dng trn c Windows v trnh duyt Web.

Bng so snh cc chc nng trong WPF WPF cung cp nhiu tnh nng lp trnh giao din trong cng mt cng ngh n nht. iu ny gip cho qu trnh to giao din ngi dng d dng hn. Ngoi vic hp nht nhiu tnh nng li vi nhau, WPF cn c u im l c th tn dng c sc mnh v phn cng ca cng ngh hin i ngy nay nh card ho. WPF da hon ton trn ho vector, cho php nng cao cht lng hnh nh trong ng dng hn ho bitmap. Vi tt c cc u im trn, WPF n gin ho cng vic lp trnh giao din. WPF gp phn lm gim chi ph cho vic xy dng v bo tr ng dng. V bng cch cho php tch hp a dng cch biu din thng tin trn giao din ngi dng, WPF cng gp phn nng cao cht lng sn phm.

XAML
WPF a ra ngn ng t t eXtensible Application Makeup Language (XAML). XAML nh ra cc phn t giao din nh button, label, textbox m t giao din ca ngi dng. Vic pht trin giao din c lp hon ton vi lp trnh chc nng nn ngi thit k v lp trnh c th lm vic vi nhau mt cch d dng. Ngi thit k c th dng cng c (nh Microsoft Expression Interactive Designer) to nhng giao din thng qua ngn ng XAML. V Microsoft Visual Studio c th d dng s dng nhng on m t giao din bng XAML v to giao din ngi dng mt cch chnh xc nh nhng g m t.

Cng ngh chung cho giao din trn Windows v trn trnh duyt.
Trong thi i internet ang pht trin mnh, cc ng dng chy trn trnh duyt ngy mt pht trin. nn ng dng c th chy trn trnh duyt web s m ra thm th trng ngi s dng. Tuy nhin, vi cng ngh truyn thng, ng dng desktop v ng dng trn trnh duyt web s dng cng ngh hon ton khc nhau. V th nu s dng cng ngh truyn thng, ta s phi thc hin 2 phin bn c lp s lm tn chi ph v thi gian cho vic thc hin. Vi WPF, lp trnh vin c th to ng dng trnh duyt XAML (XBAP) s dng WPF chy trn trnh duyt Web. Ngoi ra, cng on code ny c th c dng chy c lp trn Windows.

ng dng WPF chy c lp trn windows

ng dng nu trn khi chy trn trnh duyt Internet Explorer Vic cng mt giao din duy nht c th chy c trn c Windows v trnh duyt gip gim khi lng ln cng vic nu phi pht trin 2 giao din song song. Ngoi ra cn c li th v cng ngh, lp trnh vin ch cn c kin thc v WPF l c th s dng c 2 trng hp.

Cc thnh phn ca WPF


WPF t chc cc chc nng theo mt nhm namespace cng trc thuc System.Windows. L ng dng windows hay XBAP, mt ng dng WPF bao gi cng l mt tp cc trang XAML v phn code tng ng c vit bng c# hoc visual basic. Tt c cc ng dng u k tha t lp chun Application ca WPF Nhn ca WPF l c ch to sinh ha da trn vector v c lp vi phn gii nhm tn dng nhng li th ca phn cng ha hin i. WPF c m rng vi cc tp tnh nng pht trin ng dng bao gm XAML, cc control, c ch mc ni d liu, layout, ha 2 chiu, ba chiu, hot ha, style, khun dng mu, vn bn, media, text v in n. WPF nm trong .NET Framework, nn ngoi ra, ng dng WPF c th kt hp cc thnh phn khc c trong th vin lp ca .NET Framework.

Cc thnh phn c bn ca WPF

Layout v control
Layout ng dng WPF s dng panel sp t cc thnh phn khc nhau trn giao din. Mi panel c th cha cc thnh phn khc nh button, textbox v c panel khc. C cc loi panel: Stack Panel StackPanel l loi layout d s dng v hu ch trong WPF. N cha cc thnh phn con ca n theo hng dc hoc hng ngang theo tuz chn. Loi ny thch hp biu din cc phn t con theo dng danh sch. Cc control nh ComboBox, ListBox, hoc Menu u s dng Stack Panel
<StackPanel> <Button Margin="10">Stack Panel</Button> <Button Margin="10">Dock Panel</Button> <Button Margin="10">Wrap Panel</Button> <Button Margin="10">Canvas Panel</Button> <Button Margin="10">Grip Panel</Button> </StackPanel>

Stack Panel Dock Panel Dock Panel l loi layout sp xp cc phn t ca n bng theo cc hng Tri, Phi, Trn, Di ca Panel. xc nh hng cho phn t, ta s dng thuc tnh DockPanel.Dock.
<DockPanel> <Button DockPanel.Dock="Top"> Top Button 1</Button> <Button DockPanel.Dock="Top">Top Button 2</Button> <Button DockPanel.Dock="Bottom">Bottom Button</Button> <Button DockPanel.Dock="Right"> Right Button</Button> <Button DockPanel.Dock="Left">Left Button</Button> <Button > Center Button </Button> </DockPanel>

Dock Panel

Wrap Panel Wrap Panel sp xp cc phn t theo chiu t tri sang phi, nu cc phn t y khong khng gian cho php theo chiu ngang th Wrap Panel s t xp phn t tip theo xung u dng tip theo.
<WrapPanel> <Button>Button</Button> <Button>Button</Button> <Button>Button</Button> <Button>Button</Button> <Button>Button</Button> <Button>Button</Button> <Button>Button</Button> <Button>Button</Button> </WrapPanel>

Wrap Panel Canvas Panel Cavas Panel l loi Panel cn bn nht ca WPF. Mi phn t ca n s c xc nh v tr c nh bng to . To c xc nh bng cc gi tr ca cc thuc tnh Canvas.Left, Canvas.Right, Canvas.Top, Canvas.Bottom: Loi Panel ny thng c s dng gom nhm cc hnh nh 2D li vi nhau v khng hay s dng cho cc thnh phn giao din ngi dng. y l vn quan trng v khi gn to c nh s gy ra vn khi thay i kch thc ca ng dng.
<Canvas> <Ellipse Height="60" Width="60" Canvas.Top="20" Canvas.Left="20" Fill="Blue" Stroke="Black"></Ellipse> <Ellipse Height="60" Width="60" Canvas.Top="50" Canvas.Left="50" Fill="Green" Stroke="Black"></Ellipse> </Canvas>

Canvas Panel Grid Panel Grid cho php ta phn nh cc dng v ct theo dng mt li k , v sau s sp t cc phn t UI vo cc ty . Grid s t ng chia u cc dng v ct (da trn kch thc ca phn ni dung). Tuy nhin, ta c th s dng du sao (*) phn nh kch thc theo t l hoc phn nh gi tr tuyt i v chiu cao hoc chiu rng cho hng v ct. Ta c th nhn bit s khc bit ca 2 dng phn nh kch thc nu trn bng cch thay i kch thc ca form cha panel Grid. Thm vo , thuc tnh ShowGridLines c t bng True cho php hin th cc ng k .
<Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="*" /> <RowDefinition Height="28" /> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="200" /> </Grid.ColumnDefinitions> <Label Grid.Row="0" Grid.Column="0" Content="Name:"/> <Label Grid.Row="1" Grid.Column="0" Content="E-Mail:"/> <Label Grid.Row="2" Grid.Column="0" Content="Comment:"/> <TextBox Grid.Column="1" Grid.Row="0" Margin="3" /> <TextBox Grid.Column="1" Grid.Row="1" Margin="3" /> <TextBox Grid.Column="1" Grid.Row="2" Margin="3" /> <Button Grid.Column="1" Grid.Row="3" HorizontalAlignment="Right" MinWidth="80" Margin="3" Content="Send" /> </Grid>

Grid Panel Control L mt cng ngh giao din, WPF cung cp mt s lng ln cc control. Cc control chun gm Button, Label, TextBox, ListBox, Menu, Slider, hay phc tp hn c SpellCheck, PasswordBox Cc s kin do ngi dng to ra, nh di chuyn chut hay n phm, c th c cc control nm bt v x l.

Style v template
Ging nh s dng Cascading Style Sheets (CSS) i vi HTML, vic nh ra thuc tnh ha cho cc i tng giao din mt ln, ri sau p dng li cho cc i tng khc cng loi thng rt tin li. WPF cng cung cp tnh nng tng t bng vic s dng thnh phn Style ca XAML. V d, kiu MyStyle c th c nh ngha nh sau:
<Window.Resources> <Style x:Key="MyStyle" TargetType="Button"> <Setter Property="Background" Value="Orange"/> <Setter Property="FontStyle" Value="Italic" /> <Setter Property="Padding" Value="8,4" /> <Setter Property="Margin" Value="4" /> </Style> </Window.Resources>

s dng style c nh ngha, ta dng thuc tnh Style={StaticResource StyleName}. V d:


<WrapPanel> <Button Style="{StaticResource MyStyle}">Styles</Button> <Button Style="{StaticResource MyStyle}">Are</Button> <Button Style="{StaticResource MyStyle}">Cool</Button> </WrapPanel>

Kt qu ca on m trn Style c th thay i giao din ca control nh mu sc, kiu ch, Nhng li khng th thay i c hnh dng ca control nh nt bm thay v hnh ch nht i thnh hnh eclipse. lm c iu ta phi s dng Template. Template trong WPF cho php tuz chnh cc th hin ca cc control hay cc tp d liu mt cch linh hot hn. V d nh thay i hnh dng ca mt nt bm, hoc phc tp hn l c mt tp danh sch ngi dng v ta mun trnh by danh sch theo nh ngha ring ca ta nh hin th hnh nh k bn h v tn. C 2 dng template Data Template: c s dng nh ngha cch trnh bi ca mt tp d liu Control Template: c s dng nh ngha li hnh dng ca cc control.

Text
Chc nng hin th text cng c ch { hn WPF. WPF tch hp mt s lng ln cch trnh by cc k t (typographic) v chc nng text rendering m phin bn trc khng c c. V y cng l cng ngh lp trnh giao din Windows u tin s dng nh dng OpenType, n h tr cc font OpenType, TrueType, v OpenType CFF (Compact Font Format). WPF h tr nhiu chc nng trnh by font ch OpenType (Typographic): Small Caps Ligatures Old-style numerals Kerning

Ngoi ra WPF text engine cn tch hp tnh nng kim tra chnh t cho vn bn. N cn h tr cc tnh nng nh cch khong gi cc dng vn bn, canh l vn bn, cc hiu ng k t nh bng, t vin, lm m, xoay ch

Tm li, text trong WPF khng cn l nhng k t thng thng n gin m c WPF chm cht nng cao kh nng trnh by, chuyn ti c nhiu ni dung ca cc k t t hiu qu cao trong thit k giao din ngi dng.

Vn bn (Document)
WPF h tr 3 loi vn bn: vn bn c nh (fixed document), vn bn c th thay i (flow/adaptive) v vn bn XPS(XML paper specification). Ngoi ra WPF cn h tr to, xem, sa i, ng gi vn bn.

Media
WPF tch hp c mt h thng xy dng giao din ngi dng vi nhng phn t c bn nh nh vector hoc raster (bitmap), m thanh v video. WPF cng cung cp mt h thng hiu ng hot hnh v h thng render hnh nh 2D/3D WPF cung cp nhng hnh nh c bn cho ho 2 chiu cng vi mt b c v (Brush), vit (pen), hnh hc (geometry) v transform. ho 3 chiu trong WPF l b th vin y c cng cp bi Direct 3D. WPF h tr cc nh dng nh ph bin: BMP, JPEG, PNG, TIFF, Windows media photo, GIF v ICON. Mc nh, WPF h tr cc nh dng phim WMV, MPEG, v mt vi file AVI. Nhng t khi n c Windows Media Player chy ngm bn di, WPF c th s dng tt c cc codec c ci cho n.

Hnh nh
WPF s dng API ca Windows Imageing Component (WIC) cho php cc lp trnh vin c th thao tc vi cc nh dng nh khc nhau.

Hiu ng hot hnh


WPF h tr cc hiu ng hot hnh da trn thi gian thc, khc hn vi phng thc da trn tng khung nh mt. Cc hiu ng chuyn ng c th c gi bi cc s kin bn ngoi, bao gm cc cc hnh ng ca ngi dng.

You might also like