Proporciona la compatibilidad de representación de WPF, que incluye la prueba de posicionamiento, la transformación de coordinación y los cálculos del rectángulo de selección.
System.Windows.Threading.DispatcherObject
System.Windows.DependencyObject
System.Windows.Media.Visual
System.Windows.Media.ContainerVisual
System.Windows.Media.Media3D.Viewport3DVisual
System.Windows.UIElement
Espacio de nombres: System.Windows.Media
Ensamblado: PresentationCore (en PresentationCore.dll)
Public MustInherit Class Visual _ Inherits DependencyObject
public abstract class Visual : DependencyObject
public ref class Visual abstract : public DependencyObject
[<AbstractClass>] type Visual = class inherit DependencyObject end
El tipo Visual expone los siguientes miembros.
| Nombre | Descripción | |
|---|---|---|
|
Visual | Proporciona la inicialización base de los objetos derivados de la clase Visual. |
| Nombre | Descripción | |
|---|---|---|
|
DependencyObjectType | Obtiene el objeto DependencyObjectType que ajusta el tipo CLR de esta instancia. (Se hereda de DependencyObject). |
|
Dispatcher | Obtiene el objeto Dispatcher al que está asociado DispatcherObject. (Se hereda de DispatcherObject). |
|
IsSealed | Obtiene un valor que indica si esta instancia está actualmente sellada (es de solo lectura). (Se hereda de DependencyObject). |
|
VisualBitmapEffect | Obsoleto. Obtiene o establece el valor de BitmapEffect para Visual. |
|
VisualBitmapEffectInput | Obsoleto. Obtiene o establece el valor de BitmapEffectInput para Visual. |
|
VisualBitmapScalingMode | Obtiene o establece BitmapScalingMode para el objeto Visual. |
|
VisualCacheMode | Obtiene o establece una representación en caché del objeto Visual. |
|
VisualChildrenCount | Obtiene el número de elementos secundarios del objeto Visual. |
|
VisualClearTypeHint | Obtiene o establece el valor de ClearTypeHint que determina cómo se presenta ClearType en el objeto Visual. |
|
VisualClip | Obtiene o establece la región de recorte del objeto Visual como valor de Geometry. |
|
VisualEdgeMode | Obtiene o establece el modo de borde del objeto Visual como valor de EdgeMode. |
|
VisualEffect | Obtiene o establece el efecto de mapa de bits que se va a aplicar al objeto Visual. |
|
VisualOffset | Obtiene o establece el valor de desplazamiento del objeto visual. |
|
VisualOpacity | Obtiene o establece la opacidad del objeto Visual. |
|
VisualOpacityMask | Obtiene o establece el valor de Brush que representa la máscara de opacidad del objeto Visual. |
|
VisualParent | Obtiene el objeto primario del árbol visual del objeto visual. |
|
VisualScrollableAreaClip | Obtiene o establece un área de recorte desplazable del objeto Visual. |
|
VisualTextHintingMode | Obtiene o establece TextHintingMode de Visual. |
|
VisualTextRenderingMode | Obtiene o establece TextRenderingMode de Visual. |
|
VisualTransform | Obtiene o establece el valor de Transform para Visual. |
|
VisualXSnappingGuidelines | Obtiene o establece la colección de instrucciones de la coordenada x (vertical). |
|
VisualYSnappingGuidelines | Obtiene o establece la colección de instrucciones de la coordenada y (horizontal). |
| Nombre | Descripción | |
|---|---|---|
|
AddVisualChild | Define la relación primario-secundario entre dos objetos visuales. |
|
CheckAccess | Determina si el subproceso de la llamada tiene acceso a DispatcherObject. (Se hereda de DispatcherObject). |
|
ClearValue(DependencyProperty) | Borra el valor local de una propiedad. La propiedad que se va a borrar se especifica mediante un identificador de DependencyProperty. (Se hereda de DependencyObject). |
|
ClearValue(DependencyPropertyKey) | Borra el valor local de una propiedad de sólo lectura. DependencyPropertyKey especifica la propiedad que se va a borrar. (Se hereda de DependencyObject). |
|
CoerceValue | Convierte el valor de la propiedad de dependencia especificada. Esto se logra invocando cualquier función de CoerceValueCallback especificada en los metadatos de la propiedad de dependencia cuando existe en el objeto DependencyObject de llamada. (Se hereda de DependencyObject). |
|
Equals | Determina si un objeto DependencyObject proporcionado es equivalente al objeto DependencyObject actual. (Se hereda de DependencyObject). |
|
Finalize | Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por la recolección de elementos no utilizados. (Se hereda de Object). |
|
FindCommonVisualAncestor | Devuelve el antecesor común de dos objetos visuales. |
|
GetHashCode | Obtiene un código hash de este objeto DependencyObject. (Se hereda de DependencyObject). |
|
GetLocalValueEnumerator | Crea un enumerador especializado para determinar qué propiedades de dependencia han establecido localmente los valores en DependencyObject. (Se hereda de DependencyObject). |
|
GetType | Obtiene el objeto Type de la instancia actual. (Se hereda de Object). |
|
GetValue | Devuelve el valor efectivo actual de una propiedad de dependencia en esta instancia de DependencyObject. (Se hereda de DependencyObject). |
|
GetVisualChild | Devuelve el objeto Visual especificado del objeto VisualCollection primario. |
|
HitTestCore(GeometryHitTestParameters) | Determina si un valor geométrico está dentro de los límites del objeto visual. |
|
HitTestCore(PointHitTestParameters) | Determina si un valor de coordenada de punto está dentro de los límites del objeto visual. |
|
InvalidateProperty | Vuelve a evaluar el valor efectivo para la propiedad de dependencia especificada. (Se hereda de DependencyObject). |
|
IsAncestorOf | Determina si el objeto visual es un antecesor del objeto visual descendiente. |
|
IsDescendantOf | Determina si el objeto visual es un descendiente del objeto visual antecesor. |
|
MemberwiseClone | Crea una copia superficial del objeto Object actual. (Se hereda de Object). |
|
OnPropertyChanged | Se invoca cada vez que se actualiza el valor actual de cualquier propiedad de dependencia en DependencyObject. Se informa de la propiedad de dependencia concreta que cambió en los datos de evento. (Se hereda de DependencyObject). |
|
OnVisualChildrenChanged | Se llama cuando se modifica la colección VisualCollection del objeto visual. |
|
OnVisualParentChanged | Se le llama cuando se cambia el objeto primario del objeto visual. |
|
PointFromScreen | Convierte un objeto Point en coordenadas de pantalla en un objeto Point que representa el sistema de coordenadas actual de Visual. |
|
PointToScreen | Convierte un objeto Point que representa el sistema de coordenadas actual del objeto Visual en un objeto Point de coordenadas de pantalla. |
|
ReadLocalValue | Devuelve el valor local de una propiedad de dependencia, si existe. (Se hereda de DependencyObject). |
|
RemoveVisualChild | Quita la relación primario-secundario entre dos objetos visuales. |
|
SetCurrentValue | Establece el valor de una propiedad de dependencia sin cambiar el origen de su valor. (Se hereda de DependencyObject). |
|
SetValue(DependencyProperty, Object) | Establece el valor local de una propiedad de dependencia, especificado por su identificador de propiedad de dependencia. (Se hereda de DependencyObject). |
|
SetValue(DependencyPropertyKey, Object) | Establece el valor local de una propiedad de dependencia de sólo lectura, especificado por el identificador DependencyPropertyKey de la propiedad de dependencia. (Se hereda de DependencyObject). |
|
ShouldSerializeProperty | Devuelve un valor que indica si los procesos de serialización deben serializar el valor de la propiedad de dependencia proporcionada. (Se hereda de DependencyObject). |
|
ToString | Devuelve una cadena que representa el objeto actual. (Se hereda de Object). |
|
TransformToAncestor(Visual) | Devuelve una transformación que se puede usar para transformar las coordenadas desde el objeto Visual en el antecesor del objeto Visual especificado del objeto visual. |
|
TransformToAncestor(Visual3D) | Devuelve una transformación que se puede usar para transformar las coordenadas del objeto Visual en el antecesor del objeto Visual3D especificado del objeto visual. |
|
TransformToDescendant | Devuelve una transformación que se puede usar para transformar las coordenadas desde el objeto Visual en el descendiente del objeto visual especificado. |
|
TransformToVisual | Devuelve una transformación que se puede usar para transformar las coordenadas desde el objeto Visual en el objeto visual especificado. |
|
VerifyAccess | Exige que el subproceso de la llamada tenga acceso a DispatcherObject. (Se hereda de DispatcherObject). |
La clase Visual es la abstracción básica de la que se derivan todos los objetos FrameworkElement. También actúa como punto de entrada para escribir nuevos controles en WPF y, en muchos sentidos, se puede considerar como equivalente de un identificador de ventana (HWND) del modelo de aplicaciones de Win32.
El objeto Visual es un objeto básico de WPF, cuya función principal es proporcionar la compatibilidad con la representación. Los controles de la interfaz de usuario, como Button y TextBox, se derivan de la clase Visual y usan las propiedades definidas de Visual para conservar los datos de representación. El objeto Visual proporciona compatibilidad con los siguientes elementos:
-
Presentación de salida: representación del contenido conservado y serializado de un elemento visual.
-
Transformaciones: ejecución de las transformaciones de un elemento visual.
-
Recorte: compatibilidad con la zona de recorte para un elemento visual.
-
Pruebas de posicionamiento: determinación de si una coordenada (punto) o geometría especificadas están contenidas en los límites de un elemento visual.
-
Cálculos del rectángulo de selección: determinación del rectángulo delimitador de un elemento visual.
Arquitectónicamente, el objeto Visual no incluye compatibilidad con los requisitos de desarrollo de otras aplicaciones o las características de WPF que no se relacionen inmediatamente con su representación, por ejemplo:
-
Control de eventos
-
Diseño
-
Estilos
-
Enlace de datos
-
Globalización
Visual se proporciona como clase abstracta pública de la que se pueden derivar más clases. La ilustración siguiente muestra la jerarquía de los objetos visuales existentes que se definen en la arquitectura de WPF.
En algunos casos, los miembros que se definen como protegidos en Visual se exponen como miembros cuya accesibilidad de lectura es más fácil con nombres similares en la clase UIElement derivada.
Para obtener más información, vea Información general sobre la representación de gráficos en WPF.
Un Visual tiene un número de niveles limitado. En versiones anteriores de .NET Framework, esta profundidad máxima era 255. Este límite es inadecuado para algunos diseños que tienen muchos niveles en el árbol visual.
En .NET Framework 4, la profundidad máxima de Visual es 2047, lo cual habilita árboles visuales mucho más profundos. En la mayoría de las aplicaciones, no hay bastante espacio de pila para atravesar tantos niveles, y el resultado es una excepción StackOverflowException durante el diseño. Para el tamaño de pila predeterminado, esta excepción se produce normalmente cuando la profundidad del árbol es aproximadamente de 800, que corresponde aproximadamente a 190 objetos TreeViewItem anidados.
Si su aplicación produce esta excepción y necesita tener un árbol visual más profundo, puede aumentar el tamaño de pila de la aplicación. Puede aumentar el tamaño de la pila utilizando la opción /STACK en tiempo de compilación o utilizando la utilidad EDITBIN. Aumentar el tamaño de pila puede afectar al rendimiento de su aplicación. Para obtener más información, vea Asignaciones de la pila y Opciones de EDITBIN.
.NET Framework
Compatible con: 4, 3.5, 3.0.NET Framework Client Profile
Compatible con: 4, 3.5 SP1Windows 7, Windows Vista SP1 o posterior, Windows XP SP3, Windows Server 2008 (no se admite Server Core), Windows Server 2008 R2 (se admite Server Core con SP1 o posterior), Windows Server 2003 SP2
.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.
Referencia
Otros recursos
{
//Considero q X es la coordenada horizontal e Y coordenada vertical
public int x { get; private set; }
public int y { get; private set; }
public int alto { get; private set; }
public int ancho { get; private set; }
public Rectangulo(int x = 1, int y = 1, int ancho = 50, int alto = 100)
{
this.x = x; this.y=y; this.ancho=ancho; this.alto=alto;
}
public Rectangulo(Rectangulo r)
: this(r.x, r.y, r.ancho, r.alto)
{
}
public bool EstaEn(int px, int py)
{
int xder = x + ancho, yder = y + alto;
if (px >= x && px <= xder && py >= y && y <= yder)
return true;
else
return false;
}
public override string ToString()
{
return String.Format("({0},{1}) ancho: {2} alto: {3}", this.x, this.y, this.ancho, this.alto);
}
}
static void Main(string[] args)
{
Rectangulo r1 = new Rectangulo();
Rectangulo r2 = new Rectangulo(40, 40, 50, 80);
Rectangulo r3 = new Rectangulo(r2);
Console.WriteLine("r1: " + r1);
Console.WriteLine("r2: " + r2);
Console.WriteLine("r3: " + r3);
Console.Write("Punto(10,10)");
if (r1.EstaEn(10, 10))
Console.WriteLine("Punto en el rectangulo");
else
Console.WriteLine("Punto fuera del rectangulo");
Console.Write("Punto (90,90)>");
if (r1.EstaEn(90, 90))
Console.WriteLine("Puntoen el rectangulo");
else
Console.WriteLine("Punto fuera del rectangulo");
Console.ReadKey();
}