使WPF程序应用预置的控件风格, 如Aero, Luna, Royale, Classic等
来源:互联网 发布:淘宝网秧歌服山东菏泽 编辑:程序博客网 时间:2024/06/06 02:53
WPF预设有Aero, Classic, Luna, Royale主题, WPF程序会根据Windows主题决定WPF程序所使用的控件风格, 而且当Windows主题不是Aero, Luna或Royale, 而是其他主题的话, WPF将会采用比较丑的Classic主题, 那我怎么让WPF程序使用指定的主题呢?
其实很简单, 下面实例如何设定为Aero主题:
在WPF项目中添加PresentationFramework.Aero.dll这个引用, 然后在程序的Resources中加入
注意, 项目必须引用主题对应的Assembly, 比如PresentationFramework.Aero.dll, PresentationFramework.Royale.dll等等, 它们可以在"Program Files\Reference Assemblies\Microsoft\Framework\v3.0" 或者 GAC中找到.
上面的XAML代码也可以使用相应的C#代码代替, 比如在Application的Startup事件处理函数中加入代码:
要指定其他主题的方法也差不多, 也就是引用相关dll和添加Resources.
WPF中的Aero主题和Windows Vista里的Aero主题控件风格完全一样, 包括譬如MouseEnter时的动画效果, 下面是在启用了Luna Element 4 视觉效果的Windows 2003系统运行的使用了Aero主题的WPF程序截图:
其实很简单, 下面实例如何设定为Aero主题:
在WPF项目中添加PresentationFramework.Aero.dll这个引用, 然后在程序的Resources中加入
<Application.Resources>
<ResourceDictionary Source="/PresentationFramework.Aero, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35;component/themes/aero.normalcolor.xaml" />
</Application.Resources>
这相当于把PresentationFramework.Aero程序集中的空间风格代码引用到当前程序中.<ResourceDictionary Source="/PresentationFramework.Aero, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35;component/themes/aero.normalcolor.xaml" />
</Application.Resources>
注意, 项目必须引用主题对应的Assembly, 比如PresentationFramework.Aero.dll, PresentationFramework.Royale.dll等等, 它们可以在"Program Files\Reference Assemblies\Microsoft\Framework\v3.0" 或者 GAC中找到.
上面的XAML代码也可以使用相应的C#代码代替, 比如在Application的Startup事件处理函数中加入代码:
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
Uri aero = new Uri("/PresentationFramework.Aero, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35;component/themes/aero.normalcolor.xaml", UriKind.Relative);
Resources.MergedDictionaries.Add(Application.LoadComponent(aero) as ResourceDictionary);
}
当然也可以在Window的Resources中加入这个ResourceDictionary, 那样就只会在这个Window中采用此主题.{
base.OnStartup(e);
Uri aero = new Uri("/PresentationFramework.Aero, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35;component/themes/aero.normalcolor.xaml", UriKind.Relative);
Resources.MergedDictionaries.Add(Application.LoadComponent(aero) as ResourceDictionary);
}
要指定其他主题的方法也差不多, 也就是引用相关dll和添加Resources.
WPF中的Aero主题和Windows Vista里的Aero主题控件风格完全一样, 包括譬如MouseEnter时的动画效果, 下面是在启用了Luna Element 4 视觉效果的Windows 2003系统运行的使用了Aero主题的WPF程序截图:
但WPF里的Aero主题在非Windows Vista系统是没有玻璃效果的.. 那不是GDI就能做到的东西..
附:
luna风格:Uri luna= new Uri("/PresentationFramework.Luna, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35;component/themes/luna.normalcolor.xaml", UriKind.Relative);
Royale风格:Uri royale= new Uri("/PresentationFramework.Royale, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35;component/themes/royale.normalcolor.xaml", UriKind.Relative);
Classic风格:Uri classic= new Uri("/PresentationFramework.Classic, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35;component/themes/classic.xaml", UriKind.Relative);
转自http://blog.csdn.net/wangyong0921/article/details/7174425
- 使WPF程序应用预置的控件风格, 如Aero, Luna, Royale, Classic等
- 使WPF程序应用预置的控件风格, 如Aero, Luna, Royale, Classic等
- MFC 各个窗口 控件的风格等
- WPF入门(02):打造自定义风格的控件
- WPF 如何在后台进行控件属性的绑定MVVM
- WPF风格的MessageBox
- 采用Aero特效的WTL程序
- WPF模拟Windows7的Aero透明窗体效果
- WPF Toolkit chart控件的应用范例
- WPF控件的一些特殊应用
- 变态的《大逃杀》Battle Royale
- WPF应用ocx控件
- MTK预置可卸载的应用
- WPF入门篇--一个WPF的应用小程序
- 一个WPF的应用小程序
- WPF自定义LED风格数字显示控件
- 使用 HTML 控件创建出色的 Metro 风格应用
- 使Windows程序拥有XP风格的界面,不使用皮肤控件
- Linux Route 的一般用法
- PHP扩展:curl
- 《权力的游戏》蕴含的管理经
- android apk应用关机功能的开发
- OVER(PARTITION BY)函数介绍
- 使WPF程序应用预置的控件风格, 如Aero, Luna, Royale, Classic等
- 使用 VFP ( Microsoft Visual FoxPro ) 设计一个简易计算器(下)
- 第K大数问题
- 如何在ie8下调试js代码
- [黑马程序员]c#基础学习笔记
- Android TextView 自动换行
- How to use libusb1.0 library to develop the application on Mac OS X
- Image Is Everything(立方体成像)
- 在Linux下用gdb检测内核rootkit