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就不支持。

它们也有相似的地方

  • 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等,打造出更灵活的使用方法。

当然,下面是一些常见的C#WPF面试题答案: 1. 什么是C#C#是一种面向对象的编程语言,由微软公司开发。它是.NET平台的一部分,用于开发各种应用程序,包括桌面应用程序、Web应用程序、移动应用程序等。 2. C#中的值类型和引用类型有什么区别? 值类型直接包含其数据,存储在堆栈上,而引用类型存储在堆上,并且变量存储的是对数据的引用。值类型的赋值是将值进行复制,而引用类型的赋值是将引用进行复制。 3. C#中的接口和抽象类有什么区别? 接口是一种完全抽象的类,它定义了一组方法和属性,但没有实现。它被用于实现多态性和类之间的松耦合。抽象类是一个可以包含实现代码的类,它可以有抽象成员和非抽象成员。一个类只能继承一个抽象类,但可以实现多个接口。 4. 什么是WPFWPF(Windows Presentation Foundation)是微软公司开发的一种用于创建用户界面的技术。它使用XAML(eXtensible Application Markup Language)来定义界面,提供了强大的UI布局和数据绑定功能。 5. WPF中的MVVM模式是什么? MVVM(Model-View-ViewModel)是一种设计模式,用于在WPF应用程序中实现分离UI逻辑和业务逻辑。模型(Model)表示应用程序的数据,视图(View)表示用户界面,视图模型(ViewModel)是视图和模型之间的中介,负责处理用户输入、数据绑定和其他逻辑。 6. WPF中的数据绑定有哪些方式? WPF中的数据绑定有多种方式,包括: - 单向绑定:将数据从源绑定到目标,只能源更新目标。 - 双向绑定:将数据从源绑定到目标,并且可以在目标或源上进行更改。 - 单向到源绑定:将数据从目标绑定到源,只能目标更新源。 7. WPF中的命令是什么? 命令是一种用于处理用户交互的行为的机制。WPF中的命令实现了ICommand接口,可以通过命令来处理按钮点击、菜单项选择等操作。 这些问题只是一些常见的C#WPF面试题,您可能会遇到更具体的问题,所以建议您对这些主题进行更详细的学习和准备。希望对您有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值