在现今三足鼎立的移动领域中,虽然Windows Phone起步晚于iOS和Android,,但是Windows
Phone的生态系统特色介于两者之间,在设备类型上比iOS开放,在收费应用盈利模式上又比Android有竞争力,发展前景被开发者普遍所看好。
Windows Phone智能操作系统内置官方应用商店Marketplace中的应用总数量于不久前突破10万大关,其中有88371款应用为多达60个国家的用户开
放下载,Windows Phone智能操作系统应用开发者如今也达到23825名。达到应用总数量超过10万款的成绩。以下是天极网为大家整理的关于WP开发方面的技巧分享。
基本数据绑定方法
基本数据绑定是指直接将一个CLR对象绑定到一个UI元素的简单绑定。此处先创建一个表示员工信息的Employee类作为基本的数据结构以备用。
C# Code
public calss Employee
{
public int Number{get;set;} //工号
public string Name{get;set;} //姓名
public string Sex {get;set;} //性别
public int BirthYear{get;set;} //出生年份 |
创建一个页面,在页面中施放一个Canvas控件并在其中放置两个名为txbNumber和txbName的TextBox控件,分别用已绑定员工编号和姓名。
在代码文件中的合适位置创建一个Employee类的实例作为绑定源(置于Demoss11命名空间下)。代码如下:
C# Code
{
Number=2012
Name=“MagicBoy”
Sex=“男”
BirthYear=2000
} |
同时,不要忘记添加对System.Windows.Data命名空间的引用。
通过Bingding对象的Source属性指定数据源
熟练的.NET开发者应该已经可以轻松地写出如下的代码以实现最基本的数据绑定。
C# Code
Binding bdNumber=new Binding();
bdNumber.Source=employee;
bdNumber.Path=new PropertyPath("Number");
bdNumber.SeBinding(TextBox.TextProperty,bdName);
Binding bdName=new Binding();
bdName.Source=employee;
bdName.Path=new PropertyPath("Name")
txbName.SetBinding(TextBox.TextProperty,bdName); |
基本过程:新建绑定队形bdNumber、设置绑定源、设置绑定路径、将txbNumber的Text属性与bdNumber对象绑定。
此处Binding对象的Mode属性没有设置,将自动取为OneWay;CXonverter属性也没有设置,因为此处不需要数据转换。
独立存储实例演示
独立存储是.NET Framework 2.0引入的一个新特性,为托管代码提供了一种对每个计算机、每个用户、每个应用程序域在本地文件系统总分配一个独有的存储空间的机制。数据本身还是存储在本地文件系统中的,但是其实位置对于应用程序是透明的,应用程序只能够访问当前用户在当前应用程序域的文件及文件夹。
直到Silverlight推出,独立存储才被广泛使用。Silverlight独立存储基于、NET
Framework 7中本地数据的基本存储方式。
其中,独立设置存储对外表现为一个键值对集合,可以使用键值对集合的语法来进行操作。其操作较为敏捷,常用于存储应用程序设置之类的信息。
以下为4个按钮添加ChangeSettings时间处理程序为例
C# Code
private void ChangeSettings(object sender,RoutedEventArgs e)
string key = txbKey.Text.Trim();
string value = txbValue;
Button clickedButton = sender as Button;
switch(clickedButton.Name)
{
case"btnAdd"
setting.Add(key,value);
break;
case"btnAddOrUpdate":
setting[key]=value;
break;
case"btnRemove":
setting.Remove(key);
break;
case"btnClear";
settubg.Clear()
break;
}
setting.Save()
ReadAllSettings() |
XAML四大特性详解
可扩展应用程序标记语言(XAML)是一种声明性语言。事实上,XAML可以通过一种语言结构来表示多个对象之间的分层关系,通过后备类型约定进行类型扩展,并初始化对象和设置对象的属性。
通过使用XAML标记创建用户界面元素(UI),然后使用单独的代码隐藏文件来响应时间和处理在XAML中的对象。一般情况下,XAML代码保存在以.xaml为扩展名的文件中。
如下面的代码是一段标准的XAML文件内容:
<UserControl x:Class="SilverlightAppLication1.MainPage
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:lgnorable="d"
d:DesignHeight="300"d:DesignWidth="400">
<Grid x:Name="LayoutRoot"Background="White">
</Grid>
</UserControl> |
XAML在Silverlight中具有以下四种特性:
1.XAML用来声明和描述Silverlight UI元素的主要格式。一个采用Silverlight技术开发的页面至少会有一个XAML文件。
2.XAML提供创建Silverlight UI的统一模式,使得开发者可以在不同的开发工具中统一搞笑的编辑Silverlight
UI,如Expression Blend和Visual Studio。
3.XAML可以讲UI和关联的逻辑代码完全分隔开来,对于UI的调整完全不会破坏代码的原有执行含义,使得维护和分组开发变得更加容易。
4.XAML具有良好的兼容性,如果需要将Silverlight程序迁移到WPF上,几乎无需重新设计UI即可完美地进行迁徙。
对于不同情况下,尤其是随着在开发中扮演的角色的不同,可能接触和使用XAML的方式与渠道会有不同。但是在任何时候都可以采用文本编辑器来修改XAML文件,这使得任何基于XAML的UI设计都可以更好地被维护和提供充分的便利以及灵活性。
图像处理功能及拉伸图像用法
在手机软件开发过程中,用户体验是其中一个重要部分,好的界面离不开丰富的图像资源,添加图像的界面可以使用户感觉更加友好,更加直观。在Windows
Phone 7 下可以通过Silverlight中内置的强大的图像处理功能,报告图像拉伸、裁切图像及半透明遮罩效果等。
在使用Image或者ImageBrush对象创建了一幅图像。假设这幅图像发生了变形,这是因为在绘制图像的过程中,程序自动拉伸图像以填满整个区域。通过代码方式来拉伸图像的方法有以下三种。
<Grid x:Name="ContentGrid" Grid.Row="1">
<Image Source="Image/Lenna.jpg"Stretch="None"/>
</Grid> |
在伊桑代码中,设置Stretch的属性为None,图像不拉伸以适合尺寸显示出来。Stretch属性可以设置为以下值。
1.None:不拉伸图像以适合输出尺寸。
2.Uniform:缩放图像,以适合输出尺寸。单保留该内容的高宽比。如果程序没有设置Stretch属性,将以次作为默认值。
3.UniformToFill:缩放图像,可以完全填充输出区域,保持原来的高宽比。
4.Fill:对图像进行缩放,使其填充整个区域,即在目标区域显示整幅图像内容,不保持原来的高宽比,设置该属性会造成图像的失真。
数据绑定:通过UI元素的DataContext属性
基于Silverlight的Windows Phone开发中的数据绑定,使数据的呈现和交互变得更为便捷,该数据绑定实现了UI元素和数据源对象之间的关联,使数据可以在两者之间创建并维护数据通道。在绑定建立之后,如果数据出现更改,则绑定到该数据的UI元素会自动反映更改,同样,用户在UI元素中所做的更改也可以在数据对象中反映出来。
通过设置Binding对象的Source属性可以实现基本的数据绑定,但是观察上面的代码不难发现,对于每个绑定对象都要设置一次绑定源显然是冗余的,在绑定对象比较多的情况下尤其繁琐。
鉴于以上情况,Silverlight中提供了另外一种设置数据源的方式,及通过UI元素的数据上下文Data
Context属性来指定数据源。这是一种上下文有关的确定绑定源的方案。一旦为一个UI元素指定了DataContext属性,则其所有子元素都将继承该属性,与其子元素关联的所有数据绑定在没有另行制定Souce
和DataContext的情况下,都将默认使用该属性指定的对象作为绑定源。
这样,在进行数据绑定时,对于某UI元素指定DataContext后就可以在其所有下级UI元素中使用以该DataContext为绑定源的绑定。实际上在通常情况下的用法是,先用DataContext属性指定高层UI元素的数据上下文,然后对于特殊的子元素再另行指定绑定源。
以下代码所示,可以简单地通过指定的TextBox控件的父元素Canvas控件的Context属性来指定数据源。
C# Code
canvas2.DataContext=employee;
Binding bdNumber=new Binding()
bdNumber.Path=new Binding()
txbNuber2.SetBinding(TextBox.TextProperty,bdNumber);
Binding bdName=new Binding();
bdName.Path=new PropertyPath("Name");
txbName2.SetBinding(TextBox.TextProperty,bdName); |
|