WPF⾯试题渲染机制(UI线程和Render线程):依赖属性(优点、定义【属性是类私有字段的封装,wpf中使⽤属性对依赖属性进⾏封装】、优先级、继承、附件属性、验证和强制、监听)binding(绑定源、绑定模式【default、OneWay、TwoWay、OntTime、OneWayToSource】、触发绑定更新的事件【Default、Explicit(⼿动BindingExpression.UpdayeSource())、PropertyChange、LostFocus】、优先级PriorityBinding),包括绑定到单⼀属性、实体、集合、值转换、触发机制、验证等属性变更通知(INotifyPropertyChange和ObservableCollection)convert转换器trigger(4种,属性触发器,数据触发器,事件触发器,多条件触发器)template(模板类型【控件模板、数据模板、⾯板模板】)模板选择器style资源Resources,StaticResource/DynamicResource,静态资源在引⽤对象初始化时⼀次性设置完毕;对于动态资源、如果发⽣了改变则会重新应⽤资源逻辑树【UI界⾯的组成元素】、可视化树【逻辑树的扩展版本,将元素分成更⼩的部分】事件的三种⽅式(冒泡、直接、隧道),RoutedEvents(路由事件),附加事件(attachedEvents)&Commands(命令)icommandpublicinterfaceICommand{eventEventHandlerCanExecuteChanged;boolCanExecute(objectparameter);voidExecute(objectparameter);}⽤户控件(将控件组合成⼀个新控件)⾃定义控件(重新制造⼀个控件)⾃定义控件步骤:跨线程操作(Dispatcher)多线程(异步编程和async/await)mvvmprism(⼀个MVVM框架,依赖IOC容器)什么是attachedbehavior(附加⾏为或者附加事件)?WPF和之前的技术交互(WPF/WinForms)弱事件(WeakEventManager),弱引⽤(WeakReference)visual、uielement、frameworkelement、controlMEF(MEF基础、传送门、MEF是⼀个IOC容器,可实现.net程序插件化开发)引⽤传递refout,ref和out都可传出参数,out参数可为空,且在函数中必须赋值线程同步、异步、Task消息机制、消息泵abstract、virtual、new、override、sealedPRISM,CAL&CAG等等框架,是否使⽤过?你们是怎么⽤的?没有使⽤的话,解释⼀下⾃⼰的开发模式和框架。WPF3D和动画的应⽤(是否使⽤过?⽤过哪些?)。怎么开发⾃定义控件?可以简单介绍⼀下⾃⼰开发的控件。WPF的性能调整(你是怎么优化WPF性能的?)聊聊你做WPF的⼀些经验和体会。⼀·WPF由哪两部分组成?wpf由两个主要部分组成:引擎和编程框架。1引擎。wpf引擎是基于窗体的应⽤程序图形视频⾳频和⽂档提供了⼀个单⼀的运⾏时库。重要的是WPF基于⽮量的呈现引擎使应⽤程序可以灵活地利⽤⾼DPI监视器,⽀持图形的硬件加速。2框架。WPF框架为媒体⽤户界⾯设计和⽂档提供⼤量的解决⽅案。wpf的设计考虑了可扩展性,使开发⼈员可以完全在WPF引擎的基础上创建⾃⼰的控件,也可以通过对现有WPF控件进⾏再分类来创建⾃⼰的控件。四·如何理解WPF体系结构?WPF使⽤多层架构,类似于三层结构,最顶层部分为托管代码API,此层⽤于为开发⼈员编写WPF应⽤程序提供较⾼层次的服务,基于C#托管代码编写。转换.NET代码到DirectX的⼯作由中间层milcore.dll实现。中间层milcore是⽤⾮托管代码实现,因为它需要与DirectX紧密集成,对性能敏感,就是消耗的资源⽐较多,对性能影响较⼤。五·在WPF中Binding的作⽤及实现语法?典型的Binding具有四个重要组成部分:Binding⽬标对象(bindingtargetobject)⽬标对象属性(targetproperty)Binding数据源(bindingsource)Path(⽤于指明要从数据源中取得的值,就是我们通常写的属性名称)。⼆·WPF中什么是模板?WPF中模板是⽤于定义或重定义控件结构,或者说对象的外观。WPF中模板有两类,⼀个是控件模板(ControlTemplate)另⼀个是数据模板(DataTemplate),它们都派⽣⾃FrameworkTemplate抽象类。总共有三⼤模板ControlTemplate,ItemsPanelTemplate,DataTemplate。1ControlTemplate主要⽤途是更改控件的外观。它有两个重要属性:VisualTree(视觉树)内容属性和Triggers触发器,对于触发器可以不⽤过多考虑,触发器可有可⽆。VisualTree就是呈现我们所画的控件。Triggers可以对我们的视觉树...