Visual クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
ヒット テスト、座標変換、境界ボックスの計算など、WPFでのレンダリングのサポートを提供します。
public ref class Visual abstract : System::Windows::DependencyObject
public abstract class Visual : System.Windows.DependencyObject
type Visual = class
inherit DependencyObject
interface DUCE.IResource
type Visual = class
inherit DependencyObject
Public MustInherit Class Visual
Inherits DependencyObject
- 継承
- 派生
注釈
Visual クラスは、すべての FrameworkElement オブジェクトの派生元となる基本的な抽象化です。 また、WPF で新しいコントロールを記述するためのエントリ ポイントとしても機能し、多くの点で Win32 アプリケーション モデルのウィンドウ ハンドル (HWND) と同等と考えることができます。
Visual オブジェクトは主要な WPF オブジェクトであり、その主な役割はレンダリングのサポートを提供することです。 ButtonやTextBoxなどのユーザー インターフェイス コントロールは、Visual クラスから派生し、Visual定義されたプロパティを使用してレンダリング データを保持します。 Visual オブジェクトは、次のサポートを提供します。
出力表示: ビジュアルの永続化されたシリアル化された描画コンテンツをレンダリングします。
変換: ビジュアルに対して変換を実行します。
クリッピング: ビジュアルのクリッピング領域をサポートします。
ヒット テスト: 指定した座標 (ポイント) またはジオメトリがビジュアルの境界内に含まれているかどうかを判断します。
境界ボックスの計算: ビジュアルの四角形領域を決定します。
アーキテクチャ上、 Visual オブジェクトには、次のようなレンダリングにすぐに関連しない他のアプリケーション開発要件/WPF 機能のサポートは含まれていません。
イベント処理
レイアウト
スタイル
データ バインディング
Globalization
Visual は、さらにクラスを派生できるパブリック抽象クラスとして提供されます。 次の図は、WPF アーキテクチャで定義されている既存のビジュアル オブジェクトの階層を示しています。
ビジュアル クラス階層
場合によっては、 Visual で保護として定義されているメンバーは、派生 UIElement クラス内の類似した名前を持つ、より簡単にアクセスできるメンバーとして公開されます。
詳細については、「WPF グラフィックス レンダリングの概要」を参照してください。
Visualには、レベルの数に制限があります。 以前のバージョンの .NET Framework では、この最大深度は 255 でした。 この制限は、ビジュアル ツリーに多くのレベルがある一部のレイアウトでは不十分です。
.NET Framework 4 では、 Visual の最大深度は 2047 です。これにより、より深いビジュアル ツリーが可能になります。 ほとんどのアプリケーションでは、多くのレベルを走査するのに十分なスタック領域がないため、結果はレイアウト中に StackOverflowException になります。 既定のスタック サイズの場合、この例外は通常、ツリーの深さが約 800 で、入れ子になった TreeViewItem オブジェクトの約 190 に対応する場合にスローされます。
この例外がアプリケーションによってスローされ、より深いビジュアル ツリーが必要な場合は、アプリケーションのスタック サイズを増やすことができます。 コンパイル時に /STACK オプションを使用するか、EDITBIN ユーティリティを使用して、スタックのサイズを増やすことができます。 スタック サイズを大きくすると、アプリケーションのパフォーマンスに影響する可能性があります。 詳細については、「 スタック割り当て と EDITBIN オプション」を参照してください。
コンストラクター
| 名前 | 説明 |
|---|---|
| Visual() |
Visual クラスから派生したオブジェクトの基本初期化を提供します。 |