模块一:WPF应用程序三种启动方式(必考大题)
1.1 三种方式核心对比(背诵)
方式1:StartupUri 指定启动页(推荐、最常用)
特点:XAML直接配置、写法最简、无需后台代码
缺点:不能传递参数、无法自定义启动逻辑
执行顺序:晚于Startup事件
方式3:自定义Main方法启动(不推荐)
场景:完全手动接管程序入口
硬性要求:关闭App.xaml生成操作、窗体必须无参构造、添加STA线程特性
App.xaml 前台
<Application x:Class="_3_窗体启动三种方式.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:_3_窗体启动三种方式" StartupUri="MainWindow.xaml" Startup="Application_Startup"> <Application.Resources></Application.Resources> </Application>App.xaml.cs 后台(Startup事件传参启动)
using System; using System.Windows; namespace _3_窗体启动三种方式 { public partial class App : Application { private void Application_Startup(object sender, StartupEventArgs e) { // 修改关闭策略:仅手动调用Shutdown才退出(防止弹窗后主程序关闭) this.ShutdownMode = ShutdownMode.OnExplicitShutdown; // 启动带参数窗口 Window1 w1 = new Window1(100); w1.ShowDialog(); // 恢复默认策略:主窗口关闭即程序退出 this.ShutdownMode = ShutdownMode.OnMainWindowClose; } } }1.3 方式3 自定义Main方法(了解、不推荐)
[STAThread] public static void Main(string[] args) { Application app = new Application(); // 相对路径加载启动窗口 app.StartupUri = new Uri("Window1.xaml", UriKind.Relative); app.Run(); }1.4 ShutdownMode 三种关闭策略(必考)
OnMainWindowClose(默认):主窗口关闭,程序直接退出
OnExplicitShutdown:必须手动调用 Shutdown() 才退出
OnLastWindowClose:所有窗口全部关闭才退出
模块二:WPF静态资源 StaticResource(基础必考)
定义位置:
Window.Resources局部资源(当前窗口生效)
2.1 核心知识点
引用方式:
{StaticResource Key名}特点:程序启动加载一次,运行不可更改
支持类型:字符串、数值、数组、颜色、画刷、样式等
2.2 各类静态资源完整定义
<Window.Resources> <!--1.字符串资源--> <sys:String x:Key="str1">成龙</sys:String> <!--2.字符串数组--> <x:Array x:Key="items" Type="sys:String"> <sys:String>蔡徐坤</sys:String> <sys:String>小刚</sys:String> <sys:String>周传雄</sys:String> </x:Array> <!--3.整型数组--> <x:Array x:Key="ints" Type="sys:Int32"> <sys:Int32>1</sys:Int32> <sys:Int32>2</sys:Int32> <sys:Int32>3</sys:Int32> </x:Array> <!--4.纯色画刷资源--> <SolidColorBrush x:Key="s1" Color="#007aa4"></SolidColorBrush> <!--5.颜色数组资源--> <x:Array x:Key="colors" Type="Color"> <Color>Red</Color> <Color>Green</Color> <Color>Blue</Color> </x:Array> </Window.Resources>2.3 静态资源引用示例
<!--引用字符串--> <TextBlock Text="{StaticResource str1}"></TextBlock> <!--引用数组绑定列表--> <ListBox ItemsSource="{StaticResource items}"></ListBox> <ListBox ItemsSource="{StaticResource ints}"></ListBox> <!--引用颜色画刷--> <ListBox Background="{StaticResource s1}" ItemsSource="{StaticResource colors}"></ListBox>模块三:WPF数据绑定 Binding(重难点)
引入命名空间:指向实体类所在文件夹
xmlns:vm="clr-namespace:xxx.Model"设置数据上下文:
Window.DataContext实例化实体类控件绑定属性:通过
{Binding 属性名}展示数据
3.2 实体类 Model 代码
using System.Collections.Generic; namespace _4绑定值.Model { public class DataViewModel { // 普通属性 public int Id { get; set; } = 100; public string Name { get; set; } = "特朗普"; // 集合属性 public List<string> lists { get; set; } = new List<string>() { "金发","商人","川建国" }; } }3.3 前台绑定配置
<!--1.引入实体命名空间--> xmlns:vm ="clr-namespace:_4绑定值.Model" <!--2.设置全局数据上下文--> <Window.DataContext> <vm:DataViewModel></vm:DataViewModel> </Window.DataContext> <!--3.控件绑定展示--> <TextBlock Text="{Binding Id}"></TextBlock> <TextBlock Text="{Binding Name}"></TextBlock> <ListBox ItemsSource="{Binding lists}"></ListBox>模块四:期末必背简答题
StartupUri:最简、推荐,不能传参、无自定义逻辑
Startup事件:可传参、可控性高,适合复杂启动逻辑
自定义Main:完全手动控制,配置繁琐、不推荐
2. DataContext作用?
数据上下文,为当前窗口/控件提供数据源,所有子控件可直接通过Binding绑定其属性,无需重复指定数据源。
3. StaticResource静态资源特点?
程序启动一次性加载,运行时不可修改,性能高,适合固定文本、颜色、数组、样式。
4. WPF绑定三步骤?
引入命名空间 → 配置DataContext数据源 → 控件使用Binding绑定属性。