Applications=Code+Markup 读书笔记之八 Dependency Property

1、逻辑树和视觉树
本章提到逻辑树和视觉树(可视树)。在《WPF揭秘》中有较为详细的讲解。
逻辑树:在WFP中,用户界面由一个对象树构建而成,这个树被成为逻辑树。几乎WPF的每一方面(属性、事件、资源等)都与逻辑树相关,
        例如:属性值有时会沿着逻辑树自动传递给子元素,而触发的事件可以自底向上或自底而下遍历树。
可视树:逻辑树的扩展,可视树中,节点都被打散,分放到核心可视组件中,可视树提供了一些详细的可视化实现,而不是吧每个元素当做一个“黑盒”。
 例如:ListBox从逻辑上来讲是一个单独的控件,但他的默认可视呈现是由更多的原始WPF元素组成:一个Border对象、两个ScrollBar以及其他一些元素。
并非所以逻辑树节点都会在可视树中出现,除非他们有自我呈现能力,具体指从System.Windows.Media.Visual或System.Windows.Media.Visual3D派生出来的元素。

2、依赖属性 在任何时刻,依赖属性都是依靠多个提供程序来判断它的值,其最大的特征是内建的传递变更通知(change notification)的能力.
依赖属性的注册:
 public string ItemName
 {
   get { return (string)GetValue(ItemNameProperty); }
   set { SetValue(ItemNameProperty, value); }
 }
 public static readonly DependencyProperty ItemNameProperty = DependencyProperty.Register("ItemName", typeof(string), typeof(DesignerItem));

posted @ 2008-11-27 20:57  乔治国  阅读(201)  评论(0编辑  收藏  举报