我有这样的 XAML
<ml:Visualizer Smooth="True" />
最近我们添加了不同类型的预处理,例如平滑、模糊、锐化等。现在我们这样写
<ml:Visualizer>
<ml:Visualizer.Effect>
<thirdParty:Smoothing/>
</ml:Visualizer.Effect>
</ml:Visualizer>
是否可以将属性分配为 XML 属性,但可能无需编写自定义类型转换器或 MarkupExtensions。目标是有一个用于分配属性的简短语法,但是实际效果可以稍后由第三方作为 DLL 提供,我们需要在 XAML 中引用它们。
<ml:Visualizer Effect="{thirdParty:Smoothing}" /> <!-- BUT WITH NO CUSTOM MARKUP EXTENSION -->
如果确实有可能,那么下一个级别将是设置效果的属性(即使只有一个默认构造函数可用)。
<ml:Visualizer Effect="{thirdParty:Smoothing Factor=5}" /> <!-- BUT WITH NO CUSTOM MARKUP EXTENSION -->
我知道它看起来像一个标记扩展,但是为每个引入的效果编写单独的标记扩展太乏味了。看起来太基本了,没有解决方案:)
有什么建议么?
提前致谢!