就近原则

1、“行内”覆盖“嵌入”,“嵌入”覆盖“外部”
Style.xml

<Window.Resources>
<Grid.Resources>
….中间层
<Button.Resources>
</Button.Resources>
</Grid.Resources>
</Window.Resources>

举例

下例中,Button显示Coral的颜色,如果去掉Coral,则显示Chartreuse,去掉行内和嵌入,才显示Aqua
Coral>Chartreuse>Aqua

<Grid>
<Grid.Resources>
<!--外部-->
<Style TargetType="Button">
<Setter Property="Background" Value="Aqua"></Setter>
</Style>
</Grid.Resources>
<!--行内-->
<Button Background="Coral">
<Button.Resources>
<!--嵌入-->
<Style TargetType="Button">
<Setter Property="Background" Value="Chartreuse"></Setter>
</Style>
</Button.Resources>
</Button>
</Grid>

给外部资源命名,并在行内引用,则此时外部->行内
Coral>Aqua>Chartreuse

<Grid>
<Grid.Resources>
<!--外部以行内的形式存在-->
<Style TargetType="Button" x:Key="ButtonStyle">
<Setter Property="Background" Value="Aqua"></Setter>
</Style>
</Grid.Resources>
<!--行内-->
<Button Background="Coral" Style="{StaticResource ButtonStyle}">
<Button.Resources>
<!--嵌入-->
<Style TargetType="Button">
<Setter Property="Background" Value="Chartreuse"></Setter>
</Style>
</Button.Resources>
</Button>
</Grid>

2、同级别遵循“就近”

引用原则

如果没有给Style命名,则默认所有该范围下的目标控件都使用该Style
如果一个控件有多个Style,则根据就近原则来判定用什么Style
如果Style有命名(x:Key),则需要在控件中引用Style(eg.Style="{StaticResource ButtonStyle}")才会使用该Style

同一控件只能设置一次Resources

 

示例代码

https://github.com/zLulus/NotePractice/tree/dev3/WPF/WpfDemo/Style 的StyleDemo和StyleDemo2

style原则问题的更多相关文章

  1. WPF学习目录

    基本概念 数据源Source-目标Target WPF生命周期 App.xaml 依赖属性 WPF路由 线程操纵UI问题 利用属性中设置.查看DataContext/Command等 分析布局 写数据 ...

  2. javascript的api设计原则

    前言 本篇博文来自一次公司内部的前端分享,从多个方面讨论了在设计接口时遵循的原则,总共包含了七个大块.系卤煮自己总结的一些经验和教训.本篇博文同时也参考了其他一些文章,相关地址会在后面贴出来.很难做到 ...

  3. Web前端:11个让你代码整洁的原则

    写Web页面就像我们建设房子一样,地基牢固,房子才不会倒.同样的,我们制作Web页面也一样,一个良好的HTML结构是制作一个美丽的网站的开始,同样的,良好的CSS只存在同样良好的HTML中,所以一个干 ...

  4. java设计6大设计原则

    @import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...

  5. CSS代码原则

    css的团队合作规则以及怎样写出高性能的css代码. 一.使用Reset但并非全局Reset 同浏览器元素的默认属性有所不同,使用Reset可重置浏览器元素的一些默认属性,以达到浏览器的兼容.但需要注 ...

  6. 好RESTful API的设计原则

    说在前面,这篇文章是无意中发现的,因为感觉写的很好,所以翻译了一下.由于英文水平有限,难免有出错的地方,请看官理解一下.翻译和校正文章花了我大约2周的业余时间,如有人愿意转载请注明出处,谢谢^_^ P ...

  7. Rest风格WEB服务(Rest Style Web Service)的真相

    http://blog.csdn.net/jia20003/article/details/8365585 Rest风格WEB服务(Rest Style Web Service)的真相 分类: J2E ...

  8. Web开发者不可不知的15条编码原则

    HTML已经走过了近20的发展历程.从HTML4到XHTML,再到最近十分火热的HTML5,它几乎见证了整个互联网的发展.但是,即便到现在,有很多基础的概念和原则依然需要开发者高度注意.下面,向大家介 ...

  9. 时间管理-SMART原则

    制定目标有一个“黄金准则”——SMART原则.SMART是英文5个词的第一个字母的汇总.好的目标应该能够符合SMART原则.  S(Specific)——明确性 所谓明确就是要用具体的语言清楚地说明要 ...

随机推荐

  1. thinkphp5项目--练手--企业单车网站(九)(友情链接)

    thinkphp5项目--练手--企业单车网站(九)(友情链接) 项目地址 fry404006308/BicycleEnterpriseWebsite: Bicycle Enterprise Webs ...

  2. IIS服务器能支持10万并发

    服务器能支持10万并发由于一个项目的访问量越来越大,从原来的几百个,增加到现在50多万个每天,所以阿里的服务器也扛不住了,于是就想办法,查了N多资料,总结了以下方法,才解决这问题,每天一共访问量50多 ...

  3. jquery 点击其他地方

    <script type="text/javascript"> function stopPropagation(e) { if (e.stopPropagation) ...

  4. css 父div如何包裹带有float属性的子div,float子div如何撑开父div

    来自网络摘抄 原始代码 <style> #div1{border:1px solid red;float:left;} #div2,#div3{float:right;border:1px ...

  5. OpenGL核心之视差映射

    笔者介绍:姜雪伟,IT公司技术合伙人.IT高级讲师,CSDN社区专家,特邀编辑.畅销书作者;已出版书籍:<手把手教你¯的纹理坐标偏移T3来对fragment的纹理坐标进行位移.你能够看到随着深度 ...

  6. Android BlueDroid(一):BlueDroid概述

    关键词:bluedroid bluez作者:xubin341719(欢迎转载,请注明作者,请尊重版权,谢谢!)欢迎指正错误.共同学习.共同进步!! 一.名词解释:(实用信息添加中--) BTI F: ...

  7. Android Snackbar使用方法及小技巧-design

    Snackbar和Toast相似,都是为了给用户提供交互信息,Snackbar是固定在底部的,显示时从下往上滑出 要使用Snackbar,需要在项目的build.gradle中添加依赖 depende ...

  8. QT类库与Delphi VCL类库的体系结构对比——两者十分类似!

    今天在看QT对象内存管理的一篇文章时:http://blog.csdn.net/dbzhang800/article/details/6300025想到了一个问题:就是QT类库体系结构与Delphi类 ...

  9. oracle 全部查询和表空间,以及其关系

    select * from dba_users;   查看数据库里面全部用户,前提是你是有dba权限的帐号.如sys,system select * from all_users;     查看你能管 ...

  10. 在JS中var、let和const的区别

    var有变量提升 x = 4; // 变量 x 设置为 4 console.log(x)  //输出 4 var x; // 声明 x 上面代码相当于下面的 var x; // 声明 xx = 4;  ...