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

2024-01-05 06:50
文章标签 新手 qq wpf 管家 7.6 山寨

本文主要是介绍新手用WPF山寨QQ管家7.6(一),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

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

posted on 2013-04-24 23:01 NET未来之路 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/lonelyxmas/archive/2013/04/24/3041364.html

这篇关于新手用WPF山寨QQ管家7.6(一)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/572019

相关文章

最好用的WPF加载动画功能

《最好用的WPF加载动画功能》当开发应用程序时,提供良好的用户体验(UX)是至关重要的,加载动画作为一种有效的沟通工具,它不仅能告知用户系统正在工作,还能够通过视觉上的吸引力来增强整体用户体验,本文给... 目录前言需求分析高级用法综合案例总结最后前言当开发应用程序时,提供良好的用户体验(UX)是至关重要

Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)

《Python基于火山引擎豆包大模型搭建QQ机器人详细教程(2024年最新)》:本文主要介绍Python基于火山引擎豆包大模型搭建QQ机器人详细的相关资料,包括开通模型、配置APIKEY鉴权和SD... 目录豆包大模型概述开通模型付费安装 SDK 环境配置 API KEY 鉴权Ark 模型接口Prompt

wireshark安装及抓包新手使用教程

Wireshark是非常流行的网络封包分析软件,可以截取各种网络数据包,并显示数据包详细信息。常用于开发测试过程各种问题定位。本文主要内容包括:   1、Wireshark软件下载和安装以及Wireshark主界面介绍。   2、WireShark简单抓包示例。通过该例子学会怎么抓包以及如何简单查看分析数据包内容。   3、Wireshark过滤器使用。过滤器包含两种类型,一种是抓包过滤器,

WPF入门到跪下 第十三章 3D绘图 - 3D绘图基础

3D绘图基础 四大要点 WPF中的3D绘图涉及4个要点: 视口,用来驻留3D内容3D对象照亮部分或整个3D场景的光源摄像机,提供在3D场景中进行观察的视点 一、视口 要展示3D内容,首先需要一个容器来装载3D内容。在WPF中,这个容器就是Viewport3D(3D视口),它继承自FrameworkElement,因此可以像其他元素那样在XAML中使用。 Viewport3D与其他元素相

P11019 「LAOI-6」[太阳]] 请使用最新版手机 QQ 体验新功能

English statement. You must submit your code at the Chinese version of the statement. 题目描述 你的 QQ 收到了一条新消息!但是你很生气,因为你看不到别人在手机 QQ 上发送的超级表情。 消息形如一个字符串 S,包含且仅包含一个超级表情。具体地,我们将 S 的拼音采用驼峰命名法,可以化为如下形

Linux下新手如何将VIM配置成C++编程环境(可以STL自动补全)

~ 弄拉老半天,终于弄的差不多啦,果然程序员还是需要有点折腾精神啊。 首先你要安装vim,命令:sudo apt-get install vim vim它只是一个编辑器,它不是IDE(比如codeblocks),IDE相当于已经给一个房子装好啦各种东西,你只要使用就行,vim却要自己装各种东西,相当于买了一个毛坯房,自己要给房子装潢。 如何安装g++编译器可以参考我上一篇博文. 1:vi

pdf文件编辑器有哪些?分享适合新手用的5个PDF编辑器(解锁教程)

pdf是一种通用文件格式,也是一种夸操作系统平台的文件格式。 好用的PDF文件编辑器可以让您更改和添加文本、编辑图像、添加图形、签署签名、填写表单数据等。下面整理了关于pdf文件编辑方法介绍,以及一些好用的pdf编辑器,有需要的可以了解下。 一、pdf编辑软件 pdf编辑器1:金舟PDF编辑器——专业的pdf编辑 专业的pdf文件编辑工具,适用于Windows7以上的操作系统。能够完成

【C++】list类:模拟实现(适合新手的手撕list)

提示:在开始模拟实现list前,最好先熟悉下list相关接口: 【C++】容器list常用接口详解-CSDN博客https://blog.csdn.net/2301_80555259/article/details/141756824?spm=1001.2014.3001.5501 目录 一.基本结构  二.构造函数 三.析构函数 四.迭代器的实现  五.const迭代器 六.

C# WPF燃气报警器记录读取串口工具

C# WPF燃气报警器记录读取串口工具 概要串口帧数据布局文件代码文件运行效果源码下载 概要 符合国标文件《GB+15322.2-2019.pdf》串口通信协议定义;可读取燃气报警器家用版设备历史记录信息等信息; 串口帧数据 串口通信如何确定一帧数据接收完成是个麻烦事,本文采用最后一次数据接收完成后再过多少毫秒认为一帧数据接收完成,开始解析出来。每次接收到数据更新一次re

期权交易中最基本的操作!新手先从期权买入开仓开始!

今天带你了解期权交易中最基本的操作!新手先从期权买入开仓开始!交易期权的第一步是选择一个可信赖的期权交易平台,可以是大型券商提供的交易平台或专业的期权交易所。 新手先从期权买入开仓开始 买入开仓(即建立权利仓),卖出开仓(即建立义务仓)。买入开仓最大亏损不超过开仓时支付的权利金,最大收益,理论上无限;卖出开仓则相反,最大收益不超过开仓时收取的权利金,最大亏损理论上无限。 买入开仓亏损有限,收