一、WPF基础概念
1.什么是WPF?它与WinForms有什么区别?
-
答案 :WPF(Windows Presentation Foundation)是微软推出的用于构建Windows桌面应用程序的UI框架。与WinForms的主要区别:
-
渲染技术:WPF使用DirectX渲染,支持硬件加速;WinForms使用GDI+,性能较低
-
设计模式:WPF支持MVVM模式,分离UI和逻辑;WinForms通常使用事件驱动模式
-
灵活性:WPF支持更复杂的UI设计(如动画、3D效果),WinForms更适合简单UI
-
2.什么是XAML?它的作用是什么?
-
答案 :XAML(Extensible Application Markup Language)是基于XML的声明性语言,用于定义WPF应用程序的用户界面。作用:
-
分离UI设计和业务逻辑
-
支持数据绑定、样式、模板等高级功能
-
提高开发效率,便于设计师和开发者协作
-
3.WPF应用程序的入口点是什么?
-
答案 :WPF应用程序的入口点是 Main() 方法,通常在App.xaml.cs文件中定义
4.WPF中的Application类有什么作用?
-
答案 :Application类是WPF应用程序的核心,负责管理应用程序的生命周期、资源和窗口
5.WPF中的Dispatcher有什么作用?
-
答案 :Dispatcher负责管理UI线程上的工作项队列,确保UI操作在主线程上执行,避免多线程访问UI元素时出现的问题
二、布局和控件
1.WPF中用于定义用户界面布局的核心元素是什么?
-
答案 :Grid
2.WPF中有哪些常用的布局容器?
-
答案 :Grid、StackPanel、WrapPanel、DockPanel、Canvas、UniformGrid
3.StackPanel和WrapPanel的区别是什么?
-
答案 :StackPanel按照单一方向(水平或垂直)排列子元素,不会自动换行;WrapPanel在子元素超出容器边界时会自动换行
4.DockPanel的作用是什么?
-
答案 :DockPanel允许子元素停靠在容器的上、下、左、右边缘或填充剩余空间
5.Canvas的特点是什么?
-
答案 :Canvas允许通过绝对坐标精确放置子元素,不自动调整子元素位置
6.下列哪个控件不是布局控件?
(A.Grid B.StackPanel C.Button D.WrapPanel)
-
答案 :C
7.如何实现控件的自适应布局?
-
答案 :使用Grid的RowDefinition和ColumnDefinition的*和Auto属性,结合HorizontalAlignment和VerticalAlignment属性
8.什么是ViewBox控件?它的作用是什么?
-
答案 :ViewBox是一个布局容器,它可以拉伸或缩放单个子元素以适应可用空间
9.WPF中用于显示列表项的控件是什么?
-
答案 :ListBox
10.ContentControl和ItemsControl的区别是什么?
-
答案 :ContentControl用于显示单个内容元素,ItemsControl用于显示集合中的多个项目
三、数据绑定
1.WPF中数据绑定使用的标记扩展是什么?
-
答案 :{Binding}
2.WPF中有哪些数据绑定模式?
-
答案 :OneWay(单向绑定)、TwoWay(双向绑定)、OneTime(一次性绑定)、OneWayToSource(从目标到源的单向绑定)
3.什么是DataContext?它的作用是什么?
-
答案 :DataContext是元素的数据上下文,用于指定数据绑定的默认源对象,简化XAML中的绑定表达式
4.如何实现数据绑定的验证?
-
答案 :实现IDataErrorInfo或INotifyDataErrorInfo接口,结合Validation.ErrorTemplate使用
5.什么是值转换器(IValueConverter)?它的作用是什么?
-
答案 :值转换器是实现IValueConverter接口的类,用于在数据绑定过程中转换源值和目标值

869

被折叠的 条评论
为什么被折叠?



