旋转中心的位置可以通过设置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. 【转修正】sql server行版本控制的隔离级别

    在SQL Server标准的已提交读(READ COMMITTED)隔离级别下,一个读操作会和一个写操作相互阻塞.未提交读(READ UNCOMMITTED)虽然不会有这种阻塞,但是读操作可能会读到脏 ...

  2. IOS密码加密

    一般使用两种加密技术 1.MD5 2.以前是SHA1加密  现在流行是SHA-2加密

  3. IOS基础面试题

    最近离职了,找工作,光会做项目,对基础不熟,今天就总结了一点面试题. 废话不多说,上题吧: 1.objective-c中的数字对象都有哪些,简述它们与基本数据类型的区别是什么. 基本类型和C一样,主要 ...

  4. struts2实现文件上传、多文件上传和文件下载

    总结的两个问题,就是struts2上传下载的时候对属性名配置要求非常严格: 第一:上传的时候 private File file; private String fileContentType; pr ...

  5. Coursera台大机器学习基础课程学习笔记1 -- 机器学习定义及PLA算法

    最近在跟台大的这个课程,觉得不错,想把学习笔记发出来跟大家分享下,有错误希望大家指正. 一机器学习是什么? 感觉和 Tom M. Mitchell的定义几乎一致, A computer program ...

  6. -XX:-PrintClassHistogram 按下Ctrl+Break后,打印类的信息

    -XX:+PrintClassHistogram –按下Ctrl+Break后,打印类的信息: num     #instances         #bytes  class name ------ ...

  7. busybox-1.12.2编译提示“混合的隐含和普通规则”错误解决

    编译环境:CentOs 7.1 Ubuntu 12.0.4 都可以 交叉编译工具:gcc -4.3.2 (博创6410平台) 问题描述:执行make menuconfig命令的时候,提示Makefil ...

  8. 让keepalived监控NginX的状态

    经过前面的配置,如果主服务器的keepalived停止服务,从服务器会自动接管VIP对外服务:一旦主服务器的keepalived恢复,会重新接管VIP. 但这并不是我们需要的,我们需要的是当NginX ...

  9. 升级到Xcode8.2.1(Swift 2.3升级到3.0)

    最近呢把我的几个混编项目,和swift项目做了一个升级.那么今天就给大家分享一下遇到的问题和解决的办法. 首先那肯定的升级Xcode啦,我2015年的时候用的一直是Xcode7.1,电脑系统是OSX ...

  10. html5 canvas 笔记五(合成与裁剪)

    组合 Compositing globalCompositeOperation syntax: globalCompositeOperation = type 注意:下面所有例子中,蓝色方块是先绘制的 ...