06 2019 档案

摘要:1. 强化高亮的功能 "上一篇文章" 介绍了使用附加属性实现TextBlock的高亮功能,但也留下了问题:不能定义高亮(或者低亮)的颜色。为了解决这个问题,我创建了 这个类,比单纯的字符串存储更多的信息,这个类的定义如下: 相应地,附加属性的类型也改变为这个类,并且属性值改变事件改成这样: 的关键代 阅读全文
posted @ 2019-06-26 08:59 dino.c 阅读(1745) 评论(0) 推荐(5)
摘要:1. 如何让列表的内容更容易查找 假设有这么一个列表(数据源在本地),由于内容太多,要查找到其中某个想要的数据会比较困难。要优化这个列表,无非就是排序、筛选和高亮。 改造过的结果如上。 2. 排序 在WPF中要实现数据排序的功能有很多种,例如用Linq,但这种场景的标准做法是使用 "Collecti 阅读全文
posted @ 2019-06-24 09:13 dino.c 阅读(4742) 评论(5) 推荐(8)
摘要:1. 《写给大家看的设计书》 10年前我对设计还一无所知的时候,我借来了这本书学习了设计的基本原则和几种实用的理论,从此我觉得自己已经入门了设计,而且对面向对象也有更深入的理解。 不仅对我这种做UI的程序员,正如书中开头所说,学会设计对很多行业都有正面意义: 或者是那些聪明的学生,他们深谙一个秘诀: 阅读全文
posted @ 2019-06-19 09:00 dino.c 阅读(2240) 评论(5) 推荐(8)
摘要:1. 为什么要自定义RibbonWindow 自定义Window有可能是设计或功能上的要求,可以是非必要的,而自定义RibbonWindow则不一样: 如果程序使用了自定义样式的Window,为了统一外观需要把RibbonWindow一起修改样式。 为了解决RibbonWindow的BUG。 如上图 阅读全文
posted @ 2019-06-13 09:15 dino.c 阅读(3717) 评论(1) 推荐(3)
摘要:1. 什么是番茄工作法 番茄工作法是简单易行的时间管理方法,是由弗朗西斯科·西里洛于1992年创立的一种相对于GTD更微观的时间管理方法。 做法: 1. 每天开始的时候规划今天要完成的几项任务 2. 设定你的定时器,时间是25分钟。 3. 开始完成第一项任务,直到25分钟结束。 4. 停止工作,休息 阅读全文
posted @ 2019-06-12 09:39 dino.c 阅读(2143) 评论(3) 推荐(1)
摘要:1. 前言 "上一篇文章" 介绍了使用WindowChrome自定义Window,实际使用下来总有各种各样的问题,这些问题大部分都不影响使用,可能正是因为不影响使用所以一直没得到修复(也有可能别人根本不觉得这些是问题)。 这篇文章我总结了一些实际遇到的问题及其解决方案。 2. WindowChrom 阅读全文
posted @ 2019-06-12 09:03 dino.c 阅读(10847) 评论(13) 推荐(16)
摘要:1. 为什么要自定义Window 对稍微有点规模的桌面软件来说自定义的Window几乎是标配了,一来设计师总是克制不住自己想想软件更个性化,为了UI的和谐修改Window也是必要的;二来多一行的空间可以添加很多功能,尤其是上边缘,因为被屏幕限制住鼠标的移动所以上边缘的按钮很容易选中。做桌面开发总有一 阅读全文
posted @ 2019-06-11 09:01 dino.c 阅读(13097) 评论(16) 推荐(17)
摘要:1. 前言 本来打算写一篇《自定义Window》的文章,但写着写着发觉内容太多,所以还是把使用WindowChrome自定义Window需要用到的部分基础知识独立出来,于是就形成了这篇文章。 无论是桌面编程还是日常使用,Window(窗体)都是最常接触的UI元素之一,既然Window这么重要那么多了 阅读全文
posted @ 2019-06-10 09:36 dino.c 阅读(7383) 评论(3) 推荐(11)
摘要:1. 前言 我常常看到同一个应用程序中的表单的按钮————也就是“确定”、“取消”那两个按钮————实现得千奇百怪,其实只要使用统一的Style起码就可以统一按钮的大小,而我喜欢更进一步将”确定“、”取消“或其它按钮封装进一个自定义控件里。 这篇文章介绍了另一种ItemsControl的实现方式,并 阅读全文
posted @ 2019-06-05 09:04 dino.c 阅读(1955) 评论(7) 推荐(1)
摘要:1. 需求 加载后让第一个输入框或者焦点是个很基本的功能,典型的如“登录”对话框。一般来说“登录”对话框加载后“用户名”应该马上获得焦点,用户只需输入用户名,点击 ,再输入密码,点击回车就完成了登录操作。 在WPF中要让一个控件在加载时获得焦点应该很简单,只需要在Loaded事件后调用 就行了。但有 阅读全文
posted @ 2019-06-03 09:02 dino.c 阅读(2478) 评论(4) 推荐(4)