ユーザー コントロール プロパティ デザイナー プロパティ
-
08-06-2019 - |
質問
Windows Mobile 上の C# UserControl の場合 (ただし、完全な Windows について知っている場合は回答してください...機能する可能性があります)、コントロールのパブリック プロパティの 1 つについて、デザイナー プロパティ ウィンドウに表示される内容を変更するにはどうすればよいですか。例えば:
private Color blah = Color.Black;
public Color Blah
{
get { return this.blah; }
set { this.blah = value; }
}
これはコントロールに表示されますが、「その他」カテゴリにあり、説明もデフォルト値もありません。次のような「DesignerCategory」のような System.ComponentModel の設定を使用してみました。
[DesignerCategory("Custom")]
しかし、これはクラス宣言にのみ有効だと言われています...以前に使用した System.ComponentModel アイテムであると断言できたかもしれません...
アップデート:
@ジョンはこう言いました:
DesignerCatogyは、クラスがフォーム、コンポーネントなどであるかどうかを言うために使用されます。
これを試して:
[カテゴリ("カスタム")]
これらを取得するために使用する必要がある特定の名前空間はありますか?これらを正確に試してみましたが、コンパイラーはそれらを認識しませんでした。
.NETCF では、System.ComponentModel から利用できるものは次のとおりです。
DataObject,
DataObjectMethod,
DefaultValue,
DesignerCategory,
DesignTimeVisible,
EditorBrowsable
叫び声を上げない唯一のものは EditorBrowsable です
解決
これは役に立ちますか?私は CF 開発には興味がありませんが、これを有効にするには XML メタデータを追加する必要があるようです。
興味深い読み物..デバイス上で設計を行わないため、多くの設計時のサポートが CF から削除されたようです。それは私にはちょっと奇妙に思えます..ハンドヘルドを開発装置として使用するなんて想像もできません!
半分ほど下にスクロールすると、良い情報が表示されます ;)
他のヒント
DesignerCatogy は、クラスがフォーム、コンポーネントなどであるかどうかを判断するために使用されます。
フルウィンドウの場合、必要な属性は次のとおりです。
[System.ComponentModel.Category("カスタム")]
説明には [System.ComponentModel.Description("This is the description")] を使用できます。
両方を一緒に使用する
[System.ComponentModel.Category("カスタム"),System.ComponentModel.Description("これは説明です")]
ただし、これは system.dll の一部であり、Windows Mobile では異なる場合があります。
この記事は、誰かがデバイス上でデザインを行っていることを示唆するものではありません。ただし、Compact Framework プロジェクトを作成する場合は、デザイン時のレンダリングを処理するために Compact Framework (デスクトップ PC 用) が使用されます。それについて考えれば、それはあなたが期待していることです。同じ (またはほぼ同じ) フレームワークを使用して、設計時に PC 上でレンダリングを実行し、実行時にデバイス上でレンダリングを実行します。問題は、設計時の属性がコンパクトなフレームワークに追加されていないことです (サイズを削減するためだと思います)。