Windows Phone 7中用好Silverlight開發(fā)利器
原創(chuàng)【51CTO獨家譯稿】我們曾經介紹過“Silverlight for Windows Phone”是Windows Phone 7應用程序開發(fā)平臺。除了Windows Phone 7的UI可以用Silverlight框架來設計,還可以用Silverlight創(chuàng)建Windows Phone 7的應用程序。本文為一個國外.NET平臺開發(fā)者為Windows Phone 7創(chuàng)建的Silverlight應用程序。
以下為譯文:
序言
Windows Phone 7 現(xiàn)在已經開始銷售了,一些激進的開發(fā)者已經在使用一些開發(fā)者工具創(chuàng)建新一代的“Angry Birds”或 Netflix 應用程序了。就像我們在過去的文章中提到的那樣,為了方便開發(fā)者創(chuàng)建 Windows Phone 應用程序,微軟提供了一套免費的開發(fā)者工具。Windows Phone的架構可以讓開發(fā)者選擇兩種不同的框架來創(chuàng)建 Windows Phone 應用程序/游戲的時候。在這篇文章中,我們主要關注使用 Silverlight 框架來創(chuàng)建 Windows Phone 應用程序。
為什么要使用Silverlight?
我們不禁要問:為什么要使用Silverlight框架來創(chuàng)建 Windows Phone 應用程序呢?
Silverlight(大家通常認為Silverlight是Flash的直接競爭對手)可以讓Web開發(fā)者們創(chuàng)建富互聯(lián)網應用程序。對于那些需要良好的應用程序邏輯或實用性的程序來說,你肯定更喜歡使用Silverlight。
Microsoft Visual Studio中的Silverlight項目入門
在你安裝了 Windows Phone 開發(fā)者工具以后,你可以直接運行Visual Studio Express for Windows Phone?;蛘撸绻阋呀洶惭b了 Visual Studio 2010 Pro SKUs,你可以運行 Visual Studio 2010 Pro SKUs,然后選擇 “File” -> “New” -> “Project”,然后再從模板類型中選擇 “Silverlight for Windows Phone 7”。
圖1 選擇Silverlight for Windows Phone 7
這是一些你需要了解的模板。根據具體的應用程序類型,你可以選擇最合適的模板。
對于我們的Demo來說,我們會選擇基礎的“Windows Phone Application”模板。把我們的項目命名成“WindowsPhoneApplicationDemo”,然后按“Enter”鍵來創(chuàng)建這個項目。
如果我們按了“Enter”鍵,IDE(Integrated development environment)會進行一系列操作,并且創(chuàng)建一大推文件——Appl.xaml, MainPage.xaml 和其他圖像文件 ApplicationIcon.png, Background.png 和 SplashScreenImage.jpg 。
讓我們看看這些文件都是什么:
為了看到設計器視圖,可以在 MainPage.xaml 上右擊,然后點擊“View Designer”(如果設計器還不可用的話)。這是設計器的外觀,以及后臺代碼:
圖2 設計器視圖
對于我們的應用程序來說,我們打算創(chuàng)建一個簡單的計算器,它可以讓用戶在攝氏溫度和華氏溫度之間進行轉換。要開始這個工作,可以按“Ctrl + Alt + X”,彈出“ControlBox”,然后把兩個“TextBlock”控件,兩個“TextBox”控件,和一個“Button”控件拖放到設計器上,如下圖所示:
圖3 彈出的相應控件
現(xiàn)在,讓我們開始定制我們的應用程序。
在 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”。為了把當前輸入的值轉換成“Fahrenheit”TextBlock旁邊的那個 TextBox 中的華氏溫度,這是應該添加的代碼:
- 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”來編譯這個應用程序。修復你遇到的所有語法錯誤。按“F5”開始調試。這里有一件事情需要注意:你第一次啟動調試會話的時候,會比較慢。這是因為 Windows Phone 模擬器正在載入。我們的建議是,當你調試完畢以后,不要關閉那個模擬器。而不是當你完成調試會話的時候,點擊 “Debug”->“Stop Debugging”。這可以確保你以后載入調試會話的時候會更快一些。當你啟動調試器的時候,你會發(fā)現(xiàn)你的應用程序已經顯示在模擬器上了。
要開始輸入攝氏溫度,可以點擊“Degrees”旁邊的那個 TextBox。
當你開始輸入的時候,你會發(fā)現(xiàn)“Fahrenheit”TextBlock旁邊的那個 TextBox會自動地更新,這很像Google的自動提示功能。
點擊“Clear”可以把攝氏溫度變成0,把華氏溫度變成32(等于攝氏0度)。如果你創(chuàng)建項目遇到了什么麻煩,可以使用本文中的樣例項目。
總結
在這篇文章中,我們可以看到,為 Windows Phone 創(chuàng)建一個簡單的 Silverlight應用程序是多么的簡單。在以后的文章中,我會討論如何為 Windows Phone 7 創(chuàng)建一個基于XNA的應用程序。
【編輯推薦】
- 微軟推Windows Phone 7 Silverlight程序員成贏家
- 基于Silverlight的Menlo 微軟跨平臺移動應用新利器
- Windows Phone 7開發(fā)之Silverlight游戲編輯器
- Silverlight:Windows Phone 7、Symbian一個都不放過
- Windows Phone 7 UI設計:理解MainPage.xaml