0

実行時に、WPF コントロールを作成しています。任意の WPF コントロールにすることができます。

この WPF Control が IS A CONTAINER CONTROLかどうかを調べたい。つまり、このコントロールに別のコントロールを埋め込む/含めることができます。

上記を達成できる属性はありますか?たとえば、ラベル、パネル、groupBox にはボタンなどの他のコントロールを含めることができますが、textBOX はできません。

4

2 に答える 2

1

WPF には、コントロールの拡張元となる基本クラスがいくつかあります。

  • ContentControl: ほとんどのコントロールは、いくつかのタイプの単一コンテンツを格納できるため、これから拡張されます。
  • ItemsControl: これらは、コンテンツのコレクションを含むコレクションコントロールのタイプです。
  • Panel: これらは、レイアウト用の特別なコントロールです。ArrangeOverrideこれらは、およびメソッドを実装して、MeasureOverrideその中の子コントロールを測定/配置します。それらのほとんどは、最適な使用のために添付プロパティも公開します。

そうは言っても、通常、is演算子を使用して、コントロールが意図したものから継承されているかどうかを確認する必要があります。具体的または一般的になることができますが、通常はできるだけ一般的になりたいと考えています。「コンテナ」の意味がわかりません。そのため、他のコントロールを含めることができる 3 つの典型的な基本コントロールを挙げました。例えば:

if (myControl is ContentControl)
{
    // Do something here.
}
于 2012-06-24T15:53:27.877 に答える
0

ここここで言及されているすべてのコントロールは、TabControl継承を除いてPanel

したがって、次のようなことができます:

if (myControl is Panel || myControl is TabControl)
{
    // Then it's a container
}
于 2012-06-24T14:45:10.327 に答える