black

【WPF学习】第六十章 创建控件模板

血红的双手。 提交于 2020-04-06 17:04:47
   经过数十天的忙碌,今天终于有时间写博客。   前面一章通过介绍有关模板工作方式相关的内容,同时介绍了FrameWorkElement下所有控件的模板。接下来将介绍如何构建一个简单的自定义按钮,并在该过程中学习有关控件模板的一些细节。   通过上一章内容,基本Button控件使用ButtonChrome类绘制其特殊的背景和边框。Button类使用ButtonChrome类而不使用WPF绘图图元的一个原因是,标准按钮的外观依赖于几个明显的特征(是否被禁用、是否具有焦点以及是否正在被单击)和其他一些更微妙的因素(如当前Windows主题)。只使用触发器实现这类逻辑是笨拙的。   然而,当构建自定义控件时,可以不用担心标准化和主题集成(实际上,WPF不像以前的用户界面技术那样强调用户界面标准化)。反而能更需要关注如何创建富有吸引力的新颖控件,并将他们混合到用户界面的其他部分。因此,可能不需要创建诸如ButtonChrome的类,而可使用以及学过的元素,设计自给自足的不使用代码的控件模板。 一、简单按钮   为应用自定义控件模板,只需要设置控件的Template属性。尽管可定义内联模板(通过在控件标签内部嵌入控件模板标签),但这种方法基本没有意义。这是因为几乎总是希望为同一控件的多个皮肤实例重用模板。为适应这种设计,需要将控件模板定义为资源,并使用StaticResource引用该资源

【python系统学习11】循环语句里的F4

孤街浪徒 提交于 2020-04-06 14:47:23
循环语句里的F4 深入了解下四个新语句,分别是: continue 、 break 、 pass 、 else 以及他们搭配for、while循环等语句时,所产生的化学反应。 else 由于continue、break都会和else有一定的规则,所以先来说else。 在python中,else不但可以和if配合使用,它还能跟for循环和while循环配合使用。 伪代码 else用在循环代码的后边,如果循环可以正常结束、即没有遇到break语句。 那么else里的代码块也会在循环结束后被正常执行。 for ... in ...: ... else : ... while ...(条件): ... else : ... 示例代码 for循环执行完毕后,else代码就会执行。【前提是for循环中不存在 break 语句】 for i in range( 3 ): print( 'i的值为:' ,i) else : print( 'else中,i的值为:' ,i) # 打印结果如下: # i的值为: 0 # i的值为: 1 # i的值为: 2 # else中,i的值为: 2 while循环执行完毕后,else代码再执行:【前提是while循环中不存在 break 语句】 elseVal = 1 while elseVal < 3 : print( 'elseVal的值:' ,elseVal

【python系统学习11】循环语句里的F4

丶灬走出姿态 提交于 2020-04-06 14:01:44
循环语句里的F4 深入了解下四个新语句,分别是: continue 、 break 、 pass 、 else 以及他们搭配for、while循环等语句时,所产生的化学反应。 else 由于continue、break都会和else有一定的规则,所以先来说else。 在python中,else不但可以和if配合使用,它还能跟for循环和while循环配合使用。 伪代码 else用在循环代码的后边,如果循环可以正常结束、即没有遇到break语句。 那么else里的代码块也会在循环结束后被正常执行。 for ... in ...: ... else : ... while ...(条件): ... else : ... 示例代码 for循环执行完毕后,else代码就会执行。【前提是for循环中不存在 break 语句】 for i in range( 3 ): print( 'i的值为:' ,i) else : print( 'else中,i的值为:' ,i) # 打印结果如下: # i的值为: 0 # i的值为: 1 # i的值为: 2 # else中,i的值为: 2 while循环执行完毕后,else代码再执行:【前提是while循环中不存在 break 语句】 elseVal = 1 while elseVal < 3 : print( 'elseVal的值:' ,elseVal

如何为“选择”框创建占位符?

我的梦境 提交于 2020-04-06 11:50:14
问题: I'm using placeholders for text inputs which is working out just fine. 我正在使用占位符进行文本输入,效果很好。 But I'd like to use a placeholder for my selectboxes as well. 但是我也想为我的选择框使用一个占位符。 Of course I can just use this code: 当然,我可以使用以下代码: <select> <option value="">Select your option</option> <option value="hurr">Durr</option> </select> But the 'Select your option' is in black instead of lightgrey. 但是“选择您的选项”是黑色而不是浅灰色。 So my solution could possibly be CSS-based. 因此,我的解决方案可能基于CSS。 jQuery is fine too. jQuery也很好。 This only makes the option grey in the dropdown (so after clicking the arrow): 这只会使下拉菜单中的选项变为灰色

前端学习(3)-CSS

梦想的初衷 提交于 2020-04-06 11:37:40
一 CSS CSS是Cascading Style Sheets的缩写,层叠样式表,用来控制网页数据的显示,可以使网页的显示与数据内容分离。 二 引入方式    (1)行内式:在标记的style属性中设置CSS样式,不推荐使用。 <! DOCTYPE html > < html lang ="en" > < head > < meta charset ="UTF-8" > < title >Hello CSS </ title > </ head > < body > < div style ="color: aqua;background-color: bisque" > hello world </ div > </ body > </ html >    (2)嵌入式:将CSS样式集中写在网页的<head></head>标签找那个的<style></style>标签中。结果和上图一致; <! DOCTYPE html > < html lang ="en" > < head > < meta charset ="UTF-8" > < title > Hello CSS </ title > < style > div { color : aqua ; background-color : bisque ; } </ style > </ head > < body > <

【python系统学习11】循环语句里的F4

こ雲淡風輕ζ 提交于 2020-04-06 11:31:03
循环语句里的F4 深入了解下四个新语句,分别是: continue 、 break 、 pass 、 else 以及他们搭配for、while循环等语句时,所产生的化学反应。 else 由于continue、break都会和else有一定的规则,所以先来说else。 在python中,else不但可以和if配合使用,它还能跟for循环和while循环配合使用。 伪代码 else用在循环代码的后边,如果循环可以正常结束、即没有遇到break语句。 那么else里的代码块也会在循环结束后被正常执行。 for ... in ...: ... else : ... while ...(条件): ... else : ... 示例代码 for循环执行完毕后,else代码就会执行。【前提是for循环中不存在 break 语句】 for i in range( 3 ): print( 'i的值为:' ,i) else : print( 'else中,i的值为:' ,i) # 打印结果如下: # i的值为: 0 # i的值为: 1 # i的值为: 2 # else中,i的值为: 2 while循环执行完毕后,else代码再执行:【前提是while循环中不存在 break 语句】 elseVal = 1 while elseVal < 3 : print( 'elseVal的值:' ,elseVal

天呐,一个简单的统一日志格式我踩了多少坑

大兔子大兔子 提交于 2020-04-05 21:55:40
天呐,一个简单的统一日志格式我踩了多少坑 这几天接到一个需求,是要求将 log4j 的配置文件统一封装到 jar 文件,同时这个 jar 依赖 skywalking 的相关包,从大的层面上来说,为了统一整个公司的日志输出格式,便利的接入 skywalking 和 elk 做准备。 我是怎么考虑的 全局格式统一,也就是说需要约束好 log4j2.xml 的文件位置 由于我们现有的日志文件位置是写死在 log4j2.xml 的 ,现在并不想调整该文件的内容,但是每个应用的日志应该在单独的文件夹下,所以需要在xml配置文件中配置一个变量用来设置应用名称。 不同的环境对代码中日志的输出级别不同 例如在开发环境中,我们需要对 sql 日志进行输出,但是在生产环境中,由于性能和日志量的问题,并不会输出 sql 的日志信息。 配置要简单 配置是需要有学习成本的,最好能够不需要单独的配置就能够完成日志的统一 兼容 读取配置文件的方式要兼容,例如项目中可能存在配置文件为 yml 、 properties ,而且命名方式可能千奇百怪,应该对各个应用做最大程度上的兼容 文档 提供一定程度的文档,指导能够个性化配置一些内容 研究相关技术 log4j2 SpringBoot Logging SpringBoot 生命周期 整个开发的主要做法 如何读取配置文件内容 熟悉 Spring 的朋友应该知道,

《高效能人士的 7 个习惯》知识整理

有些话、适合烂在心里 提交于 2020-04-05 19:51:06
本文内容来自于个人网络学习,属于学习笔记范畴,欢迎喜欢读书的朋友一起交流。书名《高效能人士的七个习惯》 内容简介 什么是高效能人士 简言之,也就是高效能人士的特点: 高产出 高产能 会平衡 高产出 指的是自身在某领域/某件事上持续产出有价值的东西。 高产能 是指具有高产出的能力。和高产出并没有什么直接关系。 会平衡 指的是工作和生活之间的高效平衡。 高效能人士的成长路径 总括: 由内而外 的成长路径。历程: 概括:从依赖到独立,主要是 个人成功 ,这期间有三个重要的习惯:「积极主动、以终为始、要事第一」 七个习惯思维导图 高效能经验分享 习惯养成流程 习惯养成核心 从小事、低要求做起 适当奖励、少量惩罚 找到志同道合的人 制作执行的记录 培养良好的品德 微信搜一搜 逆锋起笔 ,在枯燥的编程生活之外记录读书知识学习心得等,欢迎一起爱学习、爱读书、爱做笔记的朋友加入。 来源: oschina 链接: https://my.oschina.net/u/4386395/blog/3219175

【WPF学习】第六十一章 组织模板资源

青春壹個敷衍的年華 提交于 2020-04-05 16:23:47
   为表达全国各族人民对抗击新冠肺炎疫情斗争牺牲烈士和逝世同胞的深切哀悼,国务院今天发布公告,决定2020年4月4日举行全国性哀悼活动。   当使用控件模板时,需要决定如何更广泛地共享模板,以及是否希望自动地或明确地位用模板。   第一个问题是关于希望在何处使用模板的问题。例如,是将它们限制在特定窗口中吗?大多数情况下,控件模板应用于多个窗口,甚至可能应用于整个应用程序。为避免多次定义模板,可在Application类的Resources集合中定义模板资源。   然而,为此需要考虑另一个事项。通常,控件模板在多个应用程序之间共享。单个应用程序很有可能使用单独开发的模板。然而,一个应用程序只能有一个App.xaml文件和一个Application.Resources集合。因此,在单独资源字典中定义资源是一个更好的主意。这样,可灵活地再特定窗口或在整个应用程序中使用资源。而且还可以结合使用样式,因为任何应用程序都可以包含多个资源字典。为在Visual Studio中添加资源字典,在Solution Explorer窗口中右击项目,选择Add|New Item菜单项,然后选择Resources Dictionary(WPF)模板。   在前面章节中介绍了资源字典,使用它们很容易,只需要为应用程序添加一个新的具有如下内容的XAML文件即可: < ResourceDictionary

【WPF学习】第六十一章 组织模板资源

怎甘沉沦 提交于 2020-04-05 15:11:39
   为表达全国各族人民对抗击新冠肺炎疫情斗争牺牲烈士和逝世同胞的深切哀悼,国务院今天发布公告,决定2020年4月4日举行全国性哀悼活动。   当使用控件模板时,需要决定如何更广泛地共享模板,以及是否希望自动地或明确地位用模板。   第一个问题是关于希望在何处使用模板的问题。例如,是将它们限制在特定窗口中吗?大多数情况下,控件模板应用于多个窗口,甚至可能应用于整个应用程序。为避免多次定义模板,可在Application类的Resources集合中定义模板资源。   然而,为此需要考虑另一个事项。通常,控件模板在多个应用程序之间共享。单个应用程序很有可能使用单独开发的模板。然而,一个应用程序只能有一个App.xaml文件和一个Application.Resources集合。因此,在单独资源字典中定义资源是一个更好的主意。这样,可灵活地再特定窗口或在整个应用程序中使用资源。而且还可以结合使用样式,因为任何应用程序都可以包含多个资源字典。为在Visual Studio中添加资源字典,在Solution Explorer窗口中右击项目,选择Add|New Item菜单项,然后选择Resources Dictionary(WPF)模板。   在前面章节中介绍了资源字典,使用它们很容易,只需要为应用程序添加一个新的具有如下内容的XAML文件即可: < ResourceDictionary