提供了许多公司提出的常见 WPF 面试问题和答案。让我们看看最热门的 WPF 面试问题列表。
WPF 代表窗口展示框架。它是 Microsoft Windows 的最新演示 API。 WPF 是一个 2D 和 3D 图形引擎。
WPF 具有以下功能:
在 WPF 中,资源用于提供一种简单的方法来重用常用定义的对象和值。它们还便于您一次设置多个控件的属性。例如,您可以使用单个资源在 WPF 应用程序中的多个元素上设置背景属性。
XAML 是一种基于 XML 的声明性语言。它有助于您在 XML 中定义对象和属性。它的文档由 XAML 解析器加载。
XAML 用于描述对象、属性以及它们之间的关系。它使您能够创建任何类型的对象,即图形和非图形。
典型的 WPF 应用程序中有多种类型的元素,这些元素设置在元素树关系中。路由事件是一种用于调用元素树中多个侦听器上的处理程序的事件。
WPF 支持两种类型的文档。
WPF 中有两种类型的内容对齐方式:
HorizontalContentAlignment
VerticalContentAlignment
这两个属性都在 System.Windows.Controls.Control 类中定义,该类是 WPF 中所有控件的父类。
默认情况下,TextBox 内容的垂直和水平对齐方式为左对齐,顶部和按钮居中。 例如:
句法:
<elementName propertyName="{markupExtension keyName}">
<!-Content -->
</elementName>
这里,
elementName:使用资源的元素的名称。
propertyName:从资源中获取其值的属性的名称。
markupExtension:定义资源类型。
keyName:资源的键名,是唯一标识资源的字符串。
WPF中主要有两类资源:
- 静态资源
- 动态资源
System.Windows.Media.Medi3D 是使用 3D 所需的命名空间。
不是的,WPF 不能取代 DirectX,因为 WPF 的效率不足以创建具有惊人图形的游戏。 WPF 只是为了替代 Windows 窗体,而不是 DirectX。
依赖属性是属于特定类但可用于另一个类的属性类型。
CLR 代表公共语言运行时。它是 .NET 的运行时环境
不可更改的对象称为可冻结对象。如果需要在线程之间共享可冻结对象,它们的性能会更好也更安全。
值转换器充当目标和源之间的桥梁,当目标与一个源绑定时是必要的,例如您有一个文本框和一个按钮控件。当文本框的文本被填充或为空时,您希望启用或禁用按钮控件。在这种情况下,您需要将字符串数据转换为布尔值。这可以使用值转换器来实现。要实现值转换器,需要继承 System.Windows.Data 命名空间中的 I 值转换器,并实现 Convert 和 Convert Back 两个方法。
Silverlight 和 WPF 浏览器应用程序之间的主要区别如下:
SketchFlow 工具用于绘制 WPF 应用程序的模拟。
以下是不同类型的布局控件:
- Grid
- DockPanel
- WrapPanel
- Canvas
- UniformGrid
- StackPanel
Prism 是一个框架,用于为 WPF、Silverlight 或 Window 手机创建复杂的应用程序。它使用 MVVM、IC、命令模式、DI 和关注点分离来实现松耦合。
CustomControl 用于扩展现有控件的功能。它包含主题和代码文件中的默认样式。
自定义控件是制作控件库的最佳方式。它也可以是样式或模板。
路径动画是一种不同类型的动画。在此动画中,动画对象遵循路径几何体设置的路径。
BAML 代表二进制应用标记语言。它是一种已被标记化、解析并更改为二进制形式的 XAML。
XAML 和 BAML 之间的唯一区别是 BAML 是一种压缩声明性语言,加载和解析速度比 XAML 快。
No. | 页面控件 | 窗口控件 |
---|---|---|
1. | 页面控件负责托管的浏览器应用程序。 | 窗口控件主持窗口应用程序。 |
2. | 页面控件不能包含窗口控件。 | 窗口控件可能包含页面控件。 |
WPF 的控件类派生自 FrameworkElement。
StaticResource | DynamicResource |
---|---|
StaticResources 仅对资源进行一次评估。 | DynamicResource 每次需要时都会评估资源。 |
静态资源很轻。 | 由于频繁评估,DynamicResource 很重。 |
WPF 不支持 MDI。 UserControl 可以提供与 MDI 相同的功能。
序列化是将对象的状态转换为字节流的过程。
MVVM 代表模型视图视图模型。
它是一个在 WPF 中制作应用程序的框架。 MVVM 与 MVC 框架相同。它是一个三层架构,再加上一层。使用 MVVM 可以实现松耦合。
MVVM 由 John Gossman 于 2005 年推出。它专门用于与 WPF 一起使用,作为 Martin Fowler 更广泛的 Presentation Model 模式的具体应用。
MVVM 具有以下优点:
- 模块化测试驱动方法。
- 分离 UI 和业务层作为视图和视图模型。
- 页面和表单之间的代码共享。
- 易于维护。
MVVM 最重要的特性列表:
- MVVM 将业务层和表示层分开,例如 MVP 和 MVC。
- 它改进了关注点的结构/分离(视图、视图模型和模型)。
- 它可以实现更好的设计/开发人员工作流程。
- 它提高了简单性和可测试性。
- 它由 XAML 强大的数据绑定功能启用。
- 无需使用代码隐藏文件(极简代码隐藏文件)。
- 提供多环境的应用开发能力。
- 强大的数据绑定、命令、验证等等。
- 设计者和开发者可以一起工作。
MVC 代表 Model-View Controller,MVVM 代表 Model-View ViewModel。 在 MVVM 中,使用视图模型代替控制器。此视图模型存在于 UI 层下方。它显示视图所需的命令对象和数据。它就像一个容器对象,视图从中获取其操作和数据。