-WindowsPhone7 Deverloper Tools -Visual Studio 2010 Utimate+ Visual Studio 2010 SP1 -MSDN for WindowsPhone đ tham kh o... Vì các lý do trên nên không th dùng tính n ng zoom b ng cách nh
Trang 1L P : TH08B2
TP.HCM 02/2012
Trang 2L I C M N!
hoàn thành đ án ngành này, l i đ u tiên tôi xin chân thành
c m n các th y giáo, cô giáo Khoa Công ngh thông tin Tr ng i
h c M TPHCM, nh ng ng i đã d y d , trang b cho tôi nh ng kí n
th c b ích trong b n n m h c v a qua
Xin chân thành g i l i c m n sâu s c nh t đ n th y H Quang
Kh i, ng i đã t n tình giúp đ , h ng d n tôi trong su t quá trình
th c hi n c ng nh hoàn thành bài t p môn án ngành
M t l n n a xin chân thành c m n !
TP HCM ngày 10 tháng 2 n m 2012
Trang 3M C L C
I.GI I THI U TÀI: 2
II.KI N TH C CÓ C: 2
1.WindowsPhone là gì? 2
2.Nh ng thi t b nào s ch y đ c WindowsPhone? 3
3.C u hình c b n đ ch y các ph n m m visual studio 4
4.Các công c và tools c n thi t dành cho l p trình trên n n t ng WP7 4
5.Làm demo m t s ng d ng t đ n gi n cho WP7 6
6.Công c ExpressBlend: 6
III.N I DUNG CÔNG VI C: 8
1.VI T NG D NG DUY T HÌNH C B N 8
2.VI T NG D NG DUY T HÌNH KI U PANAROMA 17
IV K T LU N: 24
V TÀI LI U THAM KH O: 25
Trang 4I.GI I THI U TÀI:
WindowsPhone là n n t ng dành cho đi n tho i theo xu h ng c m ng hi n nay c a Microsoft, s d ng ngôn ng C#, VB do tính thân thi n, g n g i, g n gi ng nh các môn h c
L p trình trên ngôn ng C tr c đây nên em quy t đ nh ch n WindowsPhone7 làm đ tài nghiên c u Trong đ tài này em b t đ u nghiên c u t nh ng đi u c b n nh t v WindowsPhone 7, nh ng đi m này s l n l t đ c gi i thi u sau m c này
Trang 52.Nh ng thi t b nào s ch y đ c WindowsPhone?
T t c các thi t b tho mãn các yêu c u v ph n c ng c b n c a Microsoft bao g m: cpu ki n trúc ARM A8-A9-A15 >=1Ghz/core Ram >=512Mb, camera >=5Mpx, b nh trong>=8Gb,Bluetool,Wifi,GPS, gia t c k và màn hình c m ng đa đi m và cu i cùng t t nhiên s là nhà s n xu t ph i đ ng kí và mua b n quy n WP dành cho thi t b c a h
Các yêu c u trên nh m m c đích t i u cho thi t b WP c m ng ch y m t mà và đáp ng
đ y đ các yêu c u mà smartphone c n có(ch y đa nhi m, kh n ng k t n i, xoay màn hình,
c m ng chuy n đ ng…), nh m tránh s phân m nh thi t b quá sâu mà Android đang m c
ph i, đ a ra c u hình chung qua đó thi t b WP c a các hãng khác nhau (HTC,Samsung,Nokia,LG ) đ u s ch y t t các ng d ng game mà l p trình viên không ph i
m t công post l i do kích th c màn hình khác nhau nh Android đang m c ph i
S d ng ki n trúc ARM b i vì đây là ki n trúc CPU s n xu t d a trên ti n trình bán d n UltraLowPower (ULV)r t ti t ki m đi n n ng, 1 nhân cortex A8 1Ghz đóng gói bao g m nhi u
Trang 6thành ph n khác nh chip đ h a, các chip đi u khi n I/O, chip giãi mã âm thanh… ch s
d ng ~0.3W/h Chính đ c đi m này mang l i l i th v th i l ng s d ng Pin t t nh t mà các
vi x lý d a trên ki n trúc x86 không th nào có đ c
3.C u hình c b n đ ch y các ph n m m visual studio
Windows 7 ho c Vista SP2,
Ram>=2Gb,
HDD>=4Gb,
CPU ki n trúc x86 AMD ho c Intel dualcore tr lên, có h tr o hóa
4.Các công c và tools c n thi t dành cho l p trình trên n n t ng WP7
-WindowsPhone7 Deverloper Tools
-Visual Studio 2010 Utimate+ Visual Studio 2010 SP1
-MSDN for WindowsPhone đ tham kh o
T t c các tools trên có th d dàng download theo đ a ch sau:
http://www.microsoft.com/download/en/default.aspx?WT.mc_id=MSCOM_HP_US_Nav_Dow nloads
Trang 71 c đi m m i c a phiên b n nâng c p Mango:
Trang 85.Làm demo m t s ng d ng t đ n gi n cho WP7
Vi t thành công các demo nh p xu t kí t (HelloWorld),
T o style chung cho các control(màu s c, kích th c ch …)
các control ví d t t c textbox trong ng d ng s th a h ng style ch màu đ nh là thu c tính m c đ nh, tr khi ta tùy ch nh riêng l t ng control å Có th dùng style đ set control m t các ti n l i, th ng nh t style thi t k
6.Công c ExpressBlend:
Công c ExpressBlend r t ti n l i đ tùy ch nh giao di n WP, ngoài ra còn thêm r t nhi u tùy
ch n phong phú v các hi u ng nh tùy bi n khi ch ng trình đ c kh i đ ng, th c thi å Nên dùng ExpressBlend đ thi t k giao di n ch ng trình c ng nh các hi u ng cho d dàng
và tr c quan
Trang 9Giáo di n chính c a ExpressBlend
Trang 10III.N I DUNG CÔNG VI C:
1.VI T NG D NG DUY T HÌNH C B N
Giao di n ch ng trình:
Trang 11TextBlock có ch c n ng hi n th kí t mà không cho ng i dùng thao tác trên textblock
<TextBlock Text="SLIDESHOW" FontSize="26"
FontWeight="Bold"></TextBlock>
<TextBlock Text="XEM HÌNH SLIDESHOW" FontSize="20" ></TextBlock>
<TextBlock Name="slidestate" FontSize="30"
FontWeight="Bold"></TextBlock>
C ng nh textbox, textblock có các thu c tính ch nh v font ch , size…và thu c tính xác đ nh
là ch c n ng h tr c a h đi u hành WP giúp trình bày các button và menu tr c quan, ng
d ng này ta add 4 button t trái qua ph i g m:
Trang 14Ngoài ra ng d ng s d ng thêm storyboard đ t o hi u ng chuy n hình t m đ n rõ d n t o
Trang 15Trên giao di n ExpressBlend ta m Project c n làm vi c(t o storyboar)
Click d u + đ add thêm Storyboard sau đó đ t tên cho storyboard
đây v n đ c n quan tâm nh t là scrip làm nh hình sau m i v ch s t ng ng v i 1s
đ ng h , và đ i t ng c n làm hi u ng s add vào d i layoutRoot Th ng là hình nh, sau
đó t ng giây ta s ch nh đ m c a hình nh t 0->100, khi ch y s t o ra hi u ng chuy n hình t m đ n rõ
Ta ch nh giây th nh t Opacity v i giá tr b ng 10, t ng ng 2-40, 3-80,4-100
Trang 16B c cu i cùng, ta ch n s ki n kích ho t storyboard(mouseclick, load object ), ch n source,
ví d này là khung nh, các thông s tr c quan và d dàng ch nh nh hình trên
Trang 17\
Phóng to và thu nh :
T ng ho c gi m kích th c các chi u ngang và cao c a imagebox đ phóng to hay thu nh
private void Button_ZoomIn (object sender, GestureEventArgs e)
Trang 18khunganh.Height = 300;
}
Xem hình Slideshow:
timer = new DispatcherTimer();
timer.Interval = TimeSpan.FromSeconds(3);
timer.Tick += new EventHandler(timer_Tick);
Khai báo m t timer, sau 3 giây thì s g i hàm time_tick
void timer_Tick(object sender, EventArgs e)
Trang 192.VI T NG D NG DUY T HÌNH KI U PANAROMA
Giao di n chính:
Dùng giao di n ki u Panaroma, nguyên ch ng trình là m t Panaroma, trong Panaroma chính
có th thêm nhi u Panaroma con, s l ng tùy thu c vào s trang, ví d mu n 5 trang con thì
ta t o 6 Panaroma, g m 1 Panaroma n n và 5 Panaroma con
Trong m i Panaroma ta dùng stackpanel đ chia gi ng nh các Table , m c đ nh stack sau s bên d i stack tr c, ta c n thêm thu c tính Orientation="Horizontal" đ canh ngang
Vì giao di n panaroma ch cho dùng m t control trong 1 ô stack nên b t bu c ph i dùng ImageBox đ thay th , Microsoft làm vi c này vì đ đ m b o th ng nh t gi ng giao di n Metro
c a hãng
Trang 20Ch nh thu c tính SupportedOrientations="PortraitOrLandscape" đ có th dùng
c m bi n xoay ngang màn hình
Trang 22Hai hình đ t c nh nhau cho ta th y rõ b c tranh panaroma
Trang 23Button slideshow:
Khai báo m t bi n bool slideshow đ làm bi n trung gian:
private void StackPanel_MouseLeftButtonUp(object sender,
Trang 24Demo ng d ng này, ta không th set t l khung hình m c đ nh(480x800) đ c vì nh th
s làm sai t l chi u cao và r ng khi đi n tho i đ t ch đ Portrait và Landscape t c là khi chuy n thì chi u ngang = 480 s chuy n thành 800 gây sai
Khi dùng th c m bi n gia t c đ set các chi u thì l i, theo tài li u Microsoft thì c m bi n gia
t c không th tác đ ng đ n UserInterface
Trang 25
Vì các lý do trên nên không th dùng tính n ng zoom b ng cách nh ng d ng demo 1,
Microsoft đã h tr zoom b ng đa đi m trong imagebox Ta đ thông s m c đ nh là không set các chi u r ng và cao đ khi chuy n gi a Portrait và Landscape hình nh s set full màn hình
<Image Name="khunganh" VerticalAlignment="Center" Stretch="Uniform"
Trang 26IV K T LU N
Qua bài đ án môn h c v a qua, b n thân em có nh n xét nh sau:
WindowsPhone là n n t ng m i, đ c Microsoft đ u t m nh, l p trình d dàng, tr c quan, Microsoft đã m r ng các th vi n SliverLight, XNA và công c ExpressionBlend đ tùy bi n giao di n, các tài li u h ng d n c a Microsoft chi ti t nh ng khi đ c vào c n có v n ki n th c
l p trình c ng nh ngôn ng l p trình tr c đó m i n m b t đ c (ch a d n m b t ví d ) B n thân em c ng đã c g ng h t s c trong vi c tìm hi u các ki n th c liên quan đ n bài t p này, và
đã làm demo thành công các yêu c u c b n c a m t ch ng trình duy t hình d i s h ng
d n, t v n các ch c n ng c a gi ng viên h ng d n là th y H Quang Kh i, đó là ch n hình show ra t b nh l u tr , phóng to, thu nh , xoay hình b ng c m bi n, hi u ng chuy n ,fit hình v a t l màn hình c ng nh ch c n ng xem hình slideshow
ó là nh ng đi u đã làm đ c, còn nh ng đi u ch a làm đ c nh sau: ch a làm đ c thêm các hi u ng chuy n hình khác đ ch ng trình thêm sinh đ ng Ch a hi u đ c và c ng ch a tìm đ c thu t toán tính toàn làm sao đ d i các pixel khi xoay hình Không ép ki u, làm tròn
đ c s Double sang Int16
Trang 27V TÀI LI U THAM KH O
u tiên không th thi u là lo t video d y l p trình WindowsPhone giúp làm quen v i
windowsPhone t i phone-7-up-bai-16-a-830617/
http://www.tinhte.vn/f11/series-video-huong-dan-lap-trinh-tren-windows-Nh làm xong 15 bài t p này mà em đã n m đ c m t l ng ki n th c c b n đ l p trình windowsphone.(bài 1 là h ng d n cài đ t các tool l p trình nh đã gi i thi u ph n đ u)
Ti p theo là tài li u tr c tuy n MSDN
Trang 28Trong đó ph n tham kh o mang giá tr l n nh t là bài nói v các c m bi n trong
windowsphone quan tr ng nh t là c m bi n gia t c
Riêng ph n c m bi n gia t c, em còn h c thêm đ c cách khai báo 1 timer dùng cho
slideshow, đi u mà tr c đó không tìm ra đ c vì cách dùng timer khác nhi u v i C# b môn l p trình giao di n
Trang 29<!
Copyright (c) 2011 Microsoft Corporation. All rights reserved.
Use of this sample source code is subject to the terms of the Microsoft license
agreement under which you licensed this sample source code and is provided AS IS.
If you did not accept the terms of the license agreement, you are not authorized
to use this sample source code. For the terms of the license, please see the
Trang 30FontSize="{StaticResource PhoneFontSizeNormal}"
Foreground="{StaticResource PhoneForegroundBrush}"
SupportedOrientations="Portrait" Orientation="Portrait"
mc:Ignorable="d" d:DesignHeight="696" d:DesignWidth="480"
shell:SystemTray.IsVisible="True">
<StackPanel x:Name="TitlePanel" Grid.Row="0"
Margin="12,17,0,28">
<TextBlock x:Name="ApplicationTitle" Text="MY
APPLICATION" Style="{StaticResource PhoneTextNormalStyle}"/>
<TextBlock x:Name="PageTitle" Text="page name"
Margin="9, 7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
</StackPanel>
<! ContentPanel place additional content here >
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<StackPanel Orientation="Vertical">
<StackPanel Orientation="Horizontal">
<TextBlock>status:</TextBlock>
<TextBlock Name="statusTextBlock"></TextBlock>
Trang 31HorizontalAlignment="Center" Name="yTextBlock" Text="Y: 1.0"
VerticalAlignment="Top" Foreground="Green" FontSize="28"
FontWeight="Bold"/>
<TextBlock Height="30"
HorizontalAlignment="Right" Name="zTextBlock" Text="Z: 1.0"
VerticalAlignment="Top" Foreground="Blue" FontSize="28"
agreement under which you licensed this sample source code and is provided AS IS.
If you did not accept the terms of the license agreement, you are not authorized
to use this sample source code. For the terms of the license, please see the
license agreement between you and Microsoft.
To see all Code Samples for Windows Phone, visit
http://go.microsoft.com/fwlink/?LinkID=219604
Trang 32// the accelerometer sensor. Alert the user and hide the
Trang 33// Stop data acquisition from the accelerometer. accelerometer.Stop();
timer.Stop();
statusTextBlock.Text = "accelerometer stopped.";
// The TimeBetweenUpdates property reflects the actual rate.
Trang 34void accelerometer_CurrentValueChanged(object sender,
SensorReadingEventArgs<AccelerometerReading> e)
Trang 35Ngoài ra án còn tham kh o thêm m t s Demo nh t i website http://phamnguyen.info/
Và cu i cùng xin c m n s giúp đ c a th y H Quang Kh i, giáo viên h ng d n và các b n
c a em, nh ng ng i đã có nh ng ý ki n đóng góp c ng nh ch d n giúp em hoàn thành môn
án ngành này!