Silverlight3 模拟三维透视
在Silverlight中对三维透视的支持允许开发者使用的2D内容创建的3D体验。三维透视也是一种更好地利用屏幕空间的好方法。让我们来看一个简单的图像浏览应用程序如何使用三维透视改善外观并更好地利用屏幕空间。不同于一次只显示一个影像,我们会展示一个全分辨率的主要图像和其他一些不同角度的透视的影像。
为了对图像进行三维投影,您需要设置图像的Projection 属性为PlaneProjection 。PlaneProjection提供的一套属性将使得元素被视如三维空间中的形状。将RotationY属性设为70即沿Y轴或叫垂直轴将对象旋转70度。这将使得经过旋转的元素看起来像是垂直于屏幕。下一步,我们要把这个元素往后并往右移,以腾出空间给其他的图像。为达到这一目的,我们要对GlobalOffsetX和GlobalOffsetZ属性进行设置。三维投影元素的输入和事件如预期般运作,所以经三维投影的DataGrid或文本框将具有普通控件完全相同的功能。我们将继续并添加其他4个图像和实施略有不同的角度透视转换以完成这个程序。通过设置不同的GlobalOffsetX属性值将把这些图像移动到左侧或右侧。
这就是最终的结果:
数据绑定的改进
ElementName绑定允许开发人员在XAML中将一个UIElement绑定到另一个上,而不需要写事件处理程序。在Silverlight 3的Binding类中有一个新的属性叫ElementName 。当ElementName被设置后,绑定引擎会使用指定的元素作为数据来源进行绑定。Path属性是指UIElement绑定的数据源的属性。如果ElementName指向DependencyProperty,绑定引擎会侦听DependencyProperty的变化并相应更新绑定。这里有一个XAML片段,展示了一个滑杆如何使用ElementName绑定来控制中央图像的不透明度:
上述XAML的显示以下界面。移动滑块改变蓝龙的图像从完全透明到完全不透明: