通过


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 成员公开为派生 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

获取与此DispatcherDispatcherObject关联的值。

(继承自 DispatcherObject)
IsSealed

获取一个值,该值指示此实例当前是否密封(只读)。

(继承自 DependencyObject)
VisualBitmapEffect
已过时.
已过时.

获取或设置 BitmapEffectVisual..

VisualBitmapEffectInput
已过时.
已过时.

获取或设置 BitmapEffectInputVisual..

VisualBitmapScalingMode

获取或设置 .BitmapScalingModeVisual

VisualCacheMode

获取或设置缓存的 Visual表示形式。

VisualChildrenCount

获取该 Visual元素的子元素数。

VisualClearTypeHint

获取或设置 ClearTypeHint 确定 ClearType 在 Visual中的呈现方式。

VisualClip

获取或设置作为值的Visual剪辑区域Geometry

VisualEdgeMode

获取或设置作为值的Visual边缘模式EdgeMode

VisualEffect

获取或设置要应用于的 Visual位图效果。

VisualOffset

获取或设置视觉对象的偏移值。

VisualOpacity

获取或设置 . Visual的不透明度。

VisualOpacityMask

获取或设置 Brush 表示 . Visual. 的不透明度掩码的值。

VisualParent

获取视觉对象的可视化树父级。

VisualScrollableAreaClip

获取或设置剪裁的 Visual可滚动区域。

VisualTextHintingMode

获取或设置 TextHintingModeVisual

VisualTextRenderingMode

获取或设置 TextRenderingModeVisual

VisualTransform

获取或设置 TransformVisual..

VisualXSnappingGuidelines

获取或设置 x 坐标(垂直)准则集合。

VisualYSnappingGuidelines

获取或设置 y 坐标(水平)准则集合。

方法

名称 说明
AddVisualChild(Visual)

定义两个视觉对象之间的父子关系。

CheckAccess()

确定调用线程是否有权访问此 DispatcherObject权限。

(继承自 DispatcherObject)
ClearValue(DependencyProperty)

清除属性的本地值。 要清除的属性由 DependencyProperty 标识符指定。

(继承自 DependencyObject)
ClearValue(DependencyPropertyKey)

清除只读属性的本地值。 要清除的属性由一个 DependencyPropertyKey.

(继承自 DependencyObject)
CoerceValue(DependencyProperty)

强制指定依赖属性的值。 这是通过调用中调用依赖属性CoerceValueCallback的属性元数据中指定的任何DependencyObject函数来实现的。

(继承自 DependencyObject)
Equals(Object)

确定提供的 DependencyObject 是否等效于当前 DependencyObject

(继承自 DependencyObject)
FindCommonVisualAncestor(DependencyObject)

返回两个视觉对象的常见上级。

GetHashCode()

获取此 DependencyObject代码的哈希代码。

(继承自 DependencyObject)
GetLocalValueEnumerator()

创建一个专用枚举器,用于确定哪些依赖项属性具有本地 DependencyObject设置的值。

(继承自 DependencyObject)
GetType()

获取当前实例的 Type

(继承自 Object)
GetValue(DependencyProperty)

返回此实例 DependencyObject上的依赖属性的当前有效值。

(继承自 DependencyObject)
GetVisualChild(Int32)

返回 VisualVisualCollection级中指定的值。

HitTestCore(GeometryHitTestParameters)

确定几何图形值是否在视觉对象的边界内。

HitTestCore(PointHitTestParameters)

确定点坐标值是否在视觉对象的边界内。

InvalidateProperty(DependencyProperty)

重新评估指定依赖属性的有效值。

(继承自 DependencyObject)
IsAncestorOf(DependencyObject)

确定视觉对象是否为后代视觉对象的上级。

IsDescendantOf(DependencyObject)

确定视觉对象是否是上级视觉对象的后代。

MemberwiseClone()

创建当前 Object的浅表副本。

(继承自 Object)
OnDpiChanged(DpiScale, DpiScale)

当呈现此视图的 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)

适用于

另请参阅