WPF 基础面试题及答案(一)
一 · WPF由哪两部分组成?
wpf 由两个主要部分 组成:引擎和编程框架。
1 引擎。wpf引擎是基于窗体的应用程序 图形 视频 音频和文档提供了一个单一的运行时库。重要的是WPF基于矢量的呈现引擎使应用程序可以灵活地利用高DPI监视器,支持图形的硬件加速。
2 框架。WPF框架为媒体 用户界面设计和文档提供大量的解决方案。wpf的设计考虑了可扩展性,使开发人员可以完全在WPF引擎的基础上创建自己的控件,也可以通过对现有WPF控件进行再分类来创建自己的控件。
二 · 什么是WPF?
WPF英文全称是Windows Presentation Foundation,中文为Windows表现层基础。是微软最初在.NET Framework3.5平台推出的一个图形平台。
三 · Silverlight 和 WPF的异同。
它们的运行方式是不同的。
1 silverlight是基于浏览器插件的,在浏览器中运行。
2 WPF可以编写Web程序或者桌面应用程序,可以直接编译为独立运行的exe文件。
实现功能是不同的。
1 WPF支持直接在XAML中绑定触发来触发动画,而silverlight就只能通过托管代码或者javascript来进行。
2 WPF直接支持3D效果和3D镜头变换,但是silverlight就不支持。
它们也有相似的地方
1 silverlight 原名WPF/E 就是WPF Everywhere 是WPF的一个子集。因此它们在很多语法实现上非常类似。
四 ·如何理解WPF体系结构?
WPF使用多层架构,类似于三层结构,最顶层部分为托管代码API,此层用于为开发人员编写WPF应用程序提供较高层次的服务,基于C#托管代码编写。转换.NET代码到DirectX的工作由中间层milcore.dll实现。中间层milcore是用非托管代码实现,因为它需要与DirectX紧密集成,对性能敏感,就是消耗的资源比较多,对性能影响较大。
五 · 在WPF中Binding的作用及实现语法?
典型的Binding具有四个重要组成部分:Binding目标对象(binding target object) 目标对象属性(target property) Binding数据源(binding source) Path(用于指明要从数据源中取得的值,就是我们通常写的属性名称)。
六·什么是XML扩展XAML?有何优点?
1 XAML是eXtensible Application Markup Language的英文缩写,相应于中文称为可扩展应用程序标记语言,它是微软公司为构建应用程序用户界面而创建的一种新的描述性语言。
2 XAML是XML语言的一个衍生物,它的语法与XML语言完全一致,它的功能就是专门用来设计和实现程序的UI。
3 XAML一个很大的优点就是由于WPF支持WEB开发,那么WEB开发和桌面开发的转换是很简单,修改的地方很短,同时UI与逻辑完全分离,所以逻辑代码也几乎不用改动。
七· 解释什么是依赖属性,它和以前的属性有什么不同?为什么在WPF会使用它?
1 Windows Presentation Foundation (WPF) 提供了一组服务,这些服务可用于扩展公共语言运行时 (CLR) 属性的功能,这些服务通常统称为 WPF 属性系统。由 WPF 属性系统支持的属性称为依赖项属性。
2 它和以往属性的不同之处有
(1)依赖属性是一种特定类型的属性。这种属性的特殊之处在于,其属性值受到 Windows 运行时中专用属性系统的跟踪和影响。
(2)依赖属性的用途是提供一种系统的方式,用来基于其他输入(在应用运行时其内部出现的其他属性、事件和状态)计算属性的值。
(3)依赖属性代表或支持编程模型的某种特定功能,用于定义 Windows 运行时应用,这种模型使用 XAML 编写 UI,使用 C#、Microsoft Visual Basic 或 Visual C++ 组件扩展 (C++/CX) 编写代码。
一般的属性没有这么复杂。
3 WPF使用它是有不少优点的
(1)优化了属性的存储,直接减少了不必要的内存使用。
(2)有属性变化通知 限制 验证等。
(3)可以储存多个值,配合Expression及Animation等,打造出更灵活的使用方法。
WPF 基础面试题及答案(一)的更多相关文章
- Java基础知识面试题及答案-整理
1.String类可以被继承吗? 不能.String类在声明中使用final关键字修饰符.使用final关键字修饰的类无法被继承. Java语言的开发者为什么要将String类定义为final类呢? ...
- Java基础面试题及答案(六)
异常 74. throw 和 throws 的区别? throws是用来声明一个方法可能抛出的所有异常信息,throws是将异常声明但是不处理,而是将异常往上传,谁调用我就交给谁处理.而throw则是 ...
- Java基础面试题及答案(一)
Java 基础部分 1. JDK 和 JRE 有什么区别? JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境. JRE:Java ...
- 最新Java基础面试题及答案整理
最近在备战面试的过程中,整理一下面试题.大多数题目都是自己手敲的,网上也有很多这样的总结.自己感觉总是很乱,所以花了很久把自己觉得重要的东西总结了一下. 面向对象和面向过程的区别 面向过程: 优 ...
- Java基础面试题及答案(四)
反射 57. 什么是反射? 反射主要是指程序可以访问.检测和修改它本身状态或行为的一种能力 Java反射: 在Java运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能 ...
- Java基础面试题及答案(三)
多线程 35. 并行和并发有什么区别? 并行是指两个或者多个事件在同一时刻发生:而并发是指两个或多个事件在同一时间间隔发生. 并行是在不同实体上的多个事件,并发是在同一实体上的多个事件. 在一台处理器 ...
- 50 道 CSS 基础面试题及答案
1 介绍一下标准的CSS的盒子模型?与低版本IE的盒子模型有什么不同的? 标准盒子模型:宽度=内容的宽度(content)+ border + padding + margin 低版本IE盒子模型:宽 ...
- Java基础面试题及答案(五)
Java Web 64. jsp 和 servlet 有什么区别? jsp经编译后就变成了Servlet.(JSP的本质就是Servlet,JVM只能识别java的类,不能识别JSP的代码,Web容器 ...
- Java基础面试题及答案(二)
容器 18. java 容器都有哪些? 常用容器的图录: 19. Collection 和 Collections 有什么区别? java.util.Collection 是一个集合接口(集合类的一个 ...
随机推荐
- Nginx平滑重启
kill -HUP cat /usr/local/nginx/logs/nginx.pid`
- php常用[字符串]函数
nl2br 功能:化换行符为<br> <?php $str = "cat isn't \n dog"; $result = nl2br($str); echo $ ...
- Delphi格式化输出函数(1): Format
vars: string;begin//指令类型 types := Format('最大整数是: %d; 最小整数是: %d',[MaxInt,Low(Integer)]);//返回: 最大整数是: ...
- c语言学习感想
接触c语言已经2个多月了,在这段期间按时的完成了作业,上课能够较好的听讲,因此我获得了老师奖励的小黄衫. 同时,希望自己能够学好c语言! 学习感受与心得 因为兴趣,选择了计算机这专业,我从遥远的南方来 ...
- 文件对比工具Beyond Compare使用方法
今天向大家介绍一个使用起来十分方便且功能十分强大的文件对比工具-Beyond Compare. 1 工具下载 工具的下载很简单,百度搜索Beyond Compare即可. 下载完成后,解压缩,双 ...
- 转载:C++线程池的一个实现
原文转自:http://www.cnblogs.com/lidabo/p/3328646.html 略有修改 Cthread类参见:http://www.cnblogs.com/tangxin-blo ...
- Delphi Dll示例
//MyInt.pas unit MyInt; interface {$IFNDEF MYLIB} function MyAdd(a,b:integer):integer ;stdcall; {$EN ...
- 转:ASP.NET MVC扩展之HtmlHelper辅助方法
1.什么是HtmlHelper辅助方法?其实就是HtmlHelper类的扩展方法,如下所示: namespace System.Web.Mvc.Html { public static class F ...
- Ⅰ.net通信指前提
①大概搜索了一下,一般提到了这三种居多: Webservice:基于B/S的,可以对外发布方法 Socket:一种网络数据交换模型,Socket接口是TCP/IP网络的API,有三个主要因素:地址.端 ...
- Fiddler-004-配置过滤器之-域名过滤
前文讲述了通过 Fiddler 进行网络抓包的一个小实例,具体敬请参阅博文: 有些细心的小主可能发现了,我们捕获的 HTTP请求 中有一些请求不是我们需要的,而是一些非必要数据,页面如下图所示: