代码改变世界

随笔分类 -  G.WPF

WPF的逻辑树与视觉树(1)基本概念

2010-08-06 12:47 by Clingingboy, 10657 阅读, 收藏, 编辑
摘要:     一.摘要 逻辑树与视觉树属于WPF的基本概念,学过WPF或者Silverlight的朋友一定会对其有所耳闻,这篇文章将来探讨逻辑树与视觉树的特质以及两者的区别 二.... 阅读全文

WPF依赖属性值源(BaseValueSource)

2010-08-03 13:26 by Clingingboy, 1741 阅读, 收藏, 编辑
摘要:   WPF依赖属性提供一个机制,可以获取依赖属性提供值的来源 其以BaseValueSource枚举表示 1.Default 2.DefaultStyle和DefaultStyleTri... 阅读全文

集合附加属性(HACK)

2010-08-02 16:17 by Clingingboy, 524 阅读, 收藏, 编辑
摘要: 传说中的HACK… 靠看文档是不知道的 http://wekempf.spaces.live.com/blog/cns!d18c3ec06ea971cf!468.entry?wa=wsignin1.0&sa=837408022 http://blogs.msdn.com/b/johngossman/archive/2008/07/28/how-to-initialize-... 阅读全文

WPF的动画(3)

2010-07-23 13:17 by Clingingboy, 1512 阅读, 收藏, 编辑
摘要:     一.控制动画 两种方式(需要注意的是命名作用域必须相同) 1.xaml 以TriggerAction的方式调用内部StoryBoard方法 来自msdn Pause... 阅读全文

WPF的动画(2)Animation

2010-07-22 17:04 by Clingingboy, 1443 阅读, 收藏, 编辑
摘要:   一.From/To/By 三个值都是可空的,From初始,To目标值,By偏移量(即有当前值相加),不同组合有不同效果 以下msdn解释,sdk中也有具体的sample 二.重复动画... 阅读全文

WPF的动画(1)基本动画

2010-07-22 16:28 by Clingingboy, 1545 阅读, 收藏, 编辑
摘要: 虽然有msdn文档,但关于动画网上资料比较少。略写一下.   目标(实现元素宽度从50到100的动画效果) 以下为步骤 一.根据需要修改的值创建相关的Animation From,T... 阅读全文

Freezable 对象(WPF)

2010-07-14 16:17 by Clingingboy, 3668 阅读, 收藏, 编辑
摘要:   先看下图 Freezable继承自DependencyObject,同时添加了Freezable方法,用于冻结对象. 一.冻结对象 以此为示例 现实生活中,人的名字是不可以随意修改... 阅读全文

WPF依赖属性(续)(4)依赖属性与数据绑定

2010-06-13 15:13 by Clingingboy, 1080 阅读, 收藏, 编辑
摘要: 待更新。。。 阅读全文

WPF依赖属性(续)(3)依赖属性存储

2010-06-12 17:29 by Clingingboy, 1757 阅读, 收藏, 编辑
摘要:          在之前的两篇,很多朋友参与了讨论,也说明各位对WPF/SL计数的热情,对DP系统各抒已见,当然也出现了一些分歧. 以下简称DP为依赖属性 总结下上文: 讨论了DP的内存问题 讨论了依赖属性与附加属性的区别 下面我们继续讨论DP的存储. 存储依赖属性 (1)确保DP的唯一性 所有的DP由一个内部静态的哈希... 阅读全文

WPF依赖属性(续)(2)依赖属性与附加属性的区别

2010-06-11 16:58 by Clingingboy, 7594 阅读, 收藏, 编辑
摘要:        接上篇,感觉各位的评论,都是认为依赖属性的设计并不是为了节省内存,从大的方面而讲是如此.样式,数据绑定,动画样样都离不开它.这篇我们来... 阅读全文

WPF依赖属性(续)(1)

2010-06-11 13:06 by Clingingboy, 4906 阅读, 收藏, 编辑
摘要:                 之前有写过几篇文章,详细地介... 阅读全文

Win32 Api(显示程序系统菜单)

2010-05-18 14:17 by Clingingboy, 3474 阅读, 收藏, 编辑
摘要: 即在程序标题栏上右键时弹出的菜单此菜单会根据窗体的状态而不同,如最大化状态时则如上图1.GetSystemMenuThe GetSystemMenu function allows the appli... 阅读全文

WPF技巧(5)元素的加载与卸载(Loaded and Unloaded)

2010-05-17 12:48 by Clingingboy, 4067 阅读, 收藏, 编辑
摘要: FrameworkElement有两个初始化和一个卸载事件 还是以代码来示例一.Initialized触发条件(元素拥有容器,并初始化)当元素实例化以后并被加入到逻辑树中时会触发此事件,此事件可以获取到元素的初始值二.Loaded触发条件(处于逻辑树中(处于加载状态不一定是视觉化))panelDemo处于视觉树中当重新被添加到容器中时,此事件会重新触发三.Unloaded处于视觉化状态下,并移除... 阅读全文

WPF技巧(4)使用Visual元素

2010-05-07 15:27 by Clingingboy, 888 阅读, 收藏, 编辑
摘要: Visual继承自DependencyObject,属于WPF所有控件类的基类,其大多数以Visual开头的属性均受保护. Visual无法直接使用,可以看到Panel添加的元素最低级别为UIElement. 添加Visual对象必须使用AddVisualChild方法等一系列方法,(与FrameworkElement区分开来) 阅读全文

WPF技巧(3)监测属性变更

2010-05-07 14:57 by Clingingboy, 1004 阅读, 收藏, 编辑
摘要: public Window1(){ InitializeComponent(); this.TargetUpdated += new EventHandler<DataTransferEventArgs>(Window1_TargetUpdated); this.SourceUpdated += new EventHandler<DataTransferEventArgs>... 阅读全文

WPF技巧(2)绑定到附加属性

2010-05-07 11:19 by Clingingboy, 1089 阅读, 收藏, 编辑
摘要: 是可以绑定附加属性的,记得给两侧加括号 阅读全文

WPF技巧(1)异步绑定

2010-04-26 22:10 by Clingingboy, 4226 阅读, 收藏, 编辑
摘要: 与大家共勉 当属性值填充好后,与该属性绑定的界面才会开始加载(属性绑定优于控件加载) 这个技巧很简单,但却影响着运行的速度.以下为测试 1.定义一个集合属性2.绑定属性上面的代码可以很好的运行.事实上我们取数据都没这么简单,假设这段数据是从数据里取的,花费3秒时间,我们以线程模拟下面重新运行代码,你将会发现程序会先停滞三秒.结论在刚开始已经提到即使下面的代码也是遵循上面的原则这是相当郁闷的一段代码... 阅读全文

wpf单容器中的Chrome

2010-04-07 12:42 by Clingingboy, 2823 阅读, 收藏, 编辑
摘要: Chrome有点类似于用GDI+画图一般,除了模板,也可以使用DrawingContext对象来画图. WPF内置的很多控件都是如此实现的,虽然麻烦了一些,可能是为了提升性能考虑. 其方式与定义样式模板差不多,只不过换成代码形式了. 1.先定义控件不同状态下的颜色,如2.定义控件样式状态3.在OnRender方法中呈现样式现在为止一个背景色就设置好了,从这里回头看Border容器,也是采用用样的做... 阅读全文

wpf 控件开发基础(6) -单一容器(Decorator)

2010-04-06 23:51 by Clingingboy, 3365 阅读, 收藏, 编辑
摘要: 其实这部分的文章已经很多了,写下来方便自己查询. wpf内置提供了很多容器(Panel),容器分为多容器和单容器.下面介绍单容器.内置的单容器,大家最熟悉的如Border,其作用用于装饰容器内的元素,... 阅读全文

Caliburn v2 变更-Presenter->Screen

2010-03-08 15:20 by Clingingboy, 588 阅读, 收藏, 编辑
摘要: 这个变动影响全局(作者就是很喜欢改名字…后面还有)参考此http://www.cnblogs.com/Clingingboy/archive/2009/12/28/1634054.html 原命名空间... 阅读全文