博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
新手用WPF山寨QQ管家7.6(二)
阅读量:7126 次
发布时间:2019-06-28

本文共 1675 字,大约阅读时间需要 5 分钟。

原文

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


 

接着上次的来

2.导航最大最小关闭按钮的制作:

 

效果展示

写一个Border,BorderThickness="1,0,0,0",只有左边有线条,Border内放关闭按钮图片,接着设计好背景渐进颜色并透明,构成按钮控件,在故事版里做MouseOver和Pressed效果,这里需要做成时间渐变。

关闭按钮样式代码

最大化按钮MouseOver是红色的,而且比其他按钮宽一些。

最大化按钮样式代码

   图标是自己从管家上扣的...效果不是立体的,也能用,我实在找不到这种小图标了。

 

3.登录管家按钮的制作:

 

效果展示

这个按钮用到了图形间的组合,是一个圆角Rectangle和一个Ellipse排斥组合而成。

先画一个Rectangle,再在上面画一个Ellipse,圈住两个图形,选择对象->合并->排斥,就能做出上面的效果了,空圈放图片,按钮效果同上。

 

4. 皮肤选择层的制作:

 

效果展示

资产->形状里有三角形,用它和圆角巨型组合出底层形状(相并),并构成ScrollViewer控件,在ScrollViewer内添加WrapPanel用于放3*3张图片。

皮肤选择层代码
皮肤选择层样式代码

5. 换肤的实现:

定义ResourceHelper类:

1    static class ResourceHelper 2    { 3         public static void LoadResource(string fileName) 4         { 5             Application.Current.Resources.MergedDictionaries[0] = new ResourceDictionary() 6             { 7                 Source = new Uri(fileName,UriKind.RelativeOrAbsolute) 8             }; 9         }10    }

不同的皮肤分别为不同的Style.xaml

1   
2
3
4
5
6
7   

换肤按钮事件:

1      private void ThemeImage_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)2         {3             Image image = sender as Image;4             if (image != null && image.Source != null)5             {6                 string imgName = image.Name;7                 ResourceHelper.LoadResource("pack://application:,,,/项目名;component/Theme/" + imgName + ".xaml");8             }9         }

我的每个Theme.xaml目前只有背景图和导航字色变化:

Theme.xaml内: 
MainWindow内: Background="{DynamicResource WindowBack}"

换肤的时候DynamicResource会跟着换,StaticResource不会。

直接修改样式文件内的元素会提示只读,百度了下也只有换肤能做,不知道其他办法~

我的换肤是临时的,保存不了,重运行就恢复,不知道怎么解决呀~在此请教下高手们...

转载地址:http://ajhel.baihongyu.com/

你可能感兴趣的文章
[学习笔记]可编程管线(流水线),可编程着色语言
查看>>
hdu 4411(最小费用流)
查看>>
字符串匹配算法之KMP&Boyer-Moore
查看>>
[Python] heapq简介
查看>>
[转]SQL SERVER 函数组合实现oracle的LPAD函数功能
查看>>
SQL 必知必会·笔记<17>使用存储过程
查看>>
【Android】输入设备配置文件(.idc文件)
查看>>
元数据标签Embed
查看>>
1326: The contest(并查集+分组背包)
查看>>
编码规范(重要)
查看>>
drop有default constraint的column
查看>>
C# 异常类型
查看>>
C语言realloc,malloc,calloc的区别【转载】
查看>>
SQL中采用Newtonsoft.Json处理json字符串
查看>>
jspace2d——A free 2d multiplayer space shooter
查看>>
Form 重置记录编号(app_record.for_all_record)
查看>>
VC之美化界面(内容覆盖十分全面,经典)
查看>>
国外经典设计:12个漂亮的移动APP网站案例
查看>>
pl/sql programming 15 数据提取
查看>>
DBCP(一)数据源配置文件
查看>>