Visual 類別

定義

提供在 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 物件,其主要角色是提供轉譯支援。 使用者介面控制項,例如 ButtonTextBox ,衍生自 Visual 類別,並使用 Visual 定義的屬性來保存其轉譯資料。 物件 Visual 提供下列專案的支援:

  • 輸出顯示︰轉譯視覺物件已保存、序列化的繪圖內容。

  • 轉換︰執行視覺物件的轉換。

  • 裁剪:提供視覺物件的裁剪區域支援。

  • 點擊測試:判斷指定的座標 (點) 或幾何是否包含在視覺效果的界限內。

  • 週框方塊計算︰判斷視覺物件的週框矩形。

在架構上, Visual 物件不包含其他應用程式開發需求/WPF 功能的支援,這些功能不會立即與其轉譯相關,例如:

  • 事件處理

  • 版面配置

  • 樣式

  • 資料繫結

  • 全球化

Visual 會以公用抽象類別的形式提供,可從中衍生進一步的類別。 下圖顯示 WPF 架構中定義之現有視覺物件的階層。

衍生自 Visual 物件類別的圖表 衍生
Visual 類別階層

在某些情況下,在 中 Visual 定義為受保護的成員會公開為更容易存取的成員,並在衍生 UIElement 類別中具有類似名稱。

如需詳細資訊,請參閱 WPF 圖形轉譯概觀

Visual具有有限數量的層級。 在舊版的 .NET Framework中,此最大深度為 255。 對於在視覺化樹狀結構中具有許多層級的版面配置而言,此限制不足。

在.NET Framework 4 中,的最大深度 Visual 是 2047,這可讓您更深入的視覺樹狀結構。 在大部分應用程式中,堆疊空間不足,無法周遊這麼多層級,而且結果會在 StackOverflowException 版面配置期間。 針對預設堆疊大小,當樹狀結構深度大約是 800 時,通常會擲回此例外狀況,這相當於大約 190 個巢狀 TreeViewItem 物件。

如果應用程式擲回此例外狀況,而且您需要有更深入的視覺化樹狀結構,您可以增加應用程式的堆疊大小。 您可以在編譯時期使用 /STACK 選項或使用 EDITBIN 公用程式來增加堆疊的大小。 增加堆疊大小可能會影響應用程式的效能。 如需詳細資訊,請參閱 堆疊配置EDITBIN 選項

建構函式

Visual()

提供衍生自 Visual 類別之物件的基底初始化。

屬性

DependencyObjectType

取得包裝 DependencyObjectType 這個實例 CLR 型別的 。

(繼承來源 DependencyObject)
Dispatcher

取得與這個 Dispatcher 關聯的 DispatcherObject

(繼承來源 DispatcherObject)
IsSealed

取得值,這個值表示此執行個體目前是否已密封 (唯讀)。

(繼承來源 DependencyObject)
VisualBitmapEffect
已淘汰.
已淘汰.

取得或設定 BitmapEffectVisual 值。

VisualBitmapEffectInput
已淘汰.
已淘汰.

取得或設定 BitmapEffectInputVisual 值。

VisualBitmapScalingMode

取得或設定 BitmapScalingModeVisual

VisualCacheMode

取得或設定 Visual 的快取表示。

VisualChildrenCount

取得 Visual 的子項目數量。

VisualClearTypeHint

取得或設定 ClearTypeHint,以決定 Visual 中的 ClearType 呈現方式。

VisualClip

取得或設定 Visual 的裁剪區域做為 Geometry 值。

VisualEdgeMode

取得或設定 Visual 的邊緣模式做為 EdgeMode 值。

VisualEffect

取得或設定要套用至 Visual 的點陣圖效果。

VisualOffset

取得或設定視覺物件的位移值。

VisualOpacity

取得或設定 Visual 的不透明度。

VisualOpacityMask

取得或設定 Brush 值,這個值表示 Visual 的不透明遮罩。

VisualParent

取得視覺物件的視覺化樹狀結構父物件。

VisualScrollableAreaClip

取得或設定 Visual 的可捲動裁剪區域。

VisualTextHintingMode

取得或設定 VisualTextHintingMode

VisualTextRenderingMode

取得或設定 VisualTextRenderingMode

VisualTransform

取得或設定 TransformVisual 值。

VisualXSnappingGuidelines

取得或設定 X 座標 (垂直) 導線集合。

VisualYSnappingGuidelines

取得或設定 Y 座標 (水平) 導線集合。

方法

AddVisualChild(Visual)

定義兩個視覺項目之間的父-子關係。

CheckAccess()

判斷呼叫的執行是否可以存取這個 DispatcherObject

(繼承來源 DispatcherObject)
ClearValue(DependencyProperty)

清除屬性的區域數值。 要清除的屬性是由 DependencyProperty 識別項所指定。

(繼承來源 DependencyObject)
ClearValue(DependencyPropertyKey)

清除唯讀屬性的區域數值。 要清除的屬性是由 DependencyPropertyKey 所指定。

(繼承來源 DependencyObject)
CoerceValue(DependencyProperty)

強制轉型所指定相依性屬性的值。 完成方式是叫用存在於呼叫 DependencyObject 之相依性屬性的屬性中繼資料中所指定的任何 CoerceValueCallback 函式。

(繼承來源 DependencyObject)
Equals(Object)

判斷提供的 DependencyObject 和目前的 DependencyObject 是否相等。

(繼承來源 DependencyObject)
FindCommonVisualAncestor(DependencyObject)

傳回兩個視覺物件的共同祖系。

GetHashCode()

取得這個 DependencyObject 的雜湊碼。

(繼承來源 DependencyObject)
GetLocalValueEnumerator()

建立特定的列舉值,以判斷哪些相依性屬性在此 DependencyObject 上具有本機設定的值。

(繼承來源 DependencyObject)
GetType()

取得目前執行個體的 Type

(繼承來源 Object)
GetValue(DependencyProperty)

傳回 DependencyObject 的這個執行個體上之相依性屬性的目前有效值。

(繼承來源 DependencyObject)
GetVisualChild(Int32)

傳回父 Visual 中所指定的 VisualCollection

HitTestCore(GeometryHitTestParameters)

判斷幾何值是否在視覺物件的界限中。

HitTestCore(PointHitTestParameters)

判斷點座標值是否在視覺物件的界限中。

InvalidateProperty(DependencyProperty)

重新評估指定相依性屬性的有效值。

(繼承來源 DependencyObject)
IsAncestorOf(DependencyObject)

判斷視覺物件是否為子系視覺物件的祖系。

IsDescendantOf(DependencyObject)

判斷視覺物件是否為祖系視覺物件的子系。

MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
OnDpiChanged(DpiScale, DpiScale)

當轉譯此 View 的 DPI 變更時呼叫。

OnPropertyChanged(DependencyPropertyChangedEventArgs)

每當這個 DependencyObject 上任何相依性屬性的有效值已更新時叫用。 已變更的特定相依性屬性會在事件資料中報告。

(繼承來源 DependencyObject)
OnVisualChildrenChanged(DependencyObject, DependencyObject)

當視覺物件的 VisualCollection 已修改時呼叫。

OnVisualParentChanged(DependencyObject)

在視覺物件的父代變更時呼叫。

PointFromScreen(Point)

將螢幕座標中的 Point 轉換為 Point,表示 Visual 的目前座標系統。

PointToScreen(Point)

將表示 Point 之目前座標系統的 Visual 轉換為螢幕座標中的 Point

ReadLocalValue(DependencyProperty)

傳回相依性屬性的區域值 (如果存在)。

(繼承來源 DependencyObject)
RemoveVisualChild(Visual)

移除兩個視覺物件之間的父-子關係。

SetCurrentValue(DependencyProperty, Object)

設定相依性屬性的值,而不需要變更其值來源。

(繼承來源 DependencyObject)
SetValue(DependencyProperty, Object)

設定相依性屬性的區域值 (由相依性屬性的識別碼所指定)。

(繼承來源 DependencyObject)
SetValue(DependencyPropertyKey, Object)

設定唯讀相依性屬性的區域數值 (由相依性屬性的 DependencyPropertyKey 識別項所指定)。

(繼承來源 DependencyObject)
ShouldSerializeProperty(DependencyProperty)

傳回值,這個值表示序列化程序是否應該序列化所提供相依性屬性的值。

(繼承來源 DependencyObject)
ToString()

傳回代表目前物件的字串。

(繼承來源 Object)
TransformToAncestor(Visual)

傳回轉換,這個轉換可用來將 Visual 的座標轉換為視覺物件的指定 Visual 祖系。

TransformToAncestor(Visual3D)

傳回轉換,這個轉換可用來將 Visual 的座標轉換為視覺物件的指定 Visual3D 祖系。

TransformToDescendant(Visual)

傳回轉換,這個轉換可用來將 Visual 的座標轉換為指定的視覺物件子系。

TransformToVisual(Visual)

傳回轉換,這個轉換可用來將 Visual 的座標轉換為指定的視覺物件。

VerifyAccess()

請強制執行可以存取這個 DispatcherObject 的呼叫執行緒。

(繼承來源 DispatcherObject)

適用於

另請參閱