<Window.Resources>
<FontFamily x:key="ButtonFontFamily">Time New Roman</FontFamily>
<sys:Double x:key="ButtonFontSize">18</s:Double>
<FontWeight x:key="ButtonFontWeight">Bold</FontWeight>
</Window.Resources>

1:资源里定义了三个资源,分别设置对象属性
接下来应用资源:

<Button FontFamily="{StaticResource ButtonFontFamily}"
FontWeight=="{StaticResource ButtonFontWeight}"
FontSize=="{StaticResource ButtonFontSize}"
</Button>

2:另一种方式:(WPF中的一个元素都可以使用一个样式,只能使用一个样式)

创建一个独立的资源:

<Window.Resources>
<Style x:key="BigFontButtonStyle">
<setter Property="control.FontFamily" Value="Tinmes New Roman"/>
<Setter Property="control.FontSize" Value="18"/>
<Setter Property="control.FontWeight" Value="Bold"/>
</Style>
</Window.Resources>

应用这个独立的样式资源

<Button Sytle="{StaticResource BigFontButtonStyle}">a Customized</Button>

Style类的属性:
Setters:设置属性值并自动关联事件处理程序的Sette对象或EventSetter对象的集合

Triggers:能够自动改变样式设置的对象集合

Resources

BasedOn:通过该属性可以创建继承其他样式设置的更复杂样式

TargetType:该属性表示应用样式的元素的类型

3:关联的事件处理程序

<Style x:key="MouseOverHighLightStyle">
<EventSetter Event="TextBlock.MouseEnter" Handler="element_MouseEnter"/>
<EventSetter Event=="TextBlock.MouseLeave" Handler="element_MouseLeave"/>
<Setter Property=TextBlock.Padding" Value="5"/>
</Style>
private void element_MouseEnter(object sender,MouseEventArgs e)
{ ((TextBlock)Senter.Background=new SolidColorBrush(Colors.LightGoldenrodYellow); }

事件element_MouseLeave同样的道理

接下来应用给样式;

<Textklock Style="{StaticResouce MouseOverHightStyle}"> Hover Over me</Textklock >

4:简单触发器

<Style x:key="BigFontButton">
<Style.Setters>
<Setter Property="Control.FontFamily" Value="Time NEw Roman"/>
<Setter Property="Control.FontSize" Value="18"/>
</Style.Setters> <Style.Triggers>
<Triggers Property="Control.IsFocused" Value="True">
<Setter Property="Control.Foreground" Value="darkRed"/>
</Style.Triggers>
</Style>
也可以定义多个触发器

5:比较复杂的,这里用到了”行为“:

<Style x:Key="OuterGlowStyle" TargetType="{x:Type FrameworkElement}">
<Style.Triggers>
<Trigger Property="IsFocused" Value="True">
<Setter Property="Effect">
<Setter.Value>
<DropShadowEffect BlurRadius="10" Color="Black" Direction="0" Opacity="0.6"
RenderingBias="Performance" ShadowDepth="0"/>
</Setter.Value>
</Setter>
</Trigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Effect">
<Setter.Value>
<DropShadowEffect BlurRadius="10" Color="Black" Direction="0" Opacity="0.6"
RenderingBias="Performance" ShadowDepth="0"/>
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>

6:RelativeSource相对路径

StaticSource绝对路径

ElementSource通常绑定某个控件的Value

WPF样式和资源2的更多相关文章

  1. Bootstrap WPF Style,Bootstrap风格的WPF样式

    简介 GitHub地址:https://github.com/ptddqr/bootstrap-wpf-style 此样式基于bootstrap-3.3.0,样式文件里的源码行数都是指的这个版本.CS ...

  2. WPF 样式和行为

    样式(style):组织和重用格式化选项的重要工具,将细节如边距.字体.字号等信息封装起来,然后再需要的地方通过属性来应用样式. 行为(behavior):封装一些通用的UI行为,如拖动,缩放元素的代 ...

  3. WPF学习之资源-Resources

    WPF学习之资源-Resources WPF通过资源来保存一些可以被重复利用的样式,对象定义以及一些传统的资源如二进制数据,图片等等,而在其支持上也更能体现出这些资源定义的优越性.比如通过Resour ...

  4. WPF中的资源简介、DynamicResource与StaticResource的区别(转)

    什么叫WPF的资源(Resource)?资源是保存在可执行文件中的一种不可执行数据.在WPF的资源中,几乎可以包含图像.字符串等所有的任意CLR对象,只要对象有一个默认的构造函数和独立的属性. 也就是 ...

  5. C#工具:Bootstrap WPF Style,Bootstrap风格的WPF样式

    简介 GitHub地址:https://github.com/ptddqr/bootstrap-wpf-style 此样式基于bootstrap-3.3.0,样式文件里的源码行数都是指的这个版本.CS ...

  6. WPF样式(Style)入门

    原文:WPF样式(Style)入门 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/qq_34802416/article/details/78231 ...

  7. WPF - 样式 (转)

    本文目录 1.引言 2.怎样使用样式? 3.内联样式 4.已命名样式 5.元素类型样式 6.编程控制样式 7.触发器 1.引言 样式(Style),主要是用来让元素或内容呈现一定外观的属性.WPF中的 ...

  8. WPF样式学习三

    SnapsToDevicePixels 获取或设置在呈现过程,该值来确定呈现此元素是否应使用特定于设备的像素设置. 这是一个依赖项属性. true ,如果元素应以符合呈现到设备像素;否则, false ...

  9. 《深入浅出WPF》笔记——资源篇

    原文:<深入浅出WPF>笔记--资源篇 前面的记录有的地方已经用到了资源,本文就来详细的记录一下WPF中的资源.我们平时的“资源”一词是指“资财之源”,是创造人类社会财富的源泉.在计算机程 ...

随机推荐

  1. 自定义分页标签,并使分页标签能获得url中的参数

    如题,要实现一个分页功能,其次,要让分页标签“智能一点”,在分页时能自动带上url后面的参数 <tag> <description>分页标签</description&g ...

  2. String的format方法

    摘自:http://xiongzhenhui.iteye.com/blog/940416 http://blueram.iteye.com/blog/441683 一.常规类型.字符类型和数值类型的格 ...

  3. thrift之TTransport类体系原理及源码详细解析1-类结构和抽象基类

    本章主要介绍Thrift的传输层功能的实现,传输的方式多种多样,可以采用压缩.分帧等,而这些功能的实现都是相互独立,和上一章介绍的协议类实现方式比较雷同,还是先看看这部分的类关系图,如下: 由上面的类 ...

  4. linux 目录说明

    1./bin /usr/bin  /usr/local/bin   都是放置用户可执行二进制文件. 2./boot 主要是放置liunx系统启动时用到的文件. 2./dev   文件夹内主要是西东外设 ...

  5. Nginx源码研究三:Epoll在NGINX中的使用

    Web服务器在面对高并发的情况下,网络的IO一般选择IO复用,像apache选择的Select/poll.Nginx在linux 2.6后选择Epoll做网路IO,提高了WEB服务的并发能力. 在本章 ...

  6. Delphi窗体创建释放过程及单元文件小结(转)

    Delphi窗体创建释放过程及单元文件小结 Delphi中的窗体,有模式窗体与非模式窗体两种.两种窗体的调用方式不同,模式窗体使用ShowModal显示,非模式窗体使用Show显示.当显示模式窗体的时 ...

  7. centos 安装RAR

    根据系统的情况下载rarlinuxx64版本wget http://www.rarlab.com/rar/rarlinux-x64-4.2.0.tar.gzx86版本wget http://www.r ...

  8. 可控制转速CSS3旋转风车特效

    以前制作网页动画一般使用javascript,现在已经有越来越多动动画使用纯CSS实现,并且动画的控制也可以使用CSS3实现,因为CSS 3来了,CSS 3的动画功能确实强大.以下是一个纯CSS3制作 ...

  9. Valve开源了Direct3D到OpenGL的转译层,方便开发者迁移游戏到Linux(面向游戏玩家的六款最佳 Linux 发行版)

    Valve开源了Direct3D到OpenGL的转译层,方便开发者迁移游戏到Linux:https://github.com/ValveSoftware/ToGL Valve SteamBox主机系统 ...

  10. mvn 使用中的错误

    出现这种错误的时候:mvn Error building POM may not be this project's POM,报的是那个jar 包,就删除那个jar 包,重新mvn clean ins ...