WPF:换肤基础(临摹贴)_.NET_编程开发_程序员俱乐部
中国优秀的程序员网站
程序员频道
CXYCLUB技术
地图
最新资讯
|
百度新闻
|
GOOGLE地图
|
RSS订阅
|
更多
职场话题
生活休闲
恋爱交友
程序人生
学习进修
职业发展
项目管理
求职面试
程序员创业
JAVA
.NET
C/C++
Ruby
Delphi
JavaScript
PHP
ASP
JSP
HTML
XML
移动开发
开发工具
其他
编程开发
数据库
操作系统
新闻资讯
互联网
非技术区
非技术区
生活休闲
恋爱交友
职业发展
求职面试
程序人生
移动开发
开发工具
DB2
MySql
Sybase
开发
JAVA
.NET
PHP
C/C++
数据库
SQL Server
Oracle
互联网
运营
推广
营销
SEO
系统
Linux
Unix
Windows
资讯
动态
产品
人物
创业
职场
学习
管理
热搜:
循环
class
Win8
摄像头
二维码
IIS7
controller
异步
同步
编码
序列化
版本
加密解密
缓存
HTTP
循环
class
Win8
摄像头
二维码
IIS7
controller
异步
同步
编码
更多>>
您所在的位置:
程序员俱乐部
>
编程开发
>
.NET
> WPF:换肤基础(临摹贴)
WPF:换肤基础(临摹贴)
2013/9/5 23:14:34 蒋叶湖 博客园
我要评论(
0
)
摘要:
目标:动态变更窗口的底色(当然,可以扩展为其他元素的样式)思路:创建两个资源文件(ResourceDictionary),一个用来存放默认样式(Default.xaml),一个用来存放其他样式(HotHot.xaml);在需要变更样式的窗体中(本例中为:WinWords),使用动态样式(...Style="{DynamicResourcestyleBcakground}")在Application类中(方便调用),添加一个应用样式的公共方法(ApplySkin)在主窗体中
标签:
目标:动态变更窗口的底色(当然,可以扩展为其他元素的样式)
思路:
创建两个资源文件(Resource Dictionary),一个用来存放默认样式(
Default
.xaml),一个用来存放其他样式(HotHot.xaml);
在需要变更样式的窗体中(本例中为:WinWords),使用动态样式(... Style="{DynamicResource styleBcakground}")
在Application类中(方便调用),添加一个应用样式的公共方法(ApplySkin)
在主窗体中(本例是在WinWords窗体中通过按钮点击事件)调用Application中应用样式方法(ApplySkin)
在本例中,WinWords窗体启动时,自动调用了ApplySkin方法来应用默认的样式(Default)
OK,代码如下:
<HOME_DIR>\Resources\Skins\Default.xaml
1
<!--
Background Style
-->
2
<
Style
x:Key
="styleBackground"
>
3
<
Setter
Property
="Control.Background"
>
4
<
Setter.Value
>
5
<
LinearGradientBrush
StartPoint
="0,0.5"
EndPoint
="1,0.5"
Opacity
="0.5"
>
6
<
GradientStop
Color
="LightSkyBlue"
Offset
="0"
/>
7
<
GradientStop
Color
="WhiteSmoke"
Offset
="0.5"
/>
8
<
GradientStop
Color
="LightSkyBlue"
Offset
="1"
/>
9
</
LinearGradientBrush
>
10
</
Setter.Value
>
11
</
Setter
>
12
</
Style
>
<HOME_DIR>\Resources\Skins\HotHot.xaml
1
<!--
Background Style
-->
2
<
Style
x:Key
="styleBackground"
>
3
<
Setter
Property
="Control.Background"
>
4
<
Setter.Value
>
5
<
LinearGradientBrush
StartPoint
="0.5,0"
EndPoint
="0.5,1"
>
6
<
GradientStop
Color
="#50000000"
Offset
="0.5"
/>
7
<
GradientStop
Color
="#ff999999"
Offset
="1"
/>
8
</
LinearGradientBrush
>
9
</
Setter.Value
>
10
</
Setter
>
11
</
Style
>
<HOME_DIR>\WinWords.xaml
1
2
<
Grid
Style
="
{DynamicResource styleBackground}
"
>
3
<HOME_DIR>\WinWords.xaml.cs
1
public WinWords()
2
{
3
InitializeComponent();
4
5
this.ApplySkin("Default");
6
}
7
8
private void ApplySkin(string pstrDictPath)
9
{
10
string skinDictPath = @".\Resources\Skins\" + pstrDictPath + @".xaml";
11
Uri skinDictUri = new Uri(skinDictPath, UriKind.Relative);
12
13
MyCcApp app = Application.Current as MyCcApp;
14
app.ApplySkin(skinDictUri);
15
}
16
private void btnTestSkining_Click(object sender, RoutedEventArgs e)
17
{
18
this.ApplySkin("HotHot");
19
}
<HOME_DIR>\MyCcApp.xaml.cs
1
public void ApplySkin(Uri skinDictionaryUri)
2
{
3
ResourceDictionary skinDict = Application.LoadComponent(skinDictionaryUri) as ResourceDictionary;
4
5
Collection
<
ResourceDictionary
>
mergedDicts = base.Resources.MergedDictionaries;
6
7
if (mergedDicts.Count > 0)
8
{
9
mergedDicts.Clear();
10
}
11
12
mergedDicts.Add(skinDict);
13
}
上一篇:
WPF里的DependencyProperty(2)
下一篇:
WPF 文本呈现(2)
相关文章
查看所有评论(
0
)
我要评论
发表评论
用户名:
匿名
最新文章
获取 Data..
一起学WPF系..
·
获取 DataTemplate 所对应的
·
一起学WPF系列(2):第一个WPF应用
·
Property Value Inher
·
WPF 文本呈现(2)
·
WPF:换肤基础(临摹贴)
·
WPF里的DependencyPrope
·
ASP.NET的六大内置对象
·
[转]关于IIS7.5下的web.con
·
一些顿悟,和新的开始!
·
Asp.net MVC4 Step By
·
C#设计模式(2)——简单工厂模式
·
消息筛选器显示应用程序正在使用中(Wor
·
form表单以get方式提交时actio
·
Datagridview中数字格式列 不
·
动态绑数据(GridView控件Head
最新标签
循环
class
Win8
摄像头
二维码
IIS7
controller
异步
同步
编码
今日热点
·
[转]超时时间已到。超时时间已到,但是尚
·
错误:没有注册类别 (异常来自 HRES
·
c# 反射详解
·
Spring.net + Fluorin
·
获取 DataTemplate 所对应的
·
一起学WPF系列(2):第一个WPF应用
·
Property Value Inher
·
WPF 文本呈现(2)
·
WPF:换肤基础(临摹贴)
·
WPF里的DependencyPrope
推荐文章
【共享】流程图..
C# Stri..
·
java.net.Conne
·
错误:没有注册类别 (异常来自 HRES
·
iis7.0官方下载 IIS 7.0(微
·
Devpress.XtraGrid.Gr
·
.NET 开发淘宝API代码实例
·
win7 64位 安装ORACLE10g
·
C#开发winform程序的界面框架
·
关于获得Repeater中某行数据项的某
·
expression blend 3破解
·
.net(C#)从html中提取中文字_
·
關於PB12.NET
·
读取csv时中文乱码问题
·
gridview导出数据至Excel o
·
c# WinForm开发 DataGri
·
C# ComboBox控件使用
English
|
关于我们
|
诚聘英才
|
联系我们
|
网站大事
|
友情链接
|
意见反馈
|
网站地图
Powered by
程序员俱乐部
程序提供: HugoCMS 2.0
网站备案:苏ICP备11048748号-1