学Silverlight 2系列(30):使用Transform实现更炫的效果(下)

本文为使用Transform实现更炫的效果第二部分,在Silverlight中提供了四 种基本变换:旋转变换(RotateTransform )、缩放变换(ScaleTransform)、 倾斜变换(SkewTransform)、移动变换(TranslateTransform)和两种复杂的 变换:变换组(TransformGroup)、矩阵变换(MatrixTransform ),这些变换 可以运用到任何控件或者图形图像。

矩阵变换(MatrixTransform )

矩阵变换MatrixTransform是所有变换中功能最强大最灵活也是最复杂的一种 变换,如果前面讲解的几种基本变化不能满足我们在实际开发中的需求,可以使 用矩阵变换进行自定义,它允许我们直接对变换矩阵进行操作。

在Silverlight中,变换是提供一个3*3的矩阵,我们通过修改矩阵中成员的 值来实现变换,矩阵的定义如下所示:

如修改OffsetX,元素将会在X轴上进行移动;修改OffsetY,元素将在Y轴上 移动;修改M22为2,元素的高度将会拉伸2倍,通过该矩阵,我们能实现前面提 到的几种基本变换的所有功能。更详细的解释大家可以参考SDK。如下面的例子 ,我们使用矩阵变换,仍然能实现前面示例中的变换效果:

<Canvas Background="#CDFCAE">
  <Image Source="a1.png" Canvas.Left="120" Canvas.Top="50" Opacity="0.3">
  </Image>
  <Image Source="a1.png" Canvas.Left="120" Canvas.Top="50" Opacity="0.5">
    <Image.RenderTransform>
       <MatrixTransform>
         <MatrixTransform.Matrix>
          <Matrix OffsetX="0" OffsetY="0" M12="0.2"></Matrix>
         </MatrixTransform.Matrix>
       </MatrixTransform>
    </Image.RenderTransform>
  </Image>
  
  <Image Source="a1.png" Canvas.Left="120" Canvas.Top="50">
     <Image.RenderTransform>
       <MatrixTransform>
         <MatrixTransform.Matrix>
          <Matrix OffsetX="0" OffsetY="0" M12="0.4"></Matrix>
         </MatrixTransform.Matrix>
       </MatrixTransform>
    </Image.RenderTransform>
  </Image>
</Canvas>

时间: 2024-08-23 22:17:36

学Silverlight 2系列(30):使用Transform实现更炫的效果(下)的相关文章

一步一步学Silverlight :使用Transform实现更炫的效果(上)

概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, Ironpython,对JSON.Web Service.WCF以及Sockets的支持等一系列新的特性.<一步一步学Silverlight 2系列>文章将从Silverlight 2基础知识.数据与通信.自定义控件.动画.图形图像等几个方面带您快速进入Silverlight 2开发. 本文为理

学Silverlight 2系列(29):使用Transform实现更炫的效果(上)

本文为理解Silverlight中的变换(Transformations)第一部分,在 Silverlight中提供了四种基本变换:旋转变换(RotateTransform ).缩放变 换(ScaleTransform).倾斜变换(SkewTransform).移动变换 (TranslateTransform)和两种复杂的变换:变换组(TransformGroup).矩阵 变换(MatrixTransform ),这些变换可以运用到任何控件或者图形图像. 旋转变换(RotateTransform

学Silverlight 2系列(15):数据与通信之ASMX

本文将简单介绍在Silverlight 2中如何与ASMX进行通信. 简单示例 本文的示例非常简单,其过程也跟我们在一步一步学Silverlight 2系列(14 ):数据与通信之WCF中差不多,我们仍然显示一个最新随笔的列表,最终完成 后效果如下所示: 定义一个业务实体Post. public class Post { public int Id { get; set; } public string Title { get; set; } public string Author { get

学Silverlight 2系列(13):数据与通信之WebRequest

本文将简单介绍在Silverlight 2中如何使用WebRequest进行数据的提交和获 取. 简单示例 在本文中,我们仍然使用在一步一步学Silverlight 2系列(12):数据与通 信之WebClient中用过的示例,只不过稍微做一点小的改动,使用WebRequest提 交书籍编号数据,并根据书籍号返回价格信息.最终运行的结果如下图: 编写界面布局,XAML如下: <Grid Background="#46461F"> <Grid.RowDefinition

学Silverlight 2系列(1):创建一个基本的Silverlight应用

概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来 了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, Ironpython,对JSON.Web Service.WCF以及Sockets的支持等一系列新的特性 .<一步一步学Silverlight 2系列>文章带您快速进入Silverlight 2开发. 本文为系列第一篇创建一个基本的Silverlight 2应用,不能免俗,从最简单 的Hell

学Silverlight 2系列(9):使用控件模板

本文为系列文章第九篇,主要介绍如何使用控件模板定制控件的观感. Silverlight提供了极其强大的功能,允许用户完全定制控件的外观. 定制控件内容 在Silverlight中,WatermarkedTextBox控件可以为用户的输入提供一段提示 信息,如果只是简单的一点文字信息,有时候未免显得单调,如果加上相应的图 片说明效果会更好,如下图所示的一个简单的用户登录界面: 这样看起来界面显的就生动多了,XAML声明如下: <Canvas Background="#46461F"

学Silverlight 2系列(8):使用样式封装控件观感

本文为系列文章第八篇,主要介绍在Silverlight中使用Style元素封装控件 观感 Silverlight 支持一种 Style 机制,它允许我们把控件的属性值封装成可重 用的资源.我们可以把这些样式声明保存在独立于页面的其他文件中,然后就可 以在一个应用程序中跨控件和页面重用(甚至跨多个应用程序重用).在做一些 基本定制的场景下,概念上类似于在 HTML 中重用 CSS. 内联样式 内联样式这个概念其实跟我们在HTML中指定元素的样式一样,在XAML中通过 属性来设置,如下面这段XAML

学Silverlight 2系列(33):Silverlight 2应用Web Service两例

概述 我们知道,在Silverlight 2中提供了丰富的网络通信API,包括支持SOAP服 务.REST服务.基于HTTP通信.Socket通信等.本文我将通过几个示例来演示如 何在Silverlight 2中应用Web Service实现文件上传和电子邮件发送. 使用Web Service上传文件 我将通过一个示例来展示如何使用Web Service向服务器上传文件,首先创建 Silverlight项目,并在Web测试项目中添加一个ASP.NET Web Service文件.现 在来实现相关

学Silverlight 2系列(11):数据绑定

本文为系列文章第十一篇,主要介绍Silverlight 2中的数据绑定. 数据绑定模式 在Silverlight 2中,支持三种模式的数据绑定. 1.OneTime:一次绑定,在绑定创建时使用源数据更新目标,适用于只显示数 据而不进行数据的更新. 2.OneWay:单向绑定,在绑定创建时或者源数据发生变化时更新到目标,适 用于显示变化的数据. 3.TwoWay:双向绑定,在任何时候都可以同时更新源数据和目标. Jesse Liberty举的例子非常的形象,使用Silverlight开发一个在线书