Windows Phone 7中用好Silverlight開發(fā)利器
原創(chuàng)【51CTO獨(dú)家譯稿】我們曾經(jīng)介紹過“Silverlight for Windows Phone”是Windows Phone 7應(yīng)用程序開發(fā)平臺。除了Windows Phone 7的UI可以用Silverlight框架來設(shè)計,還可以用Silverlight創(chuàng)建Windows Phone 7的應(yīng)用程序。本文為一個國外.NET平臺開發(fā)者為Windows Phone 7創(chuàng)建的Silverlight應(yīng)用程序。
以下為譯文:
序言
Windows Phone 7 現(xiàn)在已經(jīng)開始銷售了,一些激進(jìn)的開發(fā)者已經(jīng)在使用一些開發(fā)者工具創(chuàng)建新一代的“Angry Birds”或 Netflix 應(yīng)用程序了。就像我們在過去的文章中提到的那樣,為了方便開發(fā)者創(chuàng)建 Windows Phone 應(yīng)用程序,微軟提供了一套免費(fèi)的開發(fā)者工具。Windows Phone的架構(gòu)可以讓開發(fā)者選擇兩種不同的框架來創(chuàng)建 Windows Phone 應(yīng)用程序/游戲的時候。在這篇文章中,我們主要關(guān)注使用 Silverlight 框架來創(chuàng)建 Windows Phone 應(yīng)用程序。
為什么要使用Silverlight?
我們不禁要問:為什么要使用Silverlight框架來創(chuàng)建 Windows Phone 應(yīng)用程序呢?
Silverlight(大家通常認(rèn)為Silverlight是Flash的直接競爭對手)可以讓W(xué)eb開發(fā)者們創(chuàng)建富互聯(lián)網(wǎng)應(yīng)用程序。對于那些需要良好的應(yīng)用程序邏輯或?qū)嵱眯缘某绦騺碚f,你肯定更喜歡使用Silverlight。
Microsoft Visual Studio中的Silverlight項目入門
在你安裝了 Windows Phone 開發(fā)者工具以后,你可以直接運(yùn)行Visual Studio Express for Windows Phone?;蛘?,如果你已經(jīng)安裝了 Visual Studio 2010 Pro SKUs,你可以運(yùn)行 Visual Studio 2010 Pro SKUs,然后選擇 “File” -> “New” -> “Project”,然后再從模板類型中選擇 “Silverlight for Windows Phone 7”。
圖1 選擇Silverlight for Windows Phone 7
這是一些你需要了解的模板。根據(jù)具體的應(yīng)用程序類型,你可以選擇最合適的模板。
對于我們的Demo來說,我們會選擇基礎(chǔ)的“Windows Phone Application”模板。把我們的項目命名成“WindowsPhoneApplicationDemo”,然后按“Enter”鍵來創(chuàng)建這個項目。
如果我們按了“Enter”鍵,IDE(Integrated development environment)會進(jìn)行一系列操作,并且創(chuàng)建一大推文件——Appl.xaml, MainPage.xaml 和其他圖像文件 ApplicationIcon.png, Background.png 和 SplashScreenImage.jpg 。
讓我們看看這些文件都是什么:
為了看到設(shè)計器視圖,可以在 MainPage.xaml 上右擊,然后點擊“View Designer”(如果設(shè)計器還不可用的話)。這是設(shè)計器的外觀,以及后臺代碼:
圖2 設(shè)計器視圖
對于我們的應(yīng)用程序來說,我們打算創(chuàng)建一個簡單的計算器,它可以讓用戶在攝氏溫度和華氏溫度之間進(jìn)行轉(zhuǎn)換。要開始這個工作,可以按“Ctrl + Alt + X”,彈出“ControlBox”,然后把兩個“TextBlock”控件,兩個“TextBox”控件,和一個“Button”控件拖放到設(shè)計器上,如下圖所示:
圖3 彈出的相應(yīng)控件
現(xiàn)在,讓我們開始定制我們的應(yīng)用程序。
在 MainPage.xaml.cs 中找到下面這個代碼段,然后把“ApplicationTitle”的“Text”屬性改成“My cool convertor”,把“PageTitle”的“Text”屬性改成“Let's rock WP7”。
- <!--TitlePanel contains the name of the application and page title-->
- <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>
- Also change the following snippet in MainPage.xaml.cs as highlighted.
- <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
- <TextBlock Height="30" HorizontalAlignment="Left" Margin="29,71,0,0" Name="textBlock1" Text="Degrees" VerticalAlignment="Top" />
- <TextBox Height="72" HorizontalAlignment="Left" Margin="162,54,0,0" Name="textBox1" Text="0" VerticalAlignment="Top" Width="245"></TextBox>
- <TextBlock Height="30" HorizontalAlignment="Left" Margin="29,177,0,0" Name="textBlock2" Text="Fahrenheit" VerticalAlignment="Top" />
- <TextBox Height="72" HorizontalAlignment="Left" Margin="162,162,0,0" Name="textBox2" Text="0" VerticalAlignment="Top" Width="245" />
- <Button Content="Clear" Height="72" HorizontalAlignment="Left" Margin="139,320,0,0" Name="button1" VerticalAlignment="Top" Width="160" />
- </Grid>
點擊“Degrees”TextBlock旁邊的那個 TextBox,然后點擊“Properties”,在“TextChanged”事件上雙擊,自動創(chuàng)建一個新的事件:“textBox1_TextChanged”。為了把當(dāng)前輸入的值轉(zhuǎn)換成“Fahrenheit”TextBlock旁邊的那個 TextBox 中的華氏溫度,這是應(yīng)該添加的代碼:
- private void textBox1_TextChanged(object sender, TextChangedEventArgs e)
- {
- if (int.TryParse(textBox1.Text, out degrees))
- {
- fahrenheit = 9 / 5.0 * degrees + 32;
- textBox2.Text = fahrenheit.ToString();
- }
- else
- textBox1.Text = "0";
- }
可以通過點擊“Build”菜單,然后選擇“Build Solution”來編譯這個應(yīng)用程序。修復(fù)你遇到的所有語法錯誤。按“F5”開始調(diào)試。這里有一件事情需要注意:你第一次啟動調(diào)試會話的時候,會比較慢。這是因為 Windows Phone 模擬器正在載入。我們的建議是,當(dāng)你調(diào)試完畢以后,不要關(guān)閉那個模擬器。而不是當(dāng)你完成調(diào)試會話的時候,點擊 “Debug”->“Stop Debugging”。這可以確保你以后載入調(diào)試會話的時候會更快一些。當(dāng)你啟動調(diào)試器的時候,你會發(fā)現(xiàn)你的應(yīng)用程序已經(jīng)顯示在模擬器上了。
要開始輸入攝氏溫度,可以點擊“Degrees”旁邊的那個 TextBox。
當(dāng)你開始輸入的時候,你會發(fā)現(xiàn)“Fahrenheit”TextBlock旁邊的那個 TextBox會自動地更新,這很像Google的自動提示功能。
點擊“Clear”可以把攝氏溫度變成0,把華氏溫度變成32(等于攝氏0度)。如果你創(chuàng)建項目遇到了什么麻煩,可以使用本文中的樣例項目。
總結(jié)
在這篇文章中,我們可以看到,為 Windows Phone 創(chuàng)建一個簡單的 Silverlight應(yīng)用程序是多么的簡單。在以后的文章中,我會討論如何為 Windows Phone 7 創(chuàng)建一個基于XNA的應(yīng)用程序。
【編輯推薦】
- 微軟推Windows Phone 7 Silverlight程序員成贏家
- 基于Silverlight的Menlo 微軟跨平臺移動應(yīng)用新利器
- Windows Phone 7開發(fā)之Silverlight游戲編輯器
- Silverlight:Windows Phone 7、Symbian一個都不放過
- Windows Phone 7 UI設(shè)計:理解MainPage.xaml