一起学习Silverlight企业应用2:开始使用Silverlight,以及一些基本概念

本文介绍了Silverlight的基础概念,包括展示与逻辑分离的原则、XAML语言的特性及其与HTML的对比,以及依赖属性的作用。文中还列举了几个在使用Silverlight过程中可能遇到的小问题。

 

Silverlight 的一些概念

对于没有应用过WPF的开发人员来说,这里有一些新的概念需要了解,当然也有很多区别于WPF的地方。

 

展示与逻辑的分离

展示与逻辑分离是Silverlight设计的核心原则,不仅仅是考虑CSS 和 HTML. XAML (扩展应用程序标记语言)是我们分离展示与逻辑的有力工具,同时基于XAML,也方便在开发人员与美术设计人员之间建立平顺的工作流。

 

认识XAML(别紧张,它只是XML))

 XAML 只是 XML,并没有什么神奇之处。 只不过是将对象画面序列化到XML的一种方式。 换言之,每一个你在XAML中看到的元素与属性最终会在内存中生成他们自己。 当然 XAML 也有自己的一些规则和模式,很多方面XAML 就像 HTML,因为它们都是用来定义用户界面。

例如下面的ASP页面中的代码

<form id="form1" runat="server">
<div>
<asp:Button ID="Button1" runat="server" Text="Button" />
</div>
</form>

生成的图像如下

2010071612240278.jpg

 

同样生成一个Button的XAML 如下

<Grid x:Name="LayoutRoot" Background="White">
<Button Width="100" Height="50" Content="Button"></Button>
</Grid>

图像效果为

2010071612255340.jpg

 

你也可以在代码中定义界面元素,和在XAML中一样,比如:

Button b = new Button();
b.Width = 100;
b.Height = 50;
b.Content = "Button";
LayoutRoot.Children.Add(b);
LayoutRoot.Background = new SolidColorBrush(Colors.White);

定义了同样的Button.

 

如果这两种方式你现在还有些迷惑的话,我们在后面的章节还有详细说明。

 

依赖属性(Dependency Property)

 

依赖属性可以理解为一般属性(Property)的基础上,Silverlight 增加了一些控制和管理。依赖属性提供了一种计算属性值的途径,基于输入或属性值被改变时,提供了一种通知机制。

 

通往Silverlight大道上的小石子

 

有一些小问题可能会引起你的困扰,我们在这里指出:

 

1, Silverlight 不支持 GIF 图像。

主要是GIF的清晰度和透明度不够,但是不用担心,Silverlight 支持 PNG 和 JPG,你可以使用工具轻松地转换为这两种格式。

2,Visibility 不是布尔类型

Visibility 不是布尔类型,而是两个枚举值:Collapsed and Visible 。这主要是由WPF那边沿袭过来的,WPF元素有3个值,多了一个Hidden,Silverlight不支持Hidden.

3, 是 Button.Content, 而不是 Button.Text

 注意Silverlight 用的是Button.Content而不是你所想的Button.text.

考虑下面的XAML:

<Grid x:Name="LayoutRoot" Background="White">
<Button Height="50" Width="100" >
<Button.Content>
<CheckBox Content="CheckBox"></CheckBox>
</Button.Content>
</Button>
</Grid>

 

Content 属性扩展为一个XML元素,一个CheckBox,生成的XAML如下所示:

2010071817212921.jpg

 

等等,还有更多

 

看下面的XAML

<Grid x:Name="LayoutRoot" Background="White">
<Button Height="50" Width="100">

<Button.Content>
<CheckBox>
<CheckBox.Content>
<Button Content="Button"></Button>
</CheckBox.Content>
</CheckBox>
</Button.Content>
</Button>
</Grid>

生成的界面是

2010071817360596.jpg

这里的CheckBox 和Button 都表现出了容器类的特点,即在一个Control中可以包含有其他的Control,被包含的Control还可以继续包含别的Control,以此类推。且不管这个例子是否实用,现在你最起码知道我们能做出许多很Cool 的东西了吧。

 

是行动的时候了,下面我们做一个简单的Silverlight 程序(待续...)

转载于:https://www.cnblogs.com/waitrabbit/archive/2010/07/16/1778784.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值