导航

WPF基本问题

WPF基本问题

 

问题与解答:

1. 逻辑树与视觉树的区别。

  逻辑树是视觉树的子集,它体现了parent, children的关系,这种关系通过xaml来体现。视觉树是建立在逻辑树的基础上的,它包括了部分装饰用的控件。

 

2. 什么是依赖属性.

    是WPF特有的一种属性,它只在你给它赋值得时候他才占用内存空间,依赖属性除了普通属性的特性外,太还应用于绑定,样式,动画,它还有验证,强制,继承的功能。

 

3. WPF的不同的控件。

  • Control (ContentControl, ItemsControl)
  • Shape (Path, Line, Ellipse)
  • Content presenter
  • Panel (stack panel, Grid)

                              

 

 

4. WPF对象的层次

 

 

5. WPF 的架构

 

      Presentation core: WPF在这里提供底层API, 操作 2D, 3D, geometry等。

  Presentation framework: WPF在这里提供高级的特性,想controls, layout, content等。

 

6. Static 与 Dynamic 资源的区别。

  Static 资源被读取一次, 当资源发生变化了,也不会影响资源的使用者。

  Dynamic资源每次需要的时候都重新读取资源, 资源发生变化,会影响资源的使用者。

 

7. 请解WPF 里的Routed events 。

  • Direct events: 事件在哪里触发,就在哪里处理。
  • Bubbling events:  事件在源触发,会沿着视觉树向上传播。
  • Tunneling events: 事件会在源触发位置,沿视觉树向下传播。

 

8. 什么是样式?

  样式是一组属性设置,来定义控件的外观,可以继承,它需要明确targettype, 可以通过trigger来根据条件来定义属性。 Trigger又分为 普通的trigger, datatrigger, event trigger(只能写animation), blend还进行了相关的扩展。

  

9. MVVM?

  • View 控件位置,外观,用户input.
  • ViewModel 存放界面逻辑的地方, 传递 view 到 model的数据。存放UI的操作。
  • Model  存放数据

 分离关注,增加了复用性。

 

10. IPropertyChanged 与 ICollectionChanged的区别?

 

11. Prism?

 

主要实现了模块化,通过RegionName, 可以快速的调整界面. 还提供了DelegateCommand, EventAggregator等进行模块间的通讯。

 

 

参考资料:

 

http://www.codeproject.com/Articles/355473/Prism-EventAggregator-Sample

http://www.codeproject.com/Articles/744082/WPF-Interview-questions-with-answers

 

posted on 2015-05-17 11:42  水中游  阅读(213)  评论(0)    收藏  举报