我有一个GaugeScale类,我用一些属性制作。该类包含在GDI +绘制的Gauge周围显示完整Scale的必要信息。
我有一个Gauge控件,它使用GaugeDrawer渲染它的帧。
GaugeDrawer是可以在Designer时间使用的组件,如常规组件
框架可以通过CircularGaugeDrawer(制作精美的汽车RPM规格)或ThermometerDrawer来渲染......
无论如何,两者都使用具有一些复杂属性的GaugeScale(GaugeScaleInterval []和float),我想知道是否有一种方法允许Visual Studio的Designer实例化并显示这些属性。这将使用户控制方式的创建变得不那么复杂。
所以我想知道如何教会设计师如何使用抽屉组件。如果TypeConverter是解决方案。如何使它们对Visual Studio的设计器有用
编辑:
这一切都以WinForm环境为目标。
答案 0 :(得分:2)
你没有说过,但我猜你使用的是WinForms(system.windows.forms)。
在本主题中,TypeConverters通常将文本/字符串表示转换为可以分配给属性的具体对象/从中转换。
请参阅文章http://msdn.microsoft.com/en-us/magazine/cc164145.aspx - 除了显示int和enum属性外,还有一个很好的入门教程,如何编写自定义类Hand
以及HandConverter
以及如何公开在Forms Designer的“属性”窗口中输入usch属性。
请注意,TypeConverter既可以在属性级别注册,也可以在类级别注册。类级别最适用于具有全局通用转换器的自定义数字/颜色/等简单结构。更复杂的情况可能会在属性级别注册不同类型的转换器,因此相同类型“Hand”的三个属性可能使用不同的转换逻辑。
那是TypeConverters的。这不是唯一的选择。 “属性”窗口比仅仅更强大。例如,您肯定已经看过颜色选择器。除了TypeConverters,您还可以注册编辑和IIRC,甚至整个设计师。在此处查看首发:http://msdn.microsoft.com/en-us/library/ms171840.aspx
旁注:
虽然在WPF / XAML爆炸后,WinForms似乎有点“死”,但是旧框架及其设计时功能有时会让您惊讶于您可以实现多少。例如 - XAML宣传了一项名为“附加属性”的新功能 - 在这里也很容易实现它们。即使核心本地化组件也使用该功能:)但是,这可能是一个非常无情的环境,并且很容易使VisualStudio不稳定。除此之外,所有时间糟糕的.Designer.cs处理,以及表单代码的某些部分有时可能会意外地消失。在使用编辑器之前请备份。 TypeConverters更安全!