互联网面试——WPF面试问题

提供了许多公司提出的常见 WPF 面试问题和答案。让我们看看最热门的 WPF 面试问题列表。

1. 什么是WPF?

WPF 代表窗口展示框架。它是 Microsoft Windows 的最新演示 API。 WPF 是一个 2D 和 3D 图形引擎。

2. WPF 的功能是什么?

WPF 具有以下功能:

  • 它具有所有等效的通用用户控件,如按钮、复选框、滑块等。
  • 它具有 HTML 和 Flash 的所有功能。
  • 它支持固定和流格式文件。
  • 它提供了数据绑定、动画和多媒体的便利。

3. WPF中的资源是什么?

在 WPF 中,资源用于提供一种简单的方法来重用常用定义的对象和值。它们还便于您一次设置多个控件的属性。例如,您可以使用单个资源在 WPF 应用程序中的多个元素上设置背景属性。

4. 什么是 XAML?

XAML 是一种基于 XML 的声明性语言。它有助于您在 XML 中定义对象和属性。它的文档由 XAML 解析器加载。

5. XAML 的用途是什么?

XAML 用于描述对象、属性以及它们之间的关系。它使您能够创建任何类型的对象,即图形和非图形。

6. 什么是路由事件?

典型的 WPF 应用程序中有多种类型的元素,这些元素设置在元素树关系中。路由事件是一种用于调用元素树中多个侦听器上的处理程序的事件。

7. WPF支持多少种文档类型?

WPF 支持两种类型的文档。

  • 流格式文档:流格式文档用于更改内容以适应屏幕尺寸。
  • 固定格式文档:固定格式文档呈现内容与屏幕大小无关。

8. 你对 WPF 中的内容对齐了解多少?

WPF 中有两种类型的内容对齐方式:

Horizo​​ntalContentAlignment
VerticalContentAlignment

这两个属性都在 System.Windows.Controls.Control 类中定义,该类是 WPF 中所有控件的父类。
默认情况下,TextBox 内容的垂直和水平对齐方式为左对齐,顶部和按钮居中。 例如:
在这里插入图片描述

9. 记下 WPF 中资源的语法。

句法:

    <elementName propertyName="{markupExtension keyName}">  
       <!-Content -->  
    </elementName>   

这里,

elementName:使用资源的元素的名称。
propertyName:从资源中获取其值的属性的名称。
markupExtension:定义资源类型。
keyName:资源的键名,是唯一标识资源的字符串。

10. WPF 中可用的资源类型有多少?

WPF中主要有两类资源:

  • 静态资源
  • 动态资源

11. 使用 3D 需要哪个命名空间?

System.Windows.Media.Medi3D 是使用 3D 所需的命名空间。

12. 可以说WPF是DirectX的替代品吗?

不是的,WPF 不能取代 DirectX,因为 WPF 的效率不足以创建具有惊人图形的游戏。 WPF 只是为了替代 Windows 窗体,而不是 DirectX。

13. 什么是依赖属性?

依赖属性是属于特定类但可用于另一个类的属性类型。

14. 什么是 CLR?

CLR 代表公共语言运行时。它是 .NET 的运行时环境

15. WPF 中的可冻结对象是什么?

不可更改的对象称为可冻结对象。如果需要在线程之间共享可冻结对象,它们的性能会更好也更安全。

16. WPF 中的值转换器是什么?

值转换器充当目标和源之间的桥梁,当目标与一个源绑定时是必要的,例如您有一个文本框和一个按钮控件。当文本框的文本被填充或为空时,您希望启用或禁用按钮控件。在这种情况下,您需要将字符串数据转换为布尔值。这可以使用值转换器来实现。要实现值转换器,需要继承 System.Windows.Data 命名空间中的 I 值转换器,并实现 Convert 和 Convert Back 两个方法。

17. Silverlight 和 WPF 浏览器应用有什么区别?

Silverlight 和 WPF 浏览器应用程序之间的主要区别如下:

  • 在客户端计算机上运行 WPF 浏览器应用程序需要 .NET 框架,而 Silverlight 仅使用插件运行。
  • 在 WPF 中创建的应用程序取决于操作系统,因为 .NET 框架只能在 Windows 上运行。另一方面,Silverlight 插件也可以安装在那些非 Windows 的操作系统上。

18. 绘制 WPF 应用程序的模拟需要哪个工具?

SketchFlow 工具用于绘制 WPF 应用程序的模拟。

19. 有哪些不同类型的布局控件?

以下是不同类型的布局控件:

  • Grid
  • DockPanel
  • WrapPanel
  • Canvas
  • UniformGrid
  • StackPanel

20. 什么是Prism?

Prism 是一个框架,用于为 WPF、Silverlight 或 Window 手机创建复杂的应用程序。它使用 MVVM、IC、命令模式、DI 和关注点分离来实现松耦合。

21. 什么是自定义控件?

CustomControl 用于扩展现有控件的功能。它包含主题和代码文件中的默认样式。

22. 自定义控件有什么用?

自定义控件是制作控件库的最佳方式。它也可以是样式或模板。

23. WPF 中的路径动画是什么?

路径动画是一种不同类型的动画。在此动画中,动画对象遵循路径几何体设置的路径。

24. WPF中BAML是什么意思?

BAML 代表二进制应用标记语言。它是一种已被标记化、解析并更改为二进制形式的 XAML。

25. XAML 和 BAML 有什么区别?

XAML 和 BAML 之间的唯一区别是 BAML 是一种压缩声明性语言,加载和解析速度比 XAML 快。

26. WPF 中的页面控件和窗口控件有什么区别?

No.页面控件窗口控件
1.页面控件负责托管的浏览器应用程序。窗口控件主持窗口应用程序。
2.页面控件不能包含窗口控件。窗口控件可能包含页面控件。

27. WPF的控件类的父类是什么?

WPF 的控件类派生自 FrameworkElement。

28. DynamicResource和StaticResource有什么区别?

StaticResourceDynamicResource
StaticResources 仅对资源进行一次评估。DynamicResource 每次需要时都会评估资源。
静态资源很轻。由于频繁评估,DynamicResource 很重。

29. WPF 支持 MDI 吗?

WPF 不支持 MDI。 UserControl 可以提供与 MDI 相同的功能。

30. 什么是序列化?

序列化是将对象的状态转换为字节流的过程。

31. 什么是 MVVM?

MVVM 代表模型视图视图模型。
它是一个在 WPF 中制作应用程序的框架。 MVVM 与 MVC 框架相同。它是一个三层架构,再加上一层。使用 MVVM 可以实现松耦合。

32. MVVM 是什么时候引入的?

MVVM 由 John Gossman 于 2005 年推出。它专门用于与 WPF 一起使用,作为 Martin Fowler 更广泛的 Presentation Model 模式的具体应用。

33. MVVM 的优点是什么?

MVVM 具有以下优点:

  • 模块化测试驱动方法。
  • 分离 UI 和业务层作为视图和视图模型。
  • 页面和表单之间的代码共享。
  • 易于维护。

34. MVVM 最重要的特性是什么?

MVVM 最重要的特性列表:

  • MVVM 将业务层和表示层分开,例如 MVP 和 MVC。
  • 它改进了关注点的结构/分离(视图、视图模型和模型)。
  • 它可以实现更好的设计/开发人员工作流程。
  • 它提高了简单性和可测试性。
  • 它由 XAML 强大的数据绑定功能启用。
  • 无需使用代码隐藏文件(极简代码隐藏文件)。
  • 提供多环境的应用开发能力。
  • 强大的数据绑定、命令、验证等等。
  • 设计者和开发者可以一起工作。

35. MVVM 与 MVC 有何不同?

MVC 代表 Model-View Controller,MVVM 代表 Model-View ViewModel。 在 MVVM 中,使用视图模型代替控制器。此视图模型存在于 UI 层下方。它显示视图所需的命令对象和数据。它就像一个容器对象,视图从中获取其操作和数据。

在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cool2Feel

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值