Visual クラス


WPF でヒット テスト、座標変換、境界ボックス計算などの描画をサポートします。Provides rendering support in WPF, which includes hit testing, coordinate transformation, and bounding box calculations.

public ref class Visual abstract : System::Windows::DependencyObject
public abstract class Visual : System.Windows.DependencyObject
type Visual = class
    inherit DependencyObject
type Visual = class
    inherit DependencyObject
    interface DUCE.IResource
Public MustInherit Class Visual
Inherits DependencyObject


Visual クラスは、すべての FrameworkElement オブジェクトの派生元となる基本抽象クラスです。The Visual class is the basic abstraction from which every FrameworkElement object derives. また、WPF で新しいコントロールを作成するためのエントリポイントとしても機能します。また、多くの点で、Win32 アプリケーションモデルのウィンドウハンドル (HWND) と同等のものと考えることができます。It also serves as the entry point for writing new controls in WPF, and in many ways can be thought of as an equivalent of a window handle (HWND) in the Win32 application model.

Visualオブジェクトは、レンダリングをサポートする主要な役割を持つ WPF のコアオブジェクトです。The Visual object is a core WPF object, whose primary role is to provide rendering support. やなどのユーザーインターフェイスコントロールは、 Button TextBox クラスから派生 Visual し、定義されたプロパティを使用して Visual レンダリングデータを保持します。User interface controls, such as Button and TextBox, derive from the Visual class, and use the Visual defined properties for persisting their rendering data. オブジェクトでは Visual 、次の機能がサポートされています。The Visual object provides support for the following:

  • 出力表示: ビジュアルの、シリアル化された永続的な描画内容をレンダリングします。Output display: Rendering the persisted, serialized drawing content of a visual.

  • 変換: ビジュアルで変換を実行します。Transformations: Performing transformations on a visual.

  • クリッピング: ビジュアルのクリッピング領域をサポートします。Clipping: Providing clipping region support for a visual.

  • ヒットテスト: 指定された座標 (ポイント) またはジオメトリがビジュアルの境界内に含まれているかどうかを確認します。Hit testing: Determining whether a specified coordinate (point) or geometry is contained within the bounds of a visual.

  • 境界ボックスの計算: ビジュアルの四角形領域を決定します。Bounding box calculations: Determining the bounding rectangle of a visual.

アーキテクチャ上、オブジェクトには、 Visual 次のような、レンダリングにすぐに関連しない他のアプリケーション開発要件/WPF 機能のサポートは含まれていません。Architecturally, the Visual object does not include support for other application development requirements / WPF features that are not immediately related to its rendering, such as the following:

  • イベント処理Event handling

  • レイアウトLayout

  • スタイルStyles

  • データ バインディングData binding

  • グローバリゼーションGlobalization

Visual は、さらにクラスを派生させることができるパブリック抽象クラスとして提供されます。Visual is provided as a public abstract class from which further classes can be derived. 次の図は、WPF アーキテクチャで定義されている既存のビジュアルオブジェクトの階層を示しています。The following illustration shows the hierarchy of the existing visual objects that are defined in the WPF architecture.

Visual オブジェクトから派生したクラスのダイアグラムDiagram of classes derived from the Visual object
Visual クラスの階層構造Visual class hierarchy

場合によっては、protected として定義されているメンバー Visual は、派生クラスに類似した名前を持つ、より簡単にアクセスできるメンバーとして公開され UIElement ます。In some cases, members that are defined as protected in Visual are exposed as more readily accessible members with similar names in the derived UIElement class.

詳しくは、「WPF グラフィックス レンダリングの概要」をご覧ください。For more information, see WPF Graphics Rendering Overview.

には、 Visual 制限された数のレベルがあります。A Visual has a limited number of levels. 以前のバージョンの .NET Framework では、この最大深度は255でした。In previous versions of the .NET Framework, this maximum depth was 255. ビジュアルツリーに多数のレベルがあるレイアウトでは、この制限は不十分です。This limit is inadequate for some layouts that have many levels in the visual tree.

.NET Framework 4 では、の最大の深さは Visual 2047 であり、これにより、より深いビジュアルツリーが可能になります。In .NET Framework 4, the maximum depth of a Visual is 2047, which enables much deeper visual trees. ほとんどのアプリケーションでは、多数のレベルを走査するのに十分なスタック領域がないため、結果は StackOverflowException レイアウト中になります。In most applications, there is not enough stack space to traverse so many levels, and the result is a StackOverflowException during layout. 既定のスタックサイズの場合、この例外は通常、ツリーの深さが約800の場合にスローされます。これは、入れ子になったオブジェクトの約190に対応 TreeViewItem します。For the default stack size, this exception is usually thrown when the tree depth is approximately 800, which corresponds to about 190 nested TreeViewItem objects.

この例外がアプリケーションによってスローされ、より深い視覚ツリーが必要な場合は、アプリケーションのスタックサイズを増やすことができます。If this exception is thrown by your application and you need to have a deeper visual tree, you can increase the application's stack size. スタックのサイズを増やすには、コンパイル時に/STACK オプションを使用するか、EDITBIN ユーティリティを使用します。You can increase the size of the stack by using the /STACK option at compile time or by using the EDITBIN utility. スタックサイズを大きくすると、アプリケーションのパフォーマンスに影響を与える可能性があります。Increasing the stack size may affect your application's performance. 詳細については、「 Stack の割り当て 」および「 EDITBIN オプション」を参照してください。For more information, see Stack Allocations and EDITBIN Options.



Visual クラスから派生したオブジェクトの基本の初期化を行います。Provides the base initialization for objects derived from the Visual class.



DependencyObjectTypeこのインスタンスの CLR 型をラップするを取得します。Gets the DependencyObjectType that wraps the CLR type of this instance.

(継承元 DependencyObject)

この Dispatcher が関連付けられている DispatcherObject を取得します。Gets the Dispatcher this DispatcherObject is associated with.

(継承元 DispatcherObject)

このインスタンスが現在シールされている (読み取り専用である) かどうかを示す値を取得します。Gets a value that indicates whether this instance is currently sealed (read-only).

(継承元 DependencyObject)

BitmapEffectVisual 値を取得または設定します。Gets or sets the BitmapEffect value for the Visual.


BitmapEffectInputVisual 値を取得または設定します。Gets or sets the BitmapEffectInput value for the Visual.


BitmapScalingModeVisual を取得または設定します。Gets or sets the BitmapScalingMode for the Visual.


Visual のキャッシュされた表現を取得または設定します。Gets or sets a cached representation of the Visual.


Visual の子要素の数を取得します。Gets the number of child elements for the Visual.


ClearTypeHint での ClearType のレンダリング方法を決定する Visual を取得または設定します。Gets or sets the ClearTypeHint that determines how ClearType is rendered in the Visual.


Visual 値としての Geometry のクリップ領域を取得または設定します。Gets or sets the clip region of the Visual as a Geometry value.


Visual のエッジ モードを EdgeMode 値として取得または設定します。Gets or sets the edge mode of the Visual as an EdgeMode value.


Visual に適用するビットマップ効果を取得または設定します。Gets or sets the bitmap effect to apply to the Visual.


ビジュアル オブジェクトのオフセット値を取得または設定します。Gets or sets the offset value of the visual object.


Visual の不透明度を取得または設定します。Gets or sets the opacity of the Visual.


Brush の不透明マスクを表す Visual 値を取得または設定します。Gets or sets the Brush value that represents the opacity mask of the Visual.


ビジュアル オブジェクトのビジュアル ツリーの親を取得します。Gets the visual tree parent of the visual object.


Visual のクリップ対象のスクロール可能な領域を取得または設定します。Gets or sets a clipped scrollable area for the Visual.


VisualTextHintingMode を取得または設定します。Gets or sets the TextHintingMode of the Visual.


VisualTextRenderingMode を取得または設定します。Gets or sets the TextRenderingMode of the Visual.


TransformVisual 値を取得または設定します。Gets or sets the Transform value for the Visual.


X 座標 (垂直) ガイドライン コレクションを取得または設定します。Gets or sets the x-coordinate (vertical) guideline collection.


Y 座標 (水平) ガイドライン コレクションを取得または設定します。Gets or sets the y-coordinate (horizontal) guideline collection.



2 つのビジュアル間の親子リレーションシップを定義します。Defines the parent-child relationship between two visuals.


呼び出し元のスレッドがこの DispatcherObject にアクセスできるかどうかを確認します。Determines whether the calling thread has access to this DispatcherObject.

(継承元 DispatcherObject)

プロパティのローカル値をクリアします。Clears the local value of a property. クリアするプロパティは DependencyProperty 識別子で指定されます。The property to be cleared is specified by a DependencyProperty identifier.

(継承元 DependencyObject)

読み取り専用プロパティのローカル値を消去します。Clears the local value of a read-only property. 消去するプロパティは、DependencyPropertyKey で指定します。The property to be cleared is specified by a DependencyPropertyKey.

(継承元 DependencyObject)

指定した依存関係プロパティの値を強制します。Coerces the value of the specified dependency property. これは、呼び出し元の DependencyObject の依存関係プロパティのプロパティ メタデータで指定されている CoerceValueCallback 関数を呼び出すことによって実現されます。This is accomplished by invoking any CoerceValueCallback function specified in property metadata for the dependency property as it exists on the calling DependencyObject.

(継承元 DependencyObject)

指定した DependencyObject が現在の DependencyObject と等しいかどうかを判断します。Determines whether a provided DependencyObject is equivalent to the current DependencyObject.

(継承元 DependencyObject)

2 つのビジュアル オブジェクトの共通の先祖を返します。Returns the common ancestor of two visual objects.


この DependencyObject のハッシュ コードを取得します。Gets a hash code for this DependencyObject.

(継承元 DependencyObject)

どの依存関係プロパティがこの DependencyObject 上にローカルに設定された値を持つかを確認するための、専用の列挙子を作成します。Creates a specialized enumerator for determining which dependency properties have locally set values on this DependencyObject.

(継承元 DependencyObject)

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(継承元 Object)

DependencyObject のこのインスタンスにある依存関係プロパティの現在の有効値を返します。Returns the current effective value of a dependency property on this instance of a DependencyObject.

(継承元 DependencyObject)

Visual 内の指定した VisualCollection を返します。Returns the specified Visual in the parent VisualCollection.


ジオメトリ値がビジュアル オブジェクトの境界内にあるかどうかを判断します。Determines whether a geometry value is within the bounds of the visual object.


点の座標値がビジュアル オブジェクトの境界内にあるかどうかを判断します。Determines whether a point coordinate value is within the bounds of the visual object.


指定した依存関係プロパティの有効値を再評価します。Re-evaluates the effective value for the specified dependency property.

(継承元 DependencyObject)

ビジュアル オブジェクトが、指定した子孫ビジュアル オブジェクトの先祖かどうかを判定します。Determines whether the visual object is an ancestor of the descendant visual object.


ビジュアル オブジェクトが、指定した先祖ビジュアル オブジェクトの子孫かどうかを判定します。Determines whether the visual object is a descendant of the ancestor visual object.


現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)
OnDpiChanged(DpiScale, DpiScale)

このビューが表示される DPI が変更するときに呼び出されます。Called when the DPI at which this View is rendered changes.


この DependencyObject の依存関係プロパティの有効値が更新された場合に必ず呼び出されます。Invoked whenever the effective value of any dependency property on this DependencyObject has been updated. 変更された特定の依存関係プロパティは、イベント データで報告されます。The specific dependency property that changed is reported in the event data.

(継承元 DependencyObject)
OnVisualChildrenChanged(DependencyObject, DependencyObject)

ビジュアル オブジェクトの VisualCollection が変更されると呼び出されます。Called when the VisualCollection of the visual object is modified.


ビジュアル オブジェクトの親が変更されると呼び出されます。Called when the parent of the visual object is changed.


画面座標における Point を、Point の現在の座標系を表す Visual に変換します。Converts a Point in screen coordinates into a Point that represents the current coordinate system of the Visual.


Point の現在の座標系を表す Visual を、画面座標における Point に変換します。Converts a Point that represents the current coordinate system of the Visual into a Point in screen coordinates.


ローカルの依存関係プロパティの値を返します (存在する場合)。Returns the local value of a dependency property, if it exists.

(継承元 DependencyObject)

2 つのビジュアル間の親子リレーションシップを削除します。Removes the parent-child relationship between two visuals.

SetCurrentValue(DependencyProperty, Object)

依存関係プロパティ値のソースを変更せずにその値を設定します。Sets the value of a dependency property without changing its value source.

(継承元 DependencyObject)
SetValue(DependencyProperty, Object)

依存関係プロパティ識別子を指定して、該当する依存関係プロパティのローカル値を設定します。Sets the local value of a dependency property, specified by its dependency property identifier.

(継承元 DependencyObject)
SetValue(DependencyPropertyKey, Object)

依存関係プロパティの DependencyPropertyKey 識別子で指定した読み取り専用の依存関係プロパティのローカル値を設定します。Sets the local value of a read-only dependency property, specified by the DependencyPropertyKey identifier of the dependency property.

(継承元 DependencyObject)

シリアル化プロセスが、指定された依存関係プロパティの値をシリアル化する必要があるかどうかを示す値を返します。Returns a value that indicates whether serialization processes should serialize the value for the provided dependency property.

(継承元 DependencyObject)

現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(継承元 Object)

Visual からビジュアル オブジェクトの指定した Visual の先祖に座標を変換するために使用できる変換を返します。Returns a transform that can be used to transform coordinates from the Visual to the specified Visual ancestor of the visual object.


Visual からビジュアル オブジェクトの指定した Visual3D の先祖に座標を変換するために使用できる変換を返します。Returns a transform that can be used to transform coordinates from the Visual to the specified Visual3D ancestor of the visual object.


Visual から指定したビジュアル オブジェクトの子孫に座標を変換するために使用できる変換を返します。Returns a transform that can be used to transform coordinates from the Visual to the specified visual object descendant.


Visual から指定したビジュアル オブジェクトに座標を変換するために使用できる変換を返します。Returns a transform that can be used to transform coordinates from the Visual to the specified visual object.


呼び出し元のスレッドがこの DispatcherObject にアクセスできるように強制します。Enforces that the calling thread has access to this DispatcherObject.

(継承元 DispatcherObject)