Files
Store.Management/.agents/skills/max-common-wpf/references/features.md
T
2026-10-27 19:01:56 +08:00

4.8 KiB
Raw Blame History

WPF 功能索引

参考版本:MAX.Common.WPF 1.4.23。以下均以 MAX.Common.WPF 为根命名空间。只选任务需要的能力,常用成员见同目录 api.md。

需求 类型 / 命名空间 使用要点
数值输入 Controls.NumberBox Value 为 double;Minimum、Maximum、Increment、DecimalPlaces、ValueFormat、ShowUpDownButton;模板资源在 Resources/Generic.xaml
标题与条件内容 Controls.TitleContent、BoolContent TitleContent 有 Placement 等布局属性;BoolContent 用 Bool、TrueContent、FalseContent
间距布局 Controls.SpacingStackPanel、SpacingUniformGrid、AutoColumnsUniformGrid 区分面板间距与子元素 Margin,按声明配置
图标与链接 Controls.FontIcon、HyperlinkEx FontIcon 继承 TextBlock,具体字体和字形必须与项目资源一致
按钮与弹出层 Controls.MenuButton、ButtonPopup、CustomPopup、ClippingBorder 按实际属性处理关闭、焦点和裁切,不猜测通用 Popup 行为
托盘图标 Controls.NotifyIcon;Enums.NotifyIconInfoType 涉及 Win32 资源与应用生命周期,检查实际清理 API
DataGrid Controls.DataGridExtended;Extensions.DataGridExtension;Helpers.DataGridHelper 先区分扩展控件、附加属性和普通 helper
标准控件附加行为 Extensions.TextBoxExtension、ButtonExtension、ListBoxExtension、TreeViewExtension、SelectorExtension、ScrollViewerExtension、ProgressBarExtension、ToolTipExtension 搜索对应 Get/Set 方法确认附加属性名称、默认值与事件机制
通用控件行为 Extensions.ControlExtension(Context / DragDrop / Focus / Keyboard / Layout / Loaded / Mouse 分文件)、WindowExtension、GridLayoutHelper 使用实际 API 名称,不把文件名当作附加属性名
上下文菜单和绑定代理 Extensions.ContextMenuExtension、ContextMenuListener、BindingProxy / BooleanProxy、CommandProxy;Models.ContextMenuModel;ViewModels.ContextMenuViewModel Popup/ContextMenu 不在普通可视树,核对 DataContext 来源
枚举选择与显示 MarkupExtensions.EnumBindingMarkupExtension;Extensions.EnumBindingExtension;Converters.EnumDisplayConverter;Utilities.EnumDisplayManagerWPF ItemsSource 返回包装对象;旧 EnumBindingComboBox 已弃用
布尔、空值与可见性 Converters.Boolean2VisibilityConverter、Boolean2VisibilityReConverter、Object2VisibilityConverter、String2VisibilityConverter、IListToVisibilityConverter、BooleanArr2VisibilityConverter 等 各 Converter 对 null、空串、集合的定义不同,核对实现;多值转换器需 MultiBinding
格式、颜色、尺寸转换 Converters.FileSizeDisplayConverter、DateTimeFormatConverter、FormatConverter、StringJoinConverter、ColorToBrushConverter、ContrastBrushConverter、ThicknessSplitConverter、CornerRadiusSplitConverter 等 按 IValueConverter / IMultiValueConverter 及 ConvertBack 支持情况选择绑定模式
视图生命周期 ViewModels.ViewModelBase;Extensions.ViewModelExtension LoadedOnce / Loaded / Unloaded;关联视图并非 IoC 自动创建 ViewModel
UI 调度与防抖 Helpers.DispatcherHelper;Utilities.DebounceDispatcher、AsyncDebouncer UI Dispatcher 与后台 Task.Run 的回调线程不同
定时控制 Utilities.Timers.DispatcherTimerController、SystemTimerController、ThreadingTimerController 依据 UI 访问要求选类型,并核对停止与释放方法
虚拟化列表和换行 Virtualization.VirtualizingItemsControl、VirtualizingWrapPanel、VirtualizingWrapPanelWithItemExpansion、IItemSizeProvider 保持有限视口与滚动配置;不同尺寸和展开项需单独验证
窗口、快捷键与系统 Helpers.WindowHelper、WindowHotKeyActionsHelper、KeyboardHelper、SystemHelper、SecurityHelper、FileActionHelper;Utilities.WindowActivator、JobObject Windows 特定能力,按 HWND/资源生命周期使用
视觉树、颜色、图标 Helpers.ViewHelper、ViewDebugHelper、ColorHelper、IconHelper、Vector2Helper 与普通 MAX.Common 数据类型和工具区分
属性监听与筛选 Utilities.PropertyChangeNotifier、AttachedCommandRegister;Models.CollectionSearchFilter、ControlTokenManager、AppDiagnosticsModel 阅读订阅、解除和集合更新约定

资源和版本核对

同一 MAX.WPF XML 命名空间映射了 Controls、Converters、Extensions、MarkupExtensions、Virtualization 等 CLR 命名空间;C# using 仍需写真实 CLR 命名空间。资源字典中显式定义了 NumberBox、TitleContent、BoolContent 样式以及多个转换器,不能推断其他控件具有同样的默认样式加载机制。

需要索引未列的成员时,搜索已安装包 XML 文档或反射公共成员;不要根据相似 UI 库推测 API。