WPF 皮肤

转载 2013年12月02日 13:37:20

皮肤

  1. <!-- 在全局Application对象中指定样式(默认皮肤):app.xaml -->  
  2. <Application x:Class="WPF_Test.App"  
  3.              xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"  
  4.              xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"  
  5.              StartupUri="MainWindow.xaml">  
  6.     <Application.Resources>  
  7.         <Style x:Key="DialogStyle" TargetType="StackPanel">  
  8.             <Setter Property="Margin" Value="20"/>  
  9.         </Style>  
  10.         <Style x:Key="HeadingStyle" TargetType="Label">  
  11.             <Setter Property="FontSize" Value="10"/>  
  12.             <Setter Property="Foreground" Value="Blue"/>  
  13.         </Style>  
  14.         <Style x:Key="CancelButtonStyle" TargetType="Button">  
  15.         </Style>  
  16.     </Application.Resources>  
  17. </Application>  
  1. <!-- 皮肤样式:Skin1.xaml -->  
  2. <!-- 建议使用ResourceDictionary作为根 -->  
  3. <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"  
  4.                     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">  
  5.     <Style x:Key="DialogStyle" TargetType="StackPanel">  
  6.         <Setter Property="Margin" Value="20"/>  
  7.     </Style>  
  8.     <Style x:Key="HeadingStyle" TargetType="Label">  
  9.         <Setter Property="FontSize" Value="30"/>  
  10.         <Setter Property="Foreground" Value="BurlyWood"/>  
  11.     </Style>  
  12.     <Style x:Key="CancelButtonStyle" TargetType="Button">  
  13.         <Setter Property="Background" Value="Crimson"/>  
  14.     </Style>  
  15. </ResourceDictionary>  
  1. <!-- 使用皮肤,单页文件MySkin.xaml -->  
  2. <Page x:Class="WPF_Test.MySkin"  
  3.       xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"  
  4.       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"  
  5.       xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"   
  6.       xmlns:d="http://schemas.microsoft.com/expression/blend/2008"   
  7.       mc:Ignorable="d"   
  8.       d:DesignHeight="300" d:DesignWidth="300"  
  9.     Title="MySkin">  
  10.   
  11.     <Grid>  
  12.         <!-- 动态绑定资源 -->  
  13.         <StackPanel Style="{DynamicResource DialogStyle}">  
  14.             <Label Style="{DynamicResource HeadingStyle}">Loading...</Label>  
  15.             <ProgressBar Value="35" MinHeight="20" Margin="20"/>  
  16.             <Button Style="{DynamicResource CancelButtonStyle}" Width="70">Cancel</Button>  
  17.         </StackPanel>  
  18.     </Grid>  
  19. </Page>  

  1. //主窗体MainWindow.xaml中指定皮肤   
  2. using System.IO;  
  3. using System.Windows.Markup;  
  4.   
  5. public MainWindow()  
  6. {  
  7.     #region 指定皮肤(不显示指定,则为默认皮肤)   
  8.     ResourceDictionary resources = null;  
  9.     using (FileStream fs = new FileStream(@"D:\Study\WPF\CodeTest\WPF_Test\WPF_Test\Skin\Skin1.xaml", FileMode.Open, FileAccess.Read))  
  10.     {  
  11.         resources = (ResourceDictionary)XamlReader.Load(fs);  
  12.     }  
  13.   
  14.     Application.Current.Resources = resources;  
  15.     #region   
  16.   
  17.     InitializeComponent();  
  18.   
  19.     //内嵌页面对象   
  20.     //...   
  21. }  

WPF揭密之WPF 样式、模版、皮肤、主题

样式(Style):对属性分组,否则这些属性就要单独设置。样式存在的目的是在多个元素中共享该组的值。一个Style可以通过BasedOn属性从另一个属性继承。 触发器: 属性触发器:当依赖属性的值发生...
  • yulongguiziyao
  • yulongguiziyao
  • 2015年03月18日 16:23
  • 990

WPF动态修改皮肤

代码下载:http://download.csdn.net/detail/lh806732/8454189 1、效果 2、工程目录     2.1 如工程...
  • LH806732
  • LH806732
  • 2015年02月23日 11:21
  • 1274

WPF - 如何使用应用程序主题(皮肤)

应用程序主题 根据我们的应用程序的设计需要,对应用程序将会使用到的各类UI组件进行样式设计。应用程序主题一般都是定义在一个XAML文件中,该XAML文件中包含了各类UI组件的样式设置器和触发器。 ...
  • Veechange
  • Veechange
  • 2017年03月24日 16:02
  • 1861

WPF动态切换皮肤

实现方法比较简单,动态的加载资源字典来实现切换皮肤
  • beilinu
  • beilinu
  • 2014年03月18日 00:13
  • 5980

WPF的DEV换肤 连WPF自带控件一起换肤

小弟最近采用WPF 想
  • wangtao510
  • wangtao510
  • 2014年11月06日 14:11
  • 1903

分享一个自己写的WPF换肤窗体WPF.DazzleUI

最近自己在自学WPF,看了网上很多前辈的WPF例子,觉得很炫,自己也有点冲动,就尝试着写了一下。 桌面程序嘛,要炫起来,当然首先得窗体先炫起来,所以就自己写了一个可以换肤的WPF窗体基类。 不多说...
  • bdstjk
  • bdstjk
  • 2013年05月11日 11:01
  • 8330

WPF实现动态换肤功能(一)

转自:xsi640的WPF实现动态换肤功能(一)大家都使用过QQ的皮肤功能吧,今天,我们来讲一下如何使用WPF实现换肤效果。如何实现换肤呢,对于复杂的换肤操作,如,更换按钮样式、窗口样式等,我们需要写...
  • Maths_bai
  • Maths_bai
  • 2010年09月06日 13:46
  • 8270

解决DEV皮肤 主窗体与子窗体皮肤风格不一致问题

在Main()函数中注册: DevExpress.UserSkins.BonusSkins.Register(); DevExpress.UserSkins.OfficeSkins.Register(...
  • wangtao510
  • wangtao510
  • 2016年11月11日 10:10
  • 571

DevExpress自学笔记—整体修改窗体及控件的皮肤样式1

一直以来都在对微软提供的灰色窗体及控件很反感,但是自己能力水平有限对网上很多大神提出的换肤方案都不甚理解。于是在茫茫的网海中各种百度、各种谷歌去寻找最简单的换肤方案,期间自学过WPF,WPF虽然能实现...
  • songyi160
  • songyi160
  • 2016年02月15日 17:29
  • 5589

WPF DevExpress 更换主题

wpf中更换主题包含多种方式,这里介绍两种常用方式,方式一:在xaml中更换主题即使用默认主题,方式二:在软件页面中更换主题。 方式一实现方法: 在窗体属性中添加主题属性即可:dx:ThemeMana...
  • xiaohou66
  • xiaohou66
  • 2016年09月27日 13:21
  • 2134
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:WPF 皮肤
举报原因:
原因补充:

(最多只允许输入30个字)