ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

WPF三种启动方式 + 静态资源 + 数据绑定 满分知识点整理

WPF三种启动方式 + 静态资源 + 数据绑定 满分知识点整理

模块一: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(重难点)

  1. 引入命名空间:指向实体类所在文件夹xmlns:vm="clr-namespace:xxx.Model"

  2. 设置数据上下文:Window.DataContext实例化实体类

  3. 控件绑定属性:通过{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绑定属性。

返回列表