4.3.3 倒影的实现
倒影用来显示已有内容的倒置图像。在Expression Blend中创建倒影是很简单的,不过需要我们编写一点代码。我们待会儿就可以见到,实际上只需要一行代码就可以实现了。
需要注意的是,这和之前的版本有些不同,之前的Interactive Designer中默认的根元素是Grid,而在Blend中是Window,因为Grid是容器类型的控件,在其中可以包含多个元素,而在Window中只能包含一个元素。所以我们需要修改窗体的XAML代码,在ProductGrid外面套上一个Grid,给它取个名字叫GridContainer,见下面示例:
<Window> |
然后在GridContainer中绘制一个矩形,命名为“Reflection”,Window中的控件结构关系如图4-39所示。
| 图4-39 最终的控件结构关系 |
可能需要调整一下屏幕上ProductGrid的位置以放置这个实现倒影的矩形,因为在屏幕尺寸发生变化时,ProductGrid和Reflection的位置可能会发生变化导致界面超出我们的想象。所以这里需要添加一个横向的格子线,放到ProductGrid和Reflection之间,ProductGrid的底部与Reflection的顶部均与这条格子线对齐,如图4-40所示。
|
| 图4-40 在屏幕上放置实现倒影的矩形 |
将矩形的Fill和Stroke属性由纯色画笔改为“无画笔”,OpacityMask设置为全白色线性渐变,线性渐变的两边都设置为白色,左边的Alpha值设置为0.7,右边的Alpha值设置为0.0,如图4-41所示。
| 图4-41 倒影矩形的画笔设置 |
接下来需要在矩形中应用倒置转换,在转换面板上的翻转Tab页面中选择Y轴翻转,如图4-42所示。
| 图4-42 使用翻转转换 |
现在需要编写一点代码,作用是将屏幕的内容拷贝到新添加的矩形中,翻转转换和透明度同时实现。
在项目面板中,找到Window1.xaml,打开扩展,将显示Window1.xaml.cs,如图4-43所示。
|
| 图4-43 编辑源代码 |
双击Window1.xaml.cs,进入代码编辑器。
我们需要加入初始化OnInitialized的处理(其实在初始化时已经被调用过了,但是因为在代码中没有处理而被忽略了),代码完成将ProductGrid图像拷贝到用于倒影的矩形中,代码如下:
public Window1() |
太简单了吧,当运行应用程序时,我们可以看到倒影的效果。
| 回书目 |
|
||||
| · 打造安全服务器 · 贝恩资本携手华为22亿.. · iSCSI应用与发展 · CISSP认证成长之路 · 华为员工自杀频频拷问.. · FTTx光纤接入 · Windows Server 2008专.. · 开源虚拟化技术Xen |
· WCF开发基础 · Linux——从菜鸟到高手 · 微软出价446亿美元收购.. · SQL Server 2008/2005.. · RAID——磁盘阵列基础 · 微软Forefront企业安全.. · 如何优化IT 控制能耗 · 国际文档格式标准开战 |
|||
|
||||
| · VPN技术 · iSCSI应用与发展 · SQL Server 2008/2005.. · SQL Server 2008/2005.. · iSCSI应用与发展 · RAID——磁盘阵列基础 · 中间件应用技术专题 · 深入了解PGP加密技术 |
· 病毒查杀专题 · VPN技术 · 国际文档格式标准开战 · SSL VPN详细知识 · Linux防火墙 · 打造安全服务器 · Sniffer安全技术从入门.. · 木马原理与防范 |
|||
|
||||
| · SQL Server 2008/2005.. · iSCSI应用与发展 · 中间件应用技术专题 · SQL Server 2008/2005.. · iSCSI应用与发展 · RAID——磁盘阵列基础 · 身份认证技术 · 病毒查杀专题 |
· 清除流氓软件——51CTO.. · SSL VPN详细知识 · Sniffer安全技术从入门.. · VPN技术 · 了解统一威胁管理(UTM).. · 网络钓鱼 · ADSL应用面面俱到 · ADSL应用面面俱到 |
|||