用途:在 XAML 中把值转换器(IValueConverter)与 MarkupExtension 结合,使转换器可直接在绑定里内联使用,无需在 Resources 中声明和通过 StaticResource 引用,同时内置惰性单例,减少样板代码。
主要能力:提供 ConverterMarkupExtension<T> 与 MultiConverterMarkupExtension<T> 两个基类(.NET 7+),分别对应 IValueConverter 与 IMultiValueConverter;通过 Lazy<T> 实现单例;支持 ConverterParameter 做变体(如 Invert)。
使用方式:转换器继承对应基类并标记为 sealed,重写 Convert(可选 ConvertBack),例如 BoolToVisibilityConverter、NullToVisibilityConverter、StringFormatConverter、FullNameConverter(多值)。XAML 中直接写 Converter={local:BoolToVisibilityConverter},多值用 MultiBinding。建议用 GlobalUsings.cs 引入 System、System.Globalization、System.Windows、System.Windows.Data、System.Windows.Markup。
限制与注意:资料未提供具体价格、平台支持范围以外的信息;不适用于非 XAML 场景;需目标框架为 .NET 7+;无效输入可返回 DependencyProperty.UnsetValue;尽量用 ConverterParameter 代替多个转换器。
分类:该内容属于编程与开发 / XAML 项目开发。