旋转中心的位置可以通过设置CenterOfRotationX、CenterOfRotationY和CenterOfRotationZ属性来指定。CenterOfRotationX和CenterOfRotationY属性的默认值都是0.5,表示旋转轴正好位于旋转对象的中心。当这两个属性值为0和1时,表示旋转中心处在旋转对象的一组对边上,即将旋转中心移到旋转对象的外边沿,旋转对象将会绕其外边沿旋转。当这两个属性值的范围在0和1之间时,表示旋转中心处于旋转对象的特定位置,若超出这个范围,则根据超出值大小相应的将旋转中心移出旋转对象。CenterOfRotationZ属性的默认值是0,表示旋转中心在旋转对象的中心,可以对其赋正值或负值,使旋转中心移到旋转对象的正面或背面。

通过设置CenterOfRotationX属性值可以将旋转中心沿X轴并平行于Y轴移动,同理通过设置CenterOfRotationY属性值可以将旋转中心沿Y轴并平行于X轴移动。下面看一下不同的CenterOfRotationY属性值对3D效果的影响,如图10-10所示。

 CenterOfRotationY = "0.5" (默认值)                        CenterOfRotationY = "0.1"

图10-10 CenterOfRotationY属性效果

接下来介绍如何改变CenterOfRotationX的属性值移动旋转中心,从而使界面元素绕着指定的旋转中心进行旋转。

启动Visual Studio 2012,新建一个Windows应用商店的空白应用程序项目,将其命名为3DCenterOfRotationApp,首先在项目的Assets文件夹下添加一个名为“Windows 8.png”的图片,双击打开此页面的3DCenterOfRotationApp.xaml文件,使用如下代码替换原有的Grid元素。

<Grid Background="Gray">

    <StackPanel  Width="240" Height="240" Background="White" >

        <Image  Width="240" Height="240" Source="/Assets/Windows 8.png">

            <Image.Projection>

                <PlaneProjection CenterOfRotationX="0.9" RotationY="45"/>

</Image.Projection>

        </Image>

    </StackPanel>

</Grid>

上面的代码与之前介绍的示例代码类似,不同的是本示例把PlaneProjection元素的CenterOfRotationX属性值设置为0.9,表示将旋转中心沿X轴并平行于Y轴向右移动到图片的右边缘,接着将RotationY属性值设置为45度,这样图片将绕Y轴顺时针旋转45度。

按下F5运行程序,会产生如图10-11所示的3D效果。

 

图10-11 绕指定旋转中心旋转的3D效果图

由于旋转中心的设置很类似这里仅以CenterOfRotationX属性为例进行了讲解,有兴趣的读者可以在上面示例的基础上修改PlaneProjection的属性值,感受不同的3D效果。

Windows Store App 旋转中心的更多相关文章

  1. 在桌面程序上和Metro/Modern/Windows store app的交互(相互打开,配置读取)

    这个标题真是取得我都觉得蛋疼..微软改名狂魔搞得我都不知道要叫哪个好.. 这边记录一下自己的桌面程序跟windows store app交互的过程. 由于某些原因,微软的商店应用的安全沙箱导致很多事情 ...

  2. Windows Store App 过渡动画

    Windows Store App 过渡动画     在开发Windows应用商店应用程序时,如果希望界面元素进入或者离开屏幕时显得自然和流畅,可以为其添加过渡动画.过渡动画能够及时地提示用户屏幕所发 ...

  3. Windows store app[Part 4]:深入WinRT的异步机制

    接上篇Windows store app[Part 3]:认识WinRT的异步机制 WinRT异步机制回顾: IAsyncInfo接口:WinRT下异步功能的核心,该接口提供所有异步操作的基本功能,如 ...

  4. Windows store app[Part 3]:认识WinRT的异步机制

    WinRT异步机制的诞生背景 当编写一个触控应用程序时,执行一个耗时函数,并通知UI更新,我们希望所有的交互过程都可以做出快速的反应.流畅的操作感变的十分重要. 在连接外部程序接口获取数据,操作本地数 ...

  5. 05、Windows Store app 的图片裁切(更新)

    在 Win Phone Silverlight api 中,有一个 PhotoChooserTask 选择器,指定宽.高属性,在选择图片的时候, 可以进行裁切,代码: PhotoChooserTask ...

  6. 01、Windows Store APP 设置页面横竖屏的方法

    在 windows phone store app 中,判断和设置页面横竖屏的方法,与 silverlight 中的 Page 类 不同,不能直接通过 Page.Orientation 进行设置.而是 ...

  7. Windows store app[Part 1]:读取U盘数据

    Windows 8系统下开发App程序,对于.NET程序员来说,需要重新熟悉下类库. 关于WinRT,引用一张网上传的很多的结构图: 图1 针对App的开发,App工作在系统划定的安全沙箱内,所以通过 ...

  8. Windows store app Settings 的 应用 ( viewmodel + windows.storage)

    1.在首页 加入 一个元素(加下滑线的).此元素绑定了两个属性 <!DOCTYPE html> <html> <head> <meta charset=&qu ...

  9. Windows Store App JavaScript 开发:获取文件和文件夹列表

    在应用程序中有时可能需要获取用户库中的内容,以便执行相关的操作.如果要获取某个用户库中的内容,需要先获取到这个用户库,获得用户库可以通过Windows.Storage命名空间中的KnownFolder ...

随机推荐

  1. copy file to docker、

    Docker是个Linux Container管理软件. 今天我们来讲解一下从主机复制文件到Docker的几种方法. 在分享之前, 我们看看Docker社区对这个问题的需求是有多么强(ju)烈(jin ...

  2. Tomcat 使用Redis存储Session

    Tomcat Redis Session Github 地址. 下载 commons-pool2-2.2.jar,jedis-2.5.2.jar,tomcat-redis-session-manage ...

  3. MongoDb 聚合报错

    聚合框架它是数据聚合的一个新框架,其概念类似于数据处理的管道. 每个文档通过一个由多个节点组成的管道,每个节点有自己特殊的功能(分组.过滤等),文档经过管道处理后,最后输出相应的结果. 管道基本的功能 ...

  4. Python快速建站系列-Part.Three-注册和登录

    |版权声明:本文为博主原创文章,未经博主允许不得转载. 上一个Part已经给TSSS编好了一个简单的Web服务,网页的基础模版也写好了,那从这个Part开始就慢慢增加编写功能. 先写基础功能:注册和登 ...

  5. javascript编程: JSON, Mapping, 回调

    使用 Javascript  编程, 组合使用 JSON 数据格式,Mapping 和回调技术, 可以产生很强的表达效果. 在实际工作中, 总会有数据汇总的需求. 比如说, 取得了多个 device ...

  6. javaWeb 数据库连接池连接数据库

    需要的公共jar包 mysql-connector-java-5.0.8-bin.jar(mysql数据库)   ojdbc14.jar(oracle数据库) A.DBCP 需要jar包: commo ...

  7. window route 命令

    使用 Route 命令行工具查看并编辑计算机的 IP 路由表.Route 命令和语法如下所示: route [-f] [-p] [Command][Destination] [mask Netmask ...

  8. shiro 从入门到放弃

    Apache Shiro是Java的一个安全框架.目前,使用Apache Shiro的人越来越多,因为它相当简单,对比Spring Security,可能没有Spring Security做的功能强大 ...

  9. RCP:如何保存TaskList及如何获取TaskList

    如果我们在Eclipse RCP程序中添加TaskList View,用来管理Task或者TODO项,如下代码: PlatformUI.getWorkbench().getActiveWorkbenc ...

  10. 【iOS】The differences between Class Extension and Header File 类扩展与头文件的区别

    . As the name suggests, they extend the class. A class continuation is another name. The class exten ...