2

いくつかのプロパティを使用して作成したクラスGaugeScaleがあります。このクラスには、GDI+で描画されたゲージの周囲に完全なスケールを表示するために必要な情報が含まれています。

GaugeDrawerを使用してフレームをレンダリングするGaugeコントロールがあります。

GaugeDrawerは、通常のコンポーネントのようにデザイナ時に使用できるコンポーネントです。

フレームは、CircularGaugeDrawer(高級車のRPMゲージを作成)またはThermometerDrawerのいずれかでレンダリングできます...

とにかく、どちらもいくつかの複雑なプロパティ(GaugeScaleInterval []とfloat)を持つGaugeScaleを使用しており、VisualStudioのデザイナーがそれらのプロパティをインスタンス化して表示できるようにする方法があるかどうかを知りたいと思います。これにより、このコントロールの作成がユーザーにとってそれほど複雑になりません。

だから私はどうすればドロワーコンポーネントの使い方をデザイナーに教えることができるのだろうかと思っています。TypeConverterが解決策である場合。VisualStudioのデザイナーにとってどのように役立つようにできますか

編集:

このすべてがWinForm環境を対象としています。

4

1 に答える 1

2

まだ言っていませんが、WinForms(system.windows.forms)を使用していると思います。

この主題では、TypeConvertersは通常、テキスト/文字列表現を、プロパティに割り当てることができる具体的なオブジェクトとの間で変換します。

記事http://msdn.microsoft.com/en-us/magazine/cc164145.aspxHandを参照してください-intおよびenumプロパティを表示する以外に、カスタムクラスを作成するHandConverter方法と公開する方法についての優れた入門チュートリアルもあります。フォームデザイナの[プロパティ]ウィンドウにあるuschタイプのプロパティ。

TypeConverterは、プロパティレベルとクラスレベルの両方で登録できることに注意してください。クラスレベルは、グローバルにユニバーサルなコンバーターを持つカスタム番号/色などの単純な構造に最適です。より複雑なケースでは、プロパティレベルで異なるタイプのコンバータを登録する場合があるため、同じタイプの「Hand」の3つのプロパティが異なる変換ロジックを使用する場合があります。

TypeConverters用です。これが唯一の選択肢ではありません。[プロパティ]ウィンドウは、それよりも堅牢です。たとえば、あなたは確かにカラーピッカーを見たことがあります。TypeConvertersの他に、編集者やIIRC、さらにはデザイナー全体を登録することもできます。初心者はこちらをご覧ください:http://msdn.microsoft.com/en-us/library/ms171840.aspx

補足:
WPF / XAMLが爆発した後、WinFormsは少し「死んだ」ように見えますが、その古いフレームワークとその設計時の機能は、達成できる量に驚くことがあります。たとえば、XAMLは「添付プロパティ」と呼ばれる新機能をアドバタイズしました。ここでもそれらを実装するのは非常に簡単です。コアローカリゼーションコンポーネントでさえその機能を使用します:)ただし、これは非常に容赦のない環境である可能性があり、VisualStudioを不安定にするのは簡単です。それに加えて、常にくだらない.Designer.cs処理を行うと、フォームのコードの一部が誤って消えてしまうことがあります。編集者と遊ぶ前にバックアップをとってください。TypeConvertersははるかに安全です!

于 2012-08-23T15:46:43.950 に答える