BitWaferMap 1.0.7.1

FastWaferPanel 使用说明

FastWaferPanel 是一个高性能的 WPF 自定义控件,用于显示和交互式操作 Wafer / Die Map
适用于大规模 Die 数据的可视化场景,支持流畅的缩放、平移、选择和颜色管理。


版本说明

1.0.7.0

​ 弃用 Brush 属性颜色改用 BinCode ToBrush() 获取颜色

​ 添加屏幕坐标系 Row 和Col 属性

​ 添加数学坐标系切换属性使用 UseMathCoordinate=true 表示数学坐标系

功能特性

  • 高性能绘制(DrawingVisual)
  • 支持十万级以上 Die 显示
  • 鼠标缩放 / 平移
  • 单选 / 多选 / 框选
  • 右键上下文菜单
  • 选中 Die 颜色修改
  • Hover 提示
  • MVVM 友好(支持绑定)

一、核心概念

1. Die 数据接口(IDieInfo)

所有 Die 数据必须实现 IDieInfo 接口:

public interface IDieInfo
{
    int X { get; set; }
    int Y { get; set; }
    object? Tag { get; set; }
    Brush Brush { get; set; }
}
X / Y:Die 的逻辑坐标

Tag:附加信息(如 Bin、测试结果等)

Brush:Die 显示颜色

2. 默认实现(DieInfo)
csharp
复制代码
public class DieInfo : IDieInfo
{
    public int X { get; set; }
    public int Y { get; set; }
    public object? Tag { get; set; }
    public Brush Brush { get; set; } = DefaultBrush;

    public const double DefaultDieSize = 12;
    public static readonly Brush DefaultBrush = Brushes.LightGray;
}
二、基本使用
1. XAML 中使用
xml
复制代码
<local:FastWaferPanel
    x:Name="WaferPanel"
    Dies="{Binding Dies}"
    DieWidth="12"
    DieHeight="12" />
推荐 将 Dies 绑定到:

csharp
复制代码
ObservableCollection<IDieInfo>
2. ViewModel 示例
csharp
复制代码
public class MainViewModel
{
    public ObservableCollection<IDieInfo> Dies { get; }
        = new ObservableCollection<IDieInfo>();

    public MainViewModel()
    {
        for (int x = 0; x < 100; x++)
        {
            for (int y = 0; y < 100; y++)
            {
                Dies.Add(new DieInfo
                {
                    X = x,
                    Y = y,
                    Tag = $"({x},{y})"
                });
            }
        }
    }
}
三、鼠标交互
操作	功能
鼠标滚轮	缩放
鼠标中键拖动	平移
左键单击	选择单个 Die
Ctrl + 左键	多选
左键拖拽	框选
右键	上下文菜单

四、事件说明
1. SelectionChanged
csharp
复制代码
WaferPanel.SelectionChanged += (s, e) =>
{
    var selected = e.SelectedDies;
};
2. DieClicked
csharp
复制代码
WaferPanel.DieClicked += (s, die) =>
{
    Console.WriteLine($"{die.X}, {die.Y}");
};
3. RequestColorForSelected
csharp
复制代码
WaferPanel.RequestColorForSelected += (s, e) =>
{
    WaferPanel.ApplyColorToSelected(Brushes.Red);
};
4. HoverChanged
csharp
复制代码
WaferPanel.HoverChanged += (s, die) =>
{
    if (die != null)
    {
        // hover die
    }
};
五、常用 API
csharp
复制代码
WaferPanel.AddDie(die);
WaferPanel.AddDies(dies);

WaferPanel.ApplyColorToSelected(Brushes.Green);
WaferPanel.ResetSelectedToDefault();

WaferPanel.FitToWindow(Dies);
WaferPanel.CenterViewOnDies(Dies);
六、可绑定属性
属性	说明
Dies	Die 数据源
SelectedDies	当前选中 Die 集合
SelectedDie	当前选中 Die
DieWidth	Die 宽度
DieHeight	Die 高度
Mode	面板模式

七、适用场景
Wafer Map / Bin Map

芯片测试结果可视化

大规模二维网格展示

半导体 / 工业 WPF 应用

八、注意事项
推荐使用 ObservableCollection<IDieInfo>

Die 使用逻辑坐标 (X, Y)

颜色修改后需刷新渲染

支持大数据量高性能显示

No packages depend on BitWaferMap.

用于显示和操作晶圆图(Wafer Map)

.NET Framework 4.8

  • No dependencies.

Version Downloads Last updated
1.0.7.3 3 01/06/2026
1.0.7.1 3 12/31/2025
1.0.7 1 12/31/2025
1.0.6.7 11 12/22/2025
1.0.6.4 10 12/22/2025
1.0.6.3 11 12/18/2025
1.0.6.2 3 12/18/2025
1.0.6.1 3 12/18/2025
1.0.6 2 12/18/2025
1.0.5 3 12/18/2025