【WPF】WPF学习之【一】基础知识

WPF学习之基础知识篇

    • 1、WPF的核心架构和原理
    • 2、核心组件和概念
      • [1. XAML](#1. XAML)
      • [2. 依赖属性(Dependency Properties)](#2. 依赖属性(Dependency Properties))
      • [3. 路由事件(Routed Events)](#3. 路由事件(Routed Events))
      • [4. 数据绑定](#4. 数据绑定)
      • [5. 命令(Commands)](#5. 命令(Commands))
      • [6. 资源和样式](#6. 资源和样式)
      • [7. 模板(Templates)](#7. 模板(Templates))
    • 3、xaml文件基础

1、WPF的核心架构和原理

WPF(Windows Presentation Foundation)具有一个复杂且强大的架构,旨在提供丰富的用户界面、图形、动画和多媒体功能。以下是WPF的核心架构和原理的详细介绍:

1、核心架构

WPF的架构可以分为多个层次,每个层次负责不同的功能:

PresentationFramework:提供WPF应用程序开发所需的高级功能和控件。

PresentationCore:提供基本的图形功能和底层接口。

WindowsBase:包含WPF的基础类和公共语言运行时(CLR)库。

Milcore(Media Integration Layer):核心图形引擎,直接与DirectX进行交互。

2、核心组件和概念

1. XAML

XAML(eXtensible Application Markup Language):一种基于XML的标记语言,用于定义WPF的用户界面。通过XAML,可以直观地描述界面元素及其属性,实现界面和逻辑代码的分离。

2. 依赖属性(Dependency Properties)

依赖属性:WPF的一个扩展属性系统,允许属性值通过绑定、样式、动画等方式进行动态变化。依赖属性支持WPF的许多功能,如数据绑定、样式和动画。

3. 路由事件(Routed Events)

路由事件:一种事件处理机制,允许事件在元素树中进行"路由",可以向上传递(冒泡)或向下传递(隧道)。这使得父元素可以响应子元素的事件,提供灵活的事件处理机制。

4. 数据绑定

数据绑定:WPF的核心特性之一,允许将UI元素与数据源绑定。支持单向绑定、双向绑定、绑定到集合和数据模板等,使得UI与数据交互变得简单而高效。

5. 命令(Commands)

命令:一种行为模式,允许将用户操作(如点击按钮)与逻辑处理分离。WPF提供了ICommand接口和一系列内置命令,使得命令绑定和处理更加方便。

6. 资源和样式

资源:可以在XAML中定义并重用的对象,如颜色、样式、控件模板等。资源可以是静态资源或动态资源。

样式(Styles):定义控件的外观和行为,类似于CSS,可以应用于一个或多个控件。

7. 模板(Templates)

控件模板(ControlTemplate):用于自定义控件的外观,可以完全改变控件的视觉表现。

数据模板(DataTemplate):定义数据对象在UI中的展示方式,适用于数据绑定场景。

3、xaml文件基础

示例代码

csharp 复制代码
<Window x:Class="WpfApp.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <!-- 这里可以添加更多的控件和布局 -->
    <Grid>
        <Button Content="Click Me" Width="100" Height="50" 
                HorizontalAlignment="Center" VerticalAlignment="Center"
                Click="Button_Click"/>
    </Grid>
</Window>

代码解读:

csharp 复制代码
 <Window> 元素是 WPF 中一个顶级容器,表示一个窗口。它通常是一个应用程序的主窗口或弹出窗口。这个元素包含了一些属性,用于定义窗口的外观和行为。

x:Class: 是一个 XAML 语言的特性,指定了这个 XAML 文件所对应的后台代码类。在例子中,x:Class="WpfApp.MainWindow" 指定了窗口的后台代码类是 WpfApp.MainWindow。这个类位于 MainWindow.xaml.cs 文件中,并包含窗口的逻辑代码。

xmlns: 定义了 XAML 文件中使用的命名空间。xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation":这是默认的 WPF 命名空间,包含了 WPF 中的各种控件和功能。

xmlns:x: 定义了 XAML 的命名空间,包含 XAML 语言的功能。xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml":这是 XAML 命名空间,提供了如 x:Class、x:Name、x:Key 等 XAML 语言功能。

Title: 定义窗口的标题栏文本。Title="MainWindow" 将窗口的标题设置为 "MainWindow"。

Height 和 Width: 定义窗口的高度和宽度(以像素为单位)。Height="350" 和 Width="525" 设置了窗口的初始大小。
相关推荐
Scout-leaf1 天前
WPF新手村教程(三)—— 路由事件
c#·wpf
西岸行者3 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
悠哉悠哉愿意3 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
别催小唐敲代码3 天前
嵌入式学习路线
学习
毛小茛3 天前
计算机系统概论——校验码
学习
babe小鑫3 天前
大专经济信息管理专业学习数据分析的必要性
学习·数据挖掘·数据分析
winfreedoms3 天前
ROS2知识大白话
笔记·学习·ros2
在这habit之下3 天前
Linux Virtual Server(LVS)学习总结
linux·学习·lvs
我想我不够好。3 天前
2026.2.25监控学习
学习
im_AMBER3 天前
Leetcode 127 删除有序数组中的重复项 | 删除有序数组中的重复项 II
数据结构·学习·算法·leetcode