Don't think you are, know you are

博客园 首页 新随笔 管理

 

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>

生成的图像如下

 

同样生成一个Button的XAML 如下

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

图像效果为

 

你也可以在代码中定义界面元素,和在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如下所示:

 

等等,还有更多

 

看下面的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>

生成的界面是

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

 

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

posted on 2010-07-16 12:02  炭炭  阅读(605)  评论(0编辑  收藏  举报