四天玩转windows phone开发视频之第二天总结
(1)处理字符串
(2)使用 DateTime
(3)理解和创建类
这一节中主要讲解如何创建一个类,如何实例化一个类,以及调用类的成员,这部分完全是C#中的内容。这部分内容对我来说已经比较悉了,所以没什么大的收获。但我发现了一个快捷技术。这个被称为code snippet plus auto implemented property技术,这样可以很快捷的输入代码,大大提高了效率。
相关的内容可以参考这一篇博文:http://www.cnblogs.com/Xiaojiang/archive/2008/04/05/1138333.html 里面详细介绍了几种快捷键。
而这小节用到的就是prop这个来快速创建类的成员属性,方法是:输入prop,然后双击TAB键,就会出现:
在光标没有移开的情况下,可以按TAB来切换int 和MyProperty这两块代码,是用来给你输入自己想要创建的变量类型和变量名,等改完后,再双击Enter就可以切换到下一行继续输入。
(4)使用 .NET Framework 类库中的类
本节讲的是如何使用.NET Framework 类库中的类定义实例。个用实例不止是new一种,还有其它的方式,例如:IsolatedStorageSettings mySettings = IsolatedStorageSettings.ApplicationSettings;这是windows phone执行siliverlight应用程序时,CoreCLR创建IsolatedStorageSettings的一个实例,我们可以通过访问其ApplicationSettings属性,引用IsolatedStorageSettings对象。
对于如何区分和使用.NET Framework 类库中的类,我们可以打开msdn.micorsoft.com网站帮助我们去解决问题。或者查网站,论坛,书籍和视频。
事实证明,你编写的代码越多,就有越多的经验可以借鉴。
事实上,我们拖一个控件到设置界面上时,已经为这个控件创建了一个实例。而在XAML上也同时创建了一个对应的代码,就像XML或HTML。
我们创建一个按钮时,可以用C#的new运算符,也可以在XAML代码中创建。
(5)理解命名空间
本节中主要介绍了命名空间,namespace既“命名空间”,也称“名称空间” VS.NET中的各种语言使用的一种代码组织的形式 通过名称空间来分类,区别不同的代码功能 同时也是VS.NET中所有类的完全名称的一部分。 我们在引用类的时候,必须在头部把类所在的命名空间using进来,而引用这个类名,可以把命名字间也一起写进入,一般都不写。如果在使用类的时候没有把相应的命名空间引用进来的话,进行时候就会报错。例如:
sqlconnection
如果开头没有using相应的命名空间的话,就会有错误提示:
红色的波浪线表示VS不能识别这个类,蓝色的表示可以在库中找到包含这个类的命名空间。这时只要按住Ctrl+. 就会出现:
再按回车,它就会自动帮你添加命名空间,就可以正常使用啦。
(6)使用集合
本节讲述了如何创建对象的集合。
List<int> list = new List<int>(); list.Add(2); list.Add(3); list.Add(7); foreach (int prime in list) // Loop through List with foreach { Console.WriteLine(prime); } for (int i = 0; i < list.Count; i++) // Loop through List with for { Console.WriteLine(list[i]); }
~~~ Output of the program ~~~
(Repeated twice)
2
3
7
相关用法,参考这篇博文:http://www.cnblogs.com/wangs/archive/2011/01/19/1939006.html
(7)对象和集合初始值设定项
本节讲述了两种方式给对象进行初始化,一种是在创建实例的时候给它赋值,另一种是创建对象集合的同时,给对象赋值。
如:
Car car1 = new Car() { Make = "日本", Model = "本田" };
Car car2 = new Car() { Make = "德国", Model = "丰田" };
List<Car> CarList=new List<Car>(){
new Car(){Make="日本",Model="本田"},
new Car(){Make="德国",Model="丰田"}
};
foreach (Car myCar in CarList)
{
myTextBlock.Text += myCar.Make + ":" + myCar.Model + Environment.NewLine ;
}
确实这样在集合中创建的时候同时赋值,可以简化很多代码,使用集合,大大方便了批量输出。
(8)在 XAML 设计器和代码窗口中工作
本节主要讲解的是窗口中各个功能按钮。然后讲解如何在XAML窗口里面用代码来创建一个按钮。也就是说,XAML跟可视化窗口的内容是同步的,在XAML里面也可以通过写代码创建各种控件,而且有时候写代码比拖控件还要高效。
(9)理解 XAML 语法
本节开始讲解XAML的语法。XAML实质上就是为了UI设计人员来设的编程语言,专注于silverlight的设计与布局,就像XML,HTML一样,把逻辑设计与UI设计分离开来。大多数人选择Expression Blend for Windows Phone 7 来开发,是因为其提供额外的工具各功能,可以更好的用于设置界面和增强户体验,而Visual Studio 2010 Express for Windows Phone 更多的是侧重于编写C#代码。
<phone:PhoneApplicationPage x:Class="PhoneApp4.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone" xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="768" FontFamily="{StaticResource PhoneFontFamilyNormal}" FontSize="{StaticResource PhoneFontSizeNormal}" Foreground="{StaticResource PhoneForegroundBrush}" SupportedOrientations="Portrait" Orientation="Portrait" shell:SystemTray.IsVisible="True"> <!--LayoutRoot 是放置所有頁面的根資料格--> <Grid x:Name="LayoutRoot" Background="Transparent"> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition Height="*"/> </Grid.RowDefinitions> <!--TitlePanel 包含應用程式的名稱和頁面標題--> <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28"> <TextBlock x:Name="ApplicationTitle" Text="我的應用程式" Style="{StaticResource PhoneTextNormalStyle}"/> <TextBlock x:Name="PageTitle" Text="頁面名稱" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/> </StackPanel> <!--ContentPanel - 其他內容置於此--> <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"> <Button Content="Button" Height="72" HorizontalAlignment="Left" Margin="134,48,0,0" Name="button1" VerticalAlignment="Top" Width="160" /> </Grid> </Grid> <!--顯示 ApplicationBar 使用方式的程式碼範例--> <!--<phone:PhoneApplicationPage.ApplicationBar> <shell:ApplicationBar IsVisible="True" IsMenuEnabled="True"> <shell:ApplicationBarIconButton IconUri="/Images/appbar_button1.png" Text="按鈕 1"/> <shell:ApplicationBarIconButton IconUri="/Images/appbar_button2.png" Text="按鈕 2"/> <shell:ApplicationBar.MenuItems> <shell:ApplicationBarMenuItem Text="功能表項目 1"/> <shell:ApplicationBarMenuItem Text="功能表項目 2"/> </shell:ApplicationBar.MenuItems> </shell:ApplicationBar> </phone:PhoneApplicationPage.ApplicationBar>--> </phone:PhoneApplicationPage>
<phone:PhoneApplicationPage
所有内容的开头,且所有内容都包含在这里面。PhoneApplicationPage属于以phone为别名的命名空间
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
意思是:命名空间:phone是来自clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone的。所以上面所有带有:的那些单词实际上是在定义命名空间,就像C#中的Using一样。
<!-- 代码注释 -->
这个是用来注释的,像HTML一样。
<!--LayoutRoot 是放置所有頁面的根資料格-->
<Grid x:Name="LayoutRoot" Background="Transparent">
这里的Grid是用于布局的的网格。
<!--TitlePanel 包含應用程式的名稱和頁面標題-->
<StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
这个是对应于Grid第一行的Panel。就是容器
用Grid和panel是布局windows phone silverlight应用程序上的控件和文本的主要技术
<!--TitlePanel 包含應用程式的名稱和頁面標題-->
<StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
<TextBlock x:Name="ApplicationTitle" Text="我的應用程式" Style="{StaticResource PhoneTextNormalStyle}"/>
<TextBlock x:Name="PageTitle" Text="頁面名稱" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
</StackPanel>
可以看到StackPanel里面包有两个TextBlock控件。这个StackPanel通常用于定义应用程序的主题。
<!--ContentPanel - 其他內容置於此-->
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<Button Content="Button" Height="72" HorizontalAlignment="Left" Margin="134,48,0,0" Name="button1" VerticalAlignment="Top" Width="160" />
</Grid>
这里主要用于放置定义程序主要功能的控件内容。
<!--顯示 ApplicationBar 使用方式的程式碼範例-->
<!--<phone:PhoneApplicationPage.ApplicationBar>
<shell:ApplicationBar IsVisible="True" IsMenuEnabled="True">
<shell:ApplicationBarIconButton IconUri="/Images/appbar_button1.png" Text="按鈕 1"/>
<shell:ApplicationBarIconButton IconUri="/Images/appbar_button2.png" Text="按鈕 2"/>
<shell:ApplicationBar.MenuItems>
<shell:ApplicationBarMenuItem Text="功能表項目 1"/>
<shell:ApplicationBarMenuItem Text="功能表項目 2"/>
</shell:ApplicationBar.MenuItems>
</shell:ApplicationBar>
</phone:PhoneApplicationPage.ApplicationBar>-->
而这段注释掉的内容是用于以后扩展用的,用于定义菜单栏之类的功能。
(10)Silverlight 布局控件
本节介绍三个用于布局的控件:Grid(网格),Canvas(画布),StackPanel。
(11)处理 Silverlight 事件
(12)Silverlight 输入控件
(13)第二天家庭作业
(14)第二天家庭作业解决方案 - 第1部分
(15)第二天家庭作业解决方案 - 第2部分