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
浙公网安备 33010602011771号