随笔分类 - 编程
用XAML做网页!!—导航栏
摘要:这次要完成的是导航栏,这是页面中比较复杂的区域。
先在 Microsoft Expression Design 中绘制导航栏的背景图案:
...
导出为barback.xaml,增加其填充规则:
...
完成后的代码如下:
...
阅读全文
用XAML做网页!!—广告展示区
摘要:
此次我们来进行广告展示区块的制作。
首先在Show区块中去掉原来设置的背景色,加入新的渐变背景设定:
...
可以看到,它在最底部是微微泛红的:
...
这样是模拟了橙色导航栏映射到这里的漫反射效果,增加了材质的金属质感。
...
阅读全文
用XAML做网页!!—页头
摘要:接续上次进度,我们此次来制作页头。
首先要实现两侧边缘的美化,如下图所示:
...
在边缘处有一层朦胧的亮度反光效果,这也是通过简单的渐变实现的,而且我们在后面的每个区块中都要实现类似的效果,所以现在就将所需的资源一起创建了。
在Grid中创建一个资源标记,并设置4个笔刷资源:
...
LightLeft和LightRight是我们一会用到的,剩下两个会在其它区块中使用。
...
阅读全文
用XAML做网页!!—框架
摘要:上一篇中我进行了一下效果展示和概述,此篇开始将重现我此次尝试的步骤,我想大家通过阅读这些步骤,可以了解到XAML网页排版的方法。
下面就开始编写XAML,首先来定义一下页面的属性:
......
WindowTitle就是页面标题。
SnapsToDevicePixels属性很重要,它会使我们的图像自动进行像素对齐,从而去除模糊的边缘,这可以使我们的网页看起来更像传统网页。
接下来这一点很有趣,我们要在页面中放置ScrollViewer,否则我们的网页超出屏幕的时候不会显示滚动条,连这个都要我们自助使用了:
.....
阅读全文
WPF疑难杂症会诊
摘要:
为什么图片像素是模糊的?Gird布局无法自适应内容扩展了!怎么才能禁止内容撑大容器?
怎么弄出CheckListBox来?怎么让多选列表中所有项的选择状态反转?如何在多种样式之间共享相同的部分?
在此我列出了一些我在编写MailMail期间遇到的一些问题和解决办法。
算是抛砖引玉,其中有些是使用偏方解决的,期待高手能提供出最佳的解决方法。
阅读全文
WPF界面设计技巧(11)-认知流文档 & 小议WPF的野心
摘要:流文档是WPF中的一种独特的文档承载格式,它的书写和呈现方式都很像HTML,它也几乎具备了HTML的绝大多数优势,并提供了更强的编程支持及对WPF其他元素的兼容。
或许有人会问,这么一个和HTML极度相似的东西有什么意义?
首先他和HTML定位不一样,至少是和HTML现在的定位不一样。我们拿到一个流文档,很明确的知道它就是一份文档;但拿到一个HTML,即使它格式再规范,我们也不确定它是什么东西,它里面可能掺杂了很多页头、页脚、导航链接、菜单、布局块、侧边栏、脚本等等,它就是个大杂烩,我们的程序并不喜欢这种不确定的东西。
...
阅读全文
WPF界面设计技巧(10)-样式的继承
摘要:WPF的样式的继承属性极少被文章提及,以至于我在编写MailMail期间为此踌躇数日,最后终于在E文版的MS社区得到指点才得以解惑。
现将其分享出来,这是一个非常有用的特性,这是所有教程在讲Style时就该顺带讲出来的,我希望更多人看到,以少走弯路。
WPF的样式需要显示声明继承,即使用Style的BasedOn属性。
通过继承基样式及充分地重用通用资源(如色彩、笔刷),我们不难实现界面的色彩风格切换功能。
为一套样式定义多种风格供选,或是让用户自由定制他们喜欢的色彩主题,将是一项激动人心的功能。
阅读全文
WPF界面设计技巧(9)—使用UI自动化布局
摘要:最近一直没时间更新这系列文章,因为我一直在埋头编写我的第一个WPF应用程序:MailMail
今天开始编写附属的加密/解密工具,对UI自动化布局有些心得,就此分享出来。
...
相比通过窗体设计器“画”界面来说,UI自动化需要更多的知识与经验、更复杂的设计步骤以及更少的可视化编辑器支持,有时可视化的编辑行为甚至会破坏你已有的UI自动化布局,所以要谨慎操作。
...
...
阅读全文
一起来乐邮邮——妙趣小软件:MailMail发布预告
摘要:最近一直在搞的东西就是它了,这是我用WPF制作的第一个应用,现在基本成型了,再过些日子就该出锅啦,是时候出来秀秀了。
我目前的想法是定位为共享软件,在发布前几天我会为博客园用户免费发放注册码哦,嘿嘿。
MailMail的用途是通过邮箱进行日常文件传递、分发或备份,随手拖入要传送的文件,点击“发送”就OK了。
每天工作后提交文档?没问题!
保持给每个同事分发最新的客户资料?没问题!
随时随手备份程序代码?没问题!
MailMail会让你乐此不疲:)
阅读全文
WPF界面设计技巧(8)—自制山寨版CheckListBox
摘要:近年来IT市场山寨横行啊,我们今天也来发扬一下山寨精神,搞个自制的CheckListBox出来。
我也不知道为什么,WPF里没有提供 CheckListBox 控件,但凭借WPF强大的外观定制能力,我们可以轻松的创制一个自己的 CheckListBox 。
CheckListBox 的基本功能其实和 ListBox 没有太大出入,只要将普通的ListBox 的选择模式设为多选,它就能基本实现 CheckListBox 的功用了,只不过从用户角度来说,它的使用方式不如 CheckListBox 看起来那么明确而已。
我们接下来就仅仅采用外观修改的方法,将 ListBox 与 CheckBox 拼插,打造出无敌山寨版 CheckListBox 。
阅读全文
WPF界面设计技巧(7)—模拟电梯升降的缓动动画
摘要:如同Flash一样,WPF的亮点之一也在于其擅于表现平滑的动画效果,但以移动动画来说,仅凭简单的起始位置、目标位置,所产生的动画仍会非常生硬,这种动画忽略了移动开始时的加速过程与移动结束时的减速过程。
WPF在关键帧动画中提供了样条内插(Spline)型的关键帧,用以控制变化的速率曲线,但这东西实在有些复杂,且不够形象化,我研究很久也没明白如何实现“缓入——缓出”的效果,随后我从一本经典牛X却鲜有人知的过时的FlashMX教程中提取了一个缓动函数,我们将用这个函数来较真实地模拟电梯的升降行为。
阅读全文
WPF界面设计技巧(6)—玩玩数字墨水手绘涂鸦
摘要:想让你的程序支持鼠标及手写笔涂鸦吗?只要敲入“<InkCanvas/>”这几个字符,你就会领悟什么叫“很好很强大”,今天我们来做一个手写板的演示,你可把它当作屏幕便笺使用。
首先要用 Microsoft Expression Design 2 画一幅英俊的界面背景,这里我们剽窃索尼 VAIO CR 笔记本的设计,做出了一个油光锃亮的面板
阅读全文
WPF界面设计技巧(5)—自定义列表项呈现内容
摘要:接续上次的程序,稍微改动一下原有样式,并添加一个数据模板,我们就可以达成下面这样的显示功能:
鼠标悬停于文件列表项上,会在工具提示中显示图像缩略图及文件名、文件大小信息。
选中一个列表项,该列表项会扩大,并动态显示出一个小缩略图及文件的所在路径。
阅读全文
WPF界面设计技巧(4)—自定义列表项样式
摘要:有前面修改按钮样式的基础,我们可以尝试来定制一个即好看又好用的 ListBox ,今天先来讲“好看”部分。
这次教程主要是为了后面做铺垫,在下一篇教程中,我将会为大家讲述如何定制列表项的内容,比如让每个项目都可以显示图片、文件尺寸等信息,借助 WPF 的强大界面设计特性,我们不需开发自定义控件,只需用一些 XAML 代码,就可以为普通控件赋予丰富的呈现功能,敬请关注。
阅读全文
WPF界面设计技巧(3)—实现不规则动画按钮
摘要:发布了定义WPF按钮的教程后,有朋友问能否实现不规则形状的按钮,今天我们就来讲一下不规则按钮的制作。
不规则按钮的做法实际上和先前我们做不规则窗体的方法差不多,只是为按钮弄个不是那么方方正正的背景而已。
我们这次沿用自定义窗体时的设计图形,设计一个动态的不规则按钮,在这个示例中我们要将先前设计的整个图形作为按钮,并让外围的圆环始终围绕中心圆形旋转,在鼠标移入时,还要产生颜色变化及发光效果。
阅读全文
WPF界面设计技巧(2)—自定义漂亮的按钮样式
摘要:上次做了个很酷的不规则窗体,这次我们来弄点好看的按钮出来。
此次将采用纯代码来设计按钮样式,不需要 Microsoft Expression Design 辅助了。
首先打开 Microsoft Visual Studio 2008 ,新建一个WPF项目,在上面随便放几个按钮...
阅读全文
WPF界面设计技巧(1)—不规则窗体图文指南
摘要:初到园子,奉上第一篇入门级教程,请勿见笑。
以往WinForm编程中,实现不规则窗体是有一定难度的,更难的是不规则窗体的边缘抗锯齿及局部透明处理。而现在,WPF的出现使这个问题迎刃而解,使得我们可以轻松、灵活地美化用户界面。
...
阅读全文