C# 如何成功继承具有设计器功能的TypeConverter

C# 如何成功继承具有设计器功能的TypeConverter,c#,.net,visual-studio-2010,designer,typeconverter,C#,.net,Visual Studio 2010,Designer,Typeconverter,我用一些属性制作了一个类标尺。此类包含显示GDI+绘图量规周围完整比例所需的信息 我有一个Gauge控件,它使用GaugeDrawer渲染它的帧 GaugeDrawer是可以在设计时像普通组件一样使用的组件 该帧可以由一个圆形的绘图机(制造一个奇特的汽车转速计)或一个温度计绘图机渲染 无论如何,两者都使用GaugeScale,它有一些复杂的属性(GaugeScaleInterval[]和float),我想知道是否有方法允许Visual Studio的设计者实例化和显示这些属性。这将使这种控制方式

我用一些属性制作了一个类标尺。此类包含显示GDI+绘图量规周围完整比例所需的信息

我有一个Gauge控件,它使用GaugeDrawer渲染它的帧

GaugeDrawer是可以在设计时像普通组件一样使用的组件

该帧可以由一个圆形的绘图机(制造一个奇特的汽车转速计)或一个温度计绘图机渲染

无论如何,两者都使用GaugeScale,它有一些复杂的属性(GaugeScaleInterval[]和float),我想知道是否有方法允许Visual Studio的设计者实例化和显示这些属性。这将使这种控制方式的创建对用户来说不那么复杂

所以我想知道我如何教设计师如何使用抽屉组件。如果TypeConverter是解决方案。如何使它们对VisualStudio的设计师有用

编辑:


所有这些都是针对WinForm环境的。

您还没有说过,但我猜您正在使用WinForms(system.windows.forms)

在本主题中,TypeConverter通常将文本/字符串表示转换为可指定给属性的具体对象,或从中转换

请参阅本文-除了显示int和enum属性外,还有一个很好的入门教程,介绍如何编写自定义类
Hand
以及
HandConverter
,以及如何在表单设计器的属性窗口中公开usch类型的属性

请注意,TypeConverter可以在属性级别和ad类级别注册。类级别最适合于具有全局通用转换器的自定义数字/颜色等简单结构。更复杂的情况可能会在属性级别注册不同的类型转换器,因此同一类型“手”的三个属性可能会使用不同的转换逻辑

那是给类型转换器的。这不是唯一的选择。“属性”窗口比这更健壮。例如,您肯定见过颜色选择器。除了类型转换器之外,你还可以注册编辑器,IIRC,甚至整个设计师。首先,请参见此处:

旁注:

虽然WinForms在WPF/XAML爆炸后似乎有点“死亡”,但旧框架及其设计时功能有时会让人惊讶于您能实现多少。例如,XAML宣传了一个名为“附加属性”的新特性,在这里也很容易实现它们。即使是核心本地化组件也使用该功能:)然而,这可能是一个非常不可原谅的环境,而且很容易使VisualStudio不稳定。再加上一直糟糕的.Designer.cs处理,表单代码的某些部分有时可能会意外消失。在使用编辑器之前,请先备份。类型转换器更安全

这听起来不像是基于WPF/XAML的设计。是WinForms吗?@Quetzalcatl是的,是WinForm,猜对了。我会更新我的问题哈哈,当你挠痒痒的时候,设计师确实很不稳定:P。谢谢你的回答,我会看看这个。