Visual (Clase) (System.Windows.Media)

Cambiar vista:
Sin script
Biblioteca de clases de .NET Framework
Visual (Clase)
Este artículo se tradujo de forma manual. Para mostrar esta página y el contenido original en inglés al mismo tiempo, cambie a Lightweight según sus preferencias de visualización.

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.

Jerarquía de herencia

System.Object
  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)
Sintaxis

Visual Basic
Public MustInherit Class Visual _
	Inherits DependencyObject
C#
public abstract class Visual : DependencyObject
Visual C++
public ref class Visual abstract : public DependencyObject
F#
[<AbstractClass>]
type Visual =  
    class
        inherit DependencyObject
    end

El tipo Visual expone los siguientes miembros.

Constructores

  Nombre Descripción
Método protegido Visual Proporciona la inicialización base de los objetos derivados de la clase Visual.
Arriba
Propiedades

  Nombre Descripción
Propiedad pública DependencyObjectType Obtiene el objeto DependencyObjectType que ajusta el tipo CLR de esta instancia.  (Se hereda de DependencyObject).
Propiedad pública Dispatcher Obtiene el objeto Dispatcher al que está asociado DispatcherObject. (Se hereda de DispatcherObject).
Propiedad pública IsSealed Obtiene un valor que indica si esta instancia está actualmente sellada (es de solo lectura). (Se hereda de DependencyObject).
Propiedad protegida VisualBitmapEffect Obsoleto. Obtiene o establece el valor de BitmapEffect para Visual.
Propiedad protegida VisualBitmapEffectInput Obsoleto. Obtiene o establece el valor de BitmapEffectInput para Visual.
Propiedad protegida VisualBitmapScalingMode Obtiene o establece BitmapScalingMode para el objeto Visual.
Propiedad protegida VisualCacheMode Obtiene o establece una representación en caché del objeto Visual.
Propiedad protegida VisualChildrenCount Obtiene el número de elementos secundarios del objeto Visual.
Propiedad protegida VisualClearTypeHint Obtiene o establece el valor de ClearTypeHint que determina cómo se presenta ClearType en el objeto Visual.
Propiedad protegida VisualClip Obtiene o establece la región de recorte del objeto Visual como valor de Geometry.
Propiedad protegida VisualEdgeMode Obtiene o establece el modo de borde del objeto Visual como valor de EdgeMode.
Propiedad protegida VisualEffect Obtiene o establece el efecto de mapa de bits que se va a aplicar al objeto Visual.
Propiedad protegida VisualOffset Obtiene o establece el valor de desplazamiento del objeto visual.
Propiedad protegida VisualOpacity Obtiene o establece la opacidad del objeto Visual.
Propiedad protegida VisualOpacityMask Obtiene o establece el valor de Brush que representa la máscara de opacidad del objeto Visual.
Propiedad protegida VisualParent Obtiene el objeto primario del árbol visual del objeto visual.
Propiedad protegida VisualScrollableAreaClip Obtiene o establece un área de recorte desplazable del objeto Visual.
Propiedad protegida VisualTextHintingMode Obtiene o establece TextHintingMode de Visual.
Propiedad protegida VisualTextRenderingMode Obtiene o establece TextRenderingMode de Visual.
Propiedad protegida VisualTransform Obtiene o establece el valor de Transform para Visual.
Propiedad protegida VisualXSnappingGuidelines Obtiene o establece la colección de instrucciones de la coordenada x (vertical).
Propiedad protegida VisualYSnappingGuidelines Obtiene o establece la colección de instrucciones de la coordenada y (horizontal).
Arriba
Métodos

  Nombre Descripción
Método protegido AddVisualChild Define la relación primario-secundario entre dos objetos visuales.
Método público CheckAccess Determina si el subproceso de la llamada tiene acceso a DispatcherObject. (Se hereda de DispatcherObject).
Método público 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).
Método público 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).
Método público 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).
Método público Equals Determina si un objeto DependencyObject proporcionado es equivalente al objeto DependencyObject actual. (Se hereda de DependencyObject).
Método protegido 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).
Método público FindCommonVisualAncestor Devuelve el antecesor común de dos objetos visuales.
Método público GetHashCode Obtiene un código hash de este objeto DependencyObject. (Se hereda de DependencyObject).
Método público GetLocalValueEnumerator Crea un enumerador especializado para determinar qué propiedades de dependencia han establecido localmente los valores en DependencyObject. (Se hereda de DependencyObject).
Método público GetType Obtiene el objeto Type de la instancia actual. (Se hereda de Object).
Método público GetValue Devuelve el valor efectivo actual de una propiedad de dependencia en esta instancia de DependencyObject. (Se hereda de DependencyObject).
Método protegido GetVisualChild Devuelve el objeto Visual especificado del objeto VisualCollection primario.
Método protegido HitTestCore(GeometryHitTestParameters) Determina si un valor geométrico está dentro de los límites del objeto visual.
Método protegido HitTestCore(PointHitTestParameters) Determina si un valor de coordenada de punto está dentro de los límites del objeto visual.
Método público InvalidateProperty Vuelve a evaluar el valor efectivo para la propiedad de dependencia especificada. (Se hereda de DependencyObject).
Método público IsAncestorOf Determina si el objeto visual es un antecesor del objeto visual descendiente.
Método público IsDescendantOf Determina si el objeto visual es un descendiente del objeto visual antecesor.
Método protegido MemberwiseClone Crea una copia superficial del objeto Object actual. (Se hereda de Object).
Método protegido 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).
Método protegido OnVisualChildrenChanged Se llama cuando se modifica la colección VisualCollection del objeto visual.
Método protegido OnVisualParentChanged Se le llama cuando se cambia el objeto primario del objeto visual.
Método público PointFromScreen Convierte un objeto Point en coordenadas de pantalla en un objeto Point que representa el sistema de coordenadas actual de Visual.
Método público PointToScreen Convierte un objeto Point que representa el sistema de coordenadas actual del objeto Visual en un objeto Point de coordenadas de pantalla.
Método público ReadLocalValue Devuelve el valor local de una propiedad de dependencia, si existe. (Se hereda de DependencyObject).
Método protegido RemoveVisualChild Quita la relación primario-secundario entre dos objetos visuales.
Método público SetCurrentValue Establece el valor de una propiedad de dependencia sin cambiar el origen de su valor. (Se hereda de DependencyObject).
Método público SetValue(DependencyProperty, Object) Establece el valor local de una propiedad de dependencia, especificado por su identificador de propiedad de dependencia. (Se hereda de DependencyObject).
Método público 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).
Método protegido 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).
Método público ToString Devuelve una cadena que representa el objeto actual. (Se hereda de Object).
Método público 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.
Método público 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.
Método público TransformToDescendant Devuelve una transformación que se puede usar para transformar las coordenadas desde el objeto Visual en el descendiente del objeto visual especificado.
Método público TransformToVisual Devuelve una transformación que se puede usar para transformar las coordenadas desde el objeto Visual en el objeto visual especificado.
Método público VerifyAccess Exige que el subproceso de la llamada tenga acceso a DispatcherObject. (Se hereda de DispatcherObject).
Arriba
Comentarios

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.

Jerarquía de la clase Visual

Diagrama de clases derivadas del objeto Visual

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.

Información de versión

.NET Framework

Compatible con: 4, 3.5, 3.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1
Plataformas

Windows 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.
Seguridad para subprocesos

Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.
Vea también

Referencia

Otros recursos

Contenido de la comunidad

ponchi_89
Class y progrma
class Rectangulo
    {
        //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();
           
        }