频 道 直 达 - 新闻 - 培训 - 软件 - 教程 - 前沿 - 组网 - 系统应用 - 安全 - 编程 - 存储 - 操作系统 - 数据库 - 服务器 - 专题 - 产品 - 案例库 - 读书 - 博客 - BBS
51CTO.COM_中国最大的网络技术网站
找资料:

4.3.3 倒影的实现

作者: 王少葵 出处:电子工业出版社  2008-03-20 15:35    砖    好    评论   进入论坛
阅读提示:《深入解析WPF编程》详细讲解了如何基于.NET 3.0架构来开发WPF应用程序,并帮助读者快速掌握和精通WPF编程思想和技巧。本文介绍了XAML的倒影的实现。

4.3.3  倒影的实现

倒影用来显示已有内容的倒置图像。在Expression Blend中创建倒影是很简单的,不过需要我们编写一点代码。我们待会儿就可以见到,实际上只需要一行代码就可以实现了。

需要注意的是,这和之前的版本有些不同,之前的Interactive Designer中默认的根元素是Grid,而在Blend中是Window,因为Grid是容器类型的控件,在其中可以包含多个元素,而在Window中只能包含一个元素。所以我们需要修改窗体的XAML代码,在ProductGrid外面套上一个Grid,给它取个名字叫GridContainer,见下面示例:

<Window>
......
<Grid x:Name="GridContainer">
<Grid.RowDefinitions>
<RowDefinition Height="0.757*"/>
<RowDefinition Height="0.243*"/>
</Grid.RowDefinitions>
<Grid x:Name="ProductGrid" DataContext="{Binding Mode=Default,
Source={StaticResource CatalogDS}, XPath=/Catalog/Products/
Product}" VerticalAlignment="Stretch" Height="Auto" Margin=
"0,0,0,0">
......
</Grid>
</Grid>
</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()
{
this.InitializeComponent();
Reflection.Fill = new VisualBrush(ProductGrid);
}

太简单了吧,当运行应用程序时,我们可以看到倒影的效果。


回书目      
专题
ASP.NET 2.0基础开发指南
.NET移动与嵌入式技术专题
.NET Framework新手入门专题
VS.NET实用开发专题
ADO.NET实用技巧专题
我也说两句

匿名发表

(如果看不清请点击图片进行更换)


中 国 最 大 的 网 络 技 术 网 站 ·
技 术 成 就 梦 想
订阅技术快讯
电子杂志下载
名称:SQL Server数据库管理精品黄皮书
简介:书中文章经过精挑细选,便于用户能根据自己的实际工作和学习,快速在本书寻找到相关资料。内容涵盖了SQL Server的安装与升级、语句查询、数据备份和恢复、自动化任务、数据同步、数据字典、安全和预防、性能和优化、集群等各方面应用信息,以及DBA管理人员在数据库管理工作中
名称:2007路由技术大全
简介:《2007路由技术大全》由51CTO.com网站特别策划制作,该书包括路由器技术、路由器产品、路由器配置、安全设置、路由器故障处理、路由器密码恢复,以及广大网友在实践使用中的心得经验和技巧文章,内容注重实用性,适用于初学者入门,也适合多年从业者提高,是一本实践和理论完
名称:网络安全精品应用黄皮书
简介:《2007精品网络安全黄皮书》包括了9个大类24个小类, 800余篇文章,内容包含了熊猫烧香病毒、DDOS攻击、ARP病等热点问题的介绍及解决方案。从病毒查杀、防范、系统、数据等各方面的安全设置到黑客技术的了解、防范,涉及到了安全应用的全部领域, 由浅至深内容全面。