摘要:
坑1:自定义控件设计原则: 既然称之为控件,那么就必定有界面与行为两部分。 界面就是展示给用户看的,用于承载类的属性、方法、事件等。 行为就是类的方法,以及这些方法需要用到的属性、字段等。 WPF设计的原则就是界面与行为分离!分离!分离!一定要记得分离。 这里的分离,不是指代码写的地方要分离开,一个 阅读全文
摘要:
WPF绘制图形有三种方式: 使用FrameworkElement的派生类 使用图元转换器绘制几何图形 使用DrawingContext绘制 1. 使用FrameworkElement派生类 FrameworkElement类继承自UIElement类,意味它的派生类,都是UI元素,可以直接显示在界面 阅读全文
摘要:
1. Geometry 在数学中,我们可以用一个方程描述圆:x2+y2=25。这个方程描述的是,一个半径为5,中心点在(0,0)的圆。这种纯数学的描述就是Geometry(几何)。 但此时,这个“圆”我们是看不见,摸不着的。如果想要看到这个几何图形,就必须用画笔,颜色等信息,去“绘制”它。 .Net 阅读全文
摘要:
上一篇文章写了如何创建自定义窗体:使用 WindowChrome 或者 WindowStyle=“None”这两种方式。本文将讲述如何设置窗体的效果(以阴影效果为例),以及在效果模式下,窗体各功能的配合。 一、窗体的空间范围: 窗体的范围,就是白色区域部分:包括窗体的边框,标题栏,以及内部的空白部分 阅读全文
摘要:
.Net默认的窗体样式只有四种:None、SingleBorderWindow、ThreeDBorderWindow、ToolWindow,都比较“丑”。而很多时候,我们希望自定义窗体,比如,无边框,有阴影,或者有模糊效果等。 在WPF中,要实现自定义窗体比较简单,主要有两种方法: 1)使用Wind 阅读全文
摘要:
一个简单的需求:当程序发生异常时候,在界面上动画显示异常信息。 这个需求看似简单,只需要try……catch到异常,然后把异常的信息写入界面就OK了。 但在MVVM时,就不是这么简单了。MVVM模式下,追求前后端的分离。然后catch到的异常,也只能在后台代码中。如果传递到前台呢? 这自然就想到了B 阅读全文
摘要:
(第五点:绑定源有修改) 我并不打算长篇累牍的介绍什么是MVVM。我尽量简洁的介绍,并把自己的经验分享给大家。 一、关于MVVM M:Model,数据模型(后台存储数据的类) V:View,视图(大部分情况下就是窗体,用来与用户交互) VM:ViewModel,视图模型。它的作用是连接Model与V 阅读全文
摘要:
上一篇文章粗略的介绍了一下Animation类。本篇介绍一下Storyboard。 Storyboard,姑且翻译成“故事板”吧。实际上它是一个Animation对象的容器,可以容纳多个Animation对象,并进行同意的管理,如播放、暂停等。 最重要的一点,Storyboard可以在xaml中定义 阅读全文
摘要:
1. WPF中的动画(Animation),是一种属性动画。技术上来说,它是让属性从一个值,变化到另一个值的过程。因此,有两条重要的特性: 1.1 只能为依赖属性应用动画(因为第二条特性)。 1.2 动画只是临时更改属性的值,并不真正的改变属性值。这与依赖属性的工作方式有关。 2. WPF动画,分为 阅读全文
摘要:
在上一篇文章中,提到了以鼠标控制变换图片的方法。 这种方法在某种情况下可以,例如,直接在windows窗体上。但我发现,当把它封装到一个控件中的时候,它就不行了。 经过不断的尝试,我找到了一种更简单的方法,而且,封装到控件中也工作正常。 这里就要介绍WPF中另外一种变换:矩阵变换(MatrixTra 阅读全文