新手用WPF山寨QQ管家7.6(一)

简介: 原文 http://www.cnblogs.com/channingzhao/archive/2013/04/10/3012587.html     刚刚入门WPF,界面方面参考《基于Expression Blend 4中文版WPF和Silverlight项目设计基础》 一书学了一些,由于本人不是...

原文 http://www.cnblogs.com/channingzhao/archive/2013/04/10/3012587.html

    刚刚入门WPF,界面方面参考《基于Expression Blend 4中文版WPF和Silverlight项目设计基础》 一书学了一些,由于本人不是搞前台设计的,可是WPF做前台确实蛮好,加上公司要求做一个比较炫的界面,所以最后决定参考QQ管家的界面来做,接下来就是分享一下我这个新手边学边做的过程,因为都是笨办法来画,所以代码难免存在冗余.....

先来展示一下目前的成果吧~~2013-04-10

额....导航图标随便找的,凑合凑合

支持换肤,不是完全按照QQ管家界面走的,大部分包含的界面做了些,尤其是项目中可能用到的

1.导航TabItem的制作:

打开Blend4新建个WPF项目,然后在MainWindow里画一个Border,并设置BorderThickness="0.7" CornerRadius="5"  BorderBrush="Transparent"分别表示线、圆角、边框透明。

在属性面板里设置Border背景色为线性渐变,颜色设置成你想要的效果,但是最后要都变成透明,因为这里不做设计,后面做MouseOver触发效果的时候,系统会自动给你生成默认状态下的颜色,比如黑色,到时候返回头再做就浪费时间了,这是个人体会,可能还有更高明的办法吧~

在Border里放一个Grid,并分2行RowDefinition,上面放导航图片,下面写对应文本。

圈住Border包裹住的这些控件,然后在选工具->构成控件,选择TabItem,可以生成在当前Window下,也可以直接生成到全局,个人感觉在当前Window下设计比较方便,之后再剪切到资源字典里。

按F6切换到设计界面,方便做效果,如图:

 

 

Blend4设计界面

“触 发器”界面里能添加和修改针对控件的点击、焦点、可用、鼠标移动等事件,选择IsMouseOver=True属性,然后在下面的“激活时的操作”点+ 号,就能添加一个故事版了,不过名字是系统给起的,个人推荐在“对象和时间线”里先添加一个命名好的故事版再在触发器里选择刚才添加的比较好,这样不会再 到代码里手动修改名字。

可能会有发现IsMouseOver=False在触发器里不能写成True,那么手动在代码里改,添加好“激活时操作”,别忘了在“取消激活时的操作”里添加同样的故事版,并设置为Remove,如果是做的时间渐变效果就单独做一个故事版来做消失效果,在“取消激活时的操作”里指定故事版并Begin。

选好故事版就能开始设计针对不同触发器的效果了,在“对象和时间线”选择要设计的元素Border分别修改将之前做的边框和背景色变为可见。

在时间线上会出现一个原点表示在当前时刻触发,如果想做一个0.5秒渐变出现的效果就先把黄色指针放到0.5然后修改边框和背景色。

IsPressed点击事件可以把MouseOver最后的动画点复制过来,再加深颜色或者其他想要的效果,这样过度会好,尤其是有时间的渐变,个人观点....

样品展示

再细节的地方就不写啦,看看代码,自己多点点就明白了,反正我这都是笨办法,最后也没做出跟官方类似的效果,但是也有70%吧~

 最后把做好的TabItem引用到TabControl中,Style="{DynamicResource NavTabItem}", DynamicResource和StaticResource的区别百度找找,基本就是换肤的时候DynamicResource会跟着换,StaticResource不会

 

查看导航Style代码

我做的这个TabItem不可重用,意思就是你有多少个选项卡就复制出多少个,改图片和文本,而不能在XAML代码里分别引用相同的style来自 定义图片,只能在资源字典里整,可能比较麻烦吧,我也不知道有啥好办法没,反正这样做我也方便后期修改不同选项卡的图片或文本。

TabItem内包含的Grid,我设置了Margin=10,为了后期在Grid中嵌套Frame引用Page,并且做背景渐进透明效果,记得在Frame上加NavigationUIVisibility="Hidden" 屏蔽Page导航条。

Blend4会自动生成一些没用的代码,可以手动删掉,修改调整后放到资源字典,熟悉代码的也可以自己直接修改细节而不需要工具的辅助。

目录
相关文章
|
C#
WPF界面设计技巧(8)—自制山寨版CheckListBox
原文:WPF界面设计技巧(8)—自制山寨版CheckListBox    近年来IT市场山寨横行啊,我们今天也来发扬一下山寨精神,搞个自制的CheckListBox出来。   喏,CheckListBox 就是下面这玩意啦:       为什么要搞它?我们是山寨耶,说搞谁就搞谁!   我也不知道为什么,WPF里没有提供 CheckListBox 控件,但凭借WPF强大的外观定制能力,我们可以轻松的创制一个自己的 CheckListBox 。
865 0
|
C#
新手用WPF山寨QQ管家7.6(二)
原文 http://www.cnblogs.com/channingzhao/archive/2013/04/11/3013619.html 新手用WPF山寨QQ管家7.6(一) http://www.
1027 0
|
4月前
|
C# 开发者 Windows
基于Material Design风格开源、易用、强大的WPF UI控件库
基于Material Design风格开源、易用、强大的WPF UI控件库
304 0
|
4月前
|
C#
浅谈WPF之装饰器实现控件锚点
使用过visio的都知道,在绘制流程图时,当选择或鼠标移动到控件时,都会在控件的四周出现锚点,以便于修改大小,移动位置,或连接线等,那此功能是如何实现的呢?在WPF开发中,想要在控件四周实现锚点,可以通过装饰器来实现,今天通过一个简单的小例子,简述如何在WPF开发中,应用装饰器,仅供学习分享使用,如有不足之处,还请指正。
111 1
|
1月前
|
开发框架 缓存 前端开发
循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(11) -- 下拉列表的数据绑定以及自定义系统字典列表控件
循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(11) -- 下拉列表的数据绑定以及自定义系统字典列表控件
|
27天前
|
C# 开发者 Windows
一款基于Fluent设计风格、现代化的WPF UI控件库
一款基于Fluent设计风格、现代化的WPF UI控件库
|
7天前
|
C# 前端开发 UED
WPF数据验证实战:内置控件与自定义规则,带你玩转前端数据验证,让你的应用程序更上一层楼!
【8月更文挑战第31天】在WPF应用开发中,数据验证是确保输入正确性的关键环节。前端验证能及时发现错误,提升用户体验和程序可靠性。本文对比了几种常用的WPF数据验证方法,并通过示例展示了如何使用内置验证控件(如`TextBox`)及自定义验证规则实现有效验证。内置控件结合`Validation`类可快速实现简单验证;自定义规则则提供了更灵活的复杂逻辑支持。希望本文能帮助开发者更好地进行WPF数据验证。
25 0
|
7天前
|
C# UED 定位技术
WPF控件大全:初学者必读,掌握控件使用技巧,让你的应用程序更上一层楼!
【8月更文挑战第31天】在WPF应用程序开发中,控件是实现用户界面交互的关键元素。WPF提供了丰富的控件库,包括基础控件(如`Button`、`TextBox`)、布局控件(如`StackPanel`、`Grid`)、数据绑定控件(如`ListBox`、`DataGrid`)等。本文将介绍这些控件的基本分类及使用技巧,并通过示例代码展示如何在项目中应用。合理选择控件并利用布局控件和数据绑定功能,可以提升用户体验和程序性能。
19 0
|
1月前
|
C# Windows
WPF中如何使用HandyCotrol控件库
WPF中如何使用HandyCotrol控件库
58 1
下一篇
DDNS