上一页 1 2 3 4 5 6 7 ··· 12 下一页
摘要: 名词解释:简单工厂:这个实在是没什么解释的,就是一个工厂类,然后有一个方法,根据传递的参数可以通过switch(你也可以是if,或者是使用高端的反射 )来进行对象的创建。工厂方法:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。区别:简单工厂的优点是工厂类中包含了逻辑(即通过判断,实例化对应的类型),对于客户端来说去除了与具体产品的依赖。但是如果有了新功能则就需要修改这个判断的逻辑(也就是违背了开放-封闭原则),所以这个也是工厂方法出现的必要性。工厂方法呢每一个类都有自己的工厂,当然也有抽象的工厂基类,这样客户端想实例哪种类型,只需实例化其对应的工厂 阅读全文
posted @ 2013-09-04 22:28 wangyafei_it 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 名词解释:外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义一个高层接口,这个接口使得这一子系统更加容易使用。必要元素:一个外观类和多个子系统类(外观类中注入各个子系统类)。上例子:四个系统类:class SubSystemOne { public void MethodOne() { Console.WriteLine("子系统方法一"); } } class SubSystemTwo { public void MethodTwo() { Co... 阅读全文
posted @ 2013-09-04 21:40 wangyafei_it 阅读(346) 评论(0) 推荐(0) 编辑
摘要: 如果前两篇的博客太为普通,那么接下来的内容将让你动画实在是太厉害了。本文将会介绍两个关于纯手工实现动画的形式,当然动画效果就不用我多说了。基于帧的动画:此处的帧并不是之前介绍的Animation这样的动画,之所以称之为帧,那是因为它控制范围更加精细。也就是说,在有些应用程序方案中,你需要根据每个帧控制呈现,使那么就可以基于每个帧回调来创建自定义动画。基于帧的动画主要使用CompositionTarget对象的一个回调函数来实现,CompositionTarget表示应用程序的显示图面,其回调函数将会在1秒之内被访问60次,所以也就可以实现动画的过程(一般来说此种动画会在游戏的时候使用,因为它每 阅读全文
posted @ 2013-08-30 13:45 wangyafei_it 阅读(499) 评论(0) 推荐(0) 编辑
摘要: 上一篇文章简单介绍了动画的定义方法和一些控制动画的方法,并没有涉及复杂属性的动画处理方式,本文将继续动画的其它方面的使用。写在前面(对于一些动画操作时候的建议):1.如果希望某个元素从显示到消失,或者从消失到显示,使用Visibility属性是无效的,因为此属性没有一个动画的过程,所以使用Opacity控制透明度进行操作;2.如果要修改元素的位置则可以使用Canvas.Left或者Canvas.Top设置是RenderTransform(下文会涉及);3.可以使用ColorAnimation修改元素的Brush,如果是比较复杂的aBrush,则可以使用DoubleAnimation来修改Off 阅读全文
posted @ 2013-08-29 18:29 wangyafei_it 阅读(769) 评论(0) 推荐(0) 编辑
摘要: 定义动画:直接使用Element进行BeginAnimation DoubleAnimation animation = new DoubleAnimation(); animation.By = 100; animation.Duration = TimeSpan.FromSeconds(1); btnTest.BeginAnimation(Button.WidthProperty, animation);也可以将Animation添加到StoryBoard中去,这样可以一次执行多个动画: ... 阅读全文
posted @ 2013-08-27 11:48 wangyafei_it 阅读(959) 评论(0) 推荐(0) 编辑
摘要: 本文主要是以实现拖动元素作为例子。创建Behavior:通常这个类会继承自Behavior,其中T就是此Behavior服务的对象,在此处使用的是UIElement,也就是虽有的UIElement类型的元素都可以使用。 public class DragInCanvasBehavior : Behavior { //元素父节点 private Canvas canvas; //标识是否进入拖动 private bool isDraging = false; //按下鼠标时的坐标(用于计算要移动的位置) p... 阅读全文
posted @ 2013-08-26 14:21 wangyafei_it 阅读(3050) 评论(0) 推荐(6) 编辑
摘要: 其实代码蛮简单的,在元素的DragOver事件中加入如下代码: Point svPoint = e.GetPosition(sv); if (sv.ActualHeight-svPoint.Y <= 20) { sv.ScrollToVerticalOffset(this.sv.VerticalOffset + 5); } if (Math.Abs(svPoint.Y) <= 20) { sv.ScrollTo... 阅读全文
posted @ 2013-08-26 10:09 wangyafei_it 阅读(896) 评论(0) 推荐(1) 编辑
摘要: 说在前面:WPF中给按钮或者是具备Command等元素实现快捷键其实是非常简单的,例子如下: XAML代码很简单,一个Button,设置了Content和事件,细心的小盆友会发现Content的前缀是一个_,这个可不是一般的下划线哦,因为你在运行时候是看不到这个下划线的,这就是快捷键的神奇之处,现在运行程序按下 "Alt+T",你会发现好神奇竟然执行了Click事件。解释:WPF中的快捷键定义规则是在文本的前边加上下划线,然后按下Alt和下划线后的字母即可实现,比如上例子中我们下划线后边的是T,所以我们按下Alt+t就可以实现快捷操作,当然你也可以是A--Z都ok的。窃喜: 阅读全文
posted @ 2013-08-22 16:17 wangyafei_it 阅读(2941) 评论(0) 推荐(1) 编辑
摘要: 前记:WPF中的样式使用一般分为两种Statci和Dynamic.两者的区别可以理解为,前者在运行的时候已经确定了样式的风格,而后者可以根据资源在运行时的修改而修改也可以使用那些在运行时才存在的资源。背景:有时候我们会将样式的资源和XAML页面代码分离,有时候也希望同一个资源可以在多个Application中使用;另外还有一个更致命的问题,如果我们在很多地方都写了重复的样式,突然有一天我们要修改,那岂不是要一个一个地方进行修改,那工作量实在不敢想象。好在WPF中提供了解决这个问题的好方法,那就是ComponentResourceKey(定义或引用基于外部程序集中的类名以及一个附加标识符的资源键 阅读全文
posted @ 2013-08-21 18:03 wangyafei_it 阅读(893) 评论(0) 推荐(2) 编辑
摘要: 一、准备好你要使用的字体文件,以TTF结尾的文件,然后复制到项目中,并设置Build Action(生成操作)为Resource(资源);二、在App.xaml中或者你需要的地方添加资源的定义: /WpfApplication5;Component/#超世纪细圆体 /WpfApplication5;Component/#腾祥孔淼卡通繁 上述代码实在App.xaml中添加,FontFamily的Key自定义,反正就是一个名字,后边的字符串其实就是一个字体名字的引用;/WpfApplication5;component/这些是固定的,意思就是WpfApplicat... 阅读全文
posted @ 2013-08-16 14:06 wangyafei_it 阅读(4318) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 12 下一页