WPF三种启动方式 + 静态资源 + 数据绑定 满分知识点整理
模块一WPF应用程序三种启动方式必考大题1.1 三种方式核心对比背诵方式1StartupUri 指定启动页推荐、最常用特点XAML直接配置、写法最简、无需后台代码缺点不能传递参数、无法自定义启动逻辑执行顺序晚于Startup事件方式3自定义Main方法启动不推荐场景完全手动接管程序入口硬性要求关闭App.xaml生成操作、窗体必须无参构造、添加STA线程特性App.xaml 前台Application x:Class_3_窗体启动三种方式.App xmlnshttp://schemas.microsoft.com/winfx/2006/xaml/presentation xmlns:xhttp://schemas.microsoft.com/winfx/2006/xaml xmlns:localclr-namespace:_3_窗体启动三种方式 StartupUriMainWindow.xaml StartupApplication_Startup Application.Resources/Application.Resources /ApplicationApp.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:Keystr1成龙/sys:String !--2.字符串数组-- x:Array x:Keyitems Typesys:String sys:String蔡徐坤/sys:String sys:String小刚/sys:String sys:String周传雄/sys:String /x:Array !--3.整型数组-- x:Array x:Keyints Typesys:Int32 sys:Int321/sys:Int32 sys:Int322/sys:Int32 sys:Int323/sys:Int32 /x:Array !--4.纯色画刷资源-- SolidColorBrush x:Keys1 Color#007aa4/SolidColorBrush !--5.颜色数组资源-- x:Array x:Keycolors TypeColor ColorRed/Color ColorGreen/Color ColorBlue/Color /x:Array /Window.Resources2.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:vmclr-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 Liststring lists { get; set; } new Liststring() { 金发,商人,川建国 }; } }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绑定属性。