2025-09-30
C#
00

XAML是一种基于XML的声明式标记语言,作为WPF、UWP和Xamarin.Forms等.NET框架中用户界面开发的核心技术。它提供了丰富的控件系统,包括文本控件、按钮控件、列表控件等,并支持多种布局方式如StackPanel、Grid、DockPanel等。XAML具有强大的样式和模板系统,支持资源管理,并提供了灵活的数据绑定机制。

XAML 基础概念

什么是XAML

XAML (eXtensible Application Markup Language) 是一种基于XML的标记语言,主要用于描述用户界面。它是WPF、UWP、Xamarin.Forms等.NET框架中声明式UI的基础。

XAML的主要特点

  • 声明式语法
  • 与.NET紧密集成
  • 支持数据绑定
  • 资源系统
  • 样式和模板
  • 可扩展性

XAML 基本语法

命名空间声明

XML
<Window x:Class="App02.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:App02" mc:Ignorable="d" Title="MainWindow" Height="450" Width="800">

常用命名空间说明:

  • xmlns: WPF核心控件命名空间
  • xmlns:x: XAML语言基本功能命名空间
  • xmlns:local: 应用程序本地命名空间
  • xmlns:d: 设计时属性命名空间
  • xmlns:mc: 标记兼容性命名空间
2025-09-30
C#
00

Windows Presentation Foundation (WPF) 是一个用于构建 Windows 应用程序的强大框架。它支持丰富的用户界面和数据绑定,采用了 MVVM(Model-View-ViewModel)设计模式,使得应用程序的结构更加清晰和易于维护。本文将详细解析一个标准 WPF 项目的基础结构,并提供完整的示例代码。

项目结构

一个典型的 WPF 项目结构如下所示:

C#
MyWpfApp/ ├── Properties/ │ └── AssemblyInfo.cs # 程序集信息 ├── References/ # 项目引用 ├── App.xaml # 应用程序入口和全局资源 ├── App.xaml.cs # 应用程序代码隐藏 ├── MainWindow.xaml # 主窗口XAML └── MainWindow.xaml.cs # 主窗口代码隐藏 ├── Assets/ # 资源文件 │ ├── Images/ # 图片资源 │ ├── Icons/ # 图标资源 │ └── Styles/ # 样式资源 ├── Models/ # 数据模型 ├── ViewModels/ # 视图模型 ├── Views/ # 视图 ├── Services/ # 服务层 ├── Helpers/ # 辅助类 ├── Controls/ # 自定义控件 └── Converters/ # 值转换器
2025-09-30
C#
00

假想一个需求,有一个库存数据列表,包括库位,数量,需要在winform窗口下绘制这个列表,将每个库位绘制成一个小的长方形,上面写有库位,数量,当数量小于5时显示红色,5到10之间显示黄色,10以上显示绿色。

基本的步骤和代码示例:

  1. 创建一个新的 WinForms 项目。
  2. 在窗体中添加一个Panel控件。
    • 将 panel 的 AutoScroll 属性设置为 true,以便在库位数据过多时可以滚动查看。
  3. 在窗体的代码部分编写绘图逻辑。

image.png

2025-09-30
C#
00

使用OpenCvSharp在C#中进行模板匹配是一个相对直观的方法,但对于多角度的目标匹配和多个目标匹配,这需要一些额外的步骤和细节处理。在本文中,我们将详细介绍如何使用OpenCvSharp库实现多角度模板匹配,框选匹配目标并计数。

环境准备

在开始之前,请确保你已经安装了以下工具和库:

  1. Visual Studio 或 Rider 等 C# 开发环境
  2. .NET SDK
  3. OpenCvSharp 库

你可以通过 NuGet 包管理器安装 OpenCvSharp:

Bash
Install-Package OpenCvSharp4 Install-Package OpenCvSharp4.runtime.win
2025-09-30
C#
00

笛卡尔坐标系(法语:système de coordonnées cartésiennes,英语:Cartesian coordinate system,也称直角坐标系)在数学中是一种正交坐标系,由法国数学家勒内·笛卡尔引入而得名。二维的直角坐标系是由两条相互垂直、相交于原点数线构成的。在平面内,任何一点的坐标是根据数轴上对应的点的坐标设定的。在平面内,任何一点与坐标的对应关系,类似于数轴上点与坐标的对应关系。

创建WinForms应用程序

  1. 在Visual Studio中创建一个新的Windows Forms应用程序项目。
  2. 打开主窗体(Form1)的代码文件(Form1.cs)。

处理窗体的Paint事件

在Form1类中处理Paint事件,并在该事件中使用GDI+绘图。

绘制坐标