INTERFASE DE PROGRAMACIÓN PARA UNA PLATAFORMA DE COMPUTO Campo de la Invención La presente invención se refiere a un software (programa) y el desarrollo de dicho software Mas particularmente, la presente invención se refiere a una interfase de programación que facilita el uso de una plataforma de software mediante softwares de aplicación y hardware de computo Antecedentes de la Invención Muy pronto, el software de computo llego a ser categorizado como un software de "sistema operativo" o software de "aplicación" Hablando de una manera general, una aplicación es un software que significa realizar una tarea especifica para el usuario de la computadora, tal como solucionar una ecuación matemática o procesar un procesamiento de palabras de soporte El sistema operativo es el software que maneja y controla el hardware de computo La meta del sistema operativo es hacer disponibles los recursos de la computadora al programador de la aplicación mientras que al mismo tiempo, oculta la complejidad necesaria para realmente controlar el hardware El sistema operativo hace disponibles los recursos por medio de las funciones que son colectivamente conocidas como la Interfase de Software de Aplicación o API El termino API es también utilizado haciendo referencia a una sola de estas funciones Las funciones con frecuencia son agrupadas en términos de los recursos o servicios proporcionan al programador de la aplicación El software de aplicación solicita recursos invocando las funciones API individuales Las funciones API también sirven como el medio por medio del cual el sistema operativo proporciona los mensajes y la información que son retransmitidas al software de aplicación Ademas de los cambios en el hardware (equipo), otro factor que lleva a la evolución del software del sistema operativo, ha sido el deseo de simplificación y el desarrollo de un software de aplicación de velocidad El desarrollo del software de aplicación puede ser una tarea desalentadora, que a veces requiere años de tiempo del desarrollador para crear un software sofisticado con millones de lineas de códigos Para un sistema operativo popular, tal como las diferentes versiones del sistema operativo Microsoft Windows®, los desarrolladores del software de aplicación escriben cada año miles de aplicaciones diferentes que utilizan el sistema operativo Se requiere una base coherente y que se pueda utilizar para el sistema operativo para que soporte muchos desarrolladores de aplicaciones muy diversos Con frecuencia, el desarrollo del software de aplicación se puede hacer mas simple haciendo el sistema operativo mas complejo Es decir, si una función puede ser útil para varios softwares de aplicación diferentes, puede ser mejor escribirla una vez para incluirla en el sistema operativo, que requerir docenas de desabolladores de software para escribirlo docenas de veces, para su inclusión en docenas de diferentes aplicaciones De esta manera, si el sistema operativo soporta un amplio rango de la funcionalidad común requerida por un numero de aplicaciones, se pueden lograr ahorros importantes en los costos del desarrollo del software de aplicaciones y en tiempo Independientemente de en donde se encuentre la linea entre el sistema operativo y el sistema de aplicación, es claro que para un sistema operativo útil, el API entre el sistema operativo y el hardware de computo y el software de aplicación es tan importante como la operación interna eficiente del sistema operativo mismo Desde hace unos cuantos años, la adopción universal de la Internet y la tecnología de red en general, han cambiado el panorama para los desabolladores de softwares de computo Tradicionalmente, los desabolladores del software se enfocaban en aplicaciones de software de un solo sitio para computadoras de escritorio independientes o computadoras basadas en la LAN que eran conectadas a un numero limitado de otras computadoras por medio de una red de área local (LAN) Dichas aplicaciones de software eran a las que se referían generalmente como productos de "envolturas compactadas" debido a que el software era comercializado y vendido en un paquete de envoltura compactado Las aplicaciones utilizaron APIs bien definidos para tener acceso al sistema operativo subyacente de la computadora Conforme evoluciono la Internet y gano una aceptación difundida, la industria comenzó a reconocer el poder de las aplicaciones de las computadoras centrales en diferentes sitios en la red mundial (World Wide Web) (o simplemente la "Web ) En la red mundial, los clientes de cualquier parte podrían presentar solicitudes para aplicaciones basadas en un servidor centralizado en diferentes localizaciones y recibir respuestas en fracciones de segundos Sin embargo, estas aplicaciones de la Web, generalmente eran desarrolladas utilizando la misma plataforma del sistema operativo que originalmente fue desarrollada para las maquinas computadoras independientes o las computadoras de redes locales Desafortunadamente, en algunos casos, estas aplicaciones no se transfieren de manera adecuada al régimen de computo distribuido La plataforma subyacente simplemente no fue construida con la idea de soportar números ilimitados de computadoras interconectadas Con el objeto de acomodar el cambio al ambiente de computo distribuido que estaba siendo guiado por la Internet, Microsoft Corporation desarrollo una plataforma de red conocido como NET" Framework (leerlo como "Dot Net") Microsoft® NET es el software para conectar gente, información, sistemas y aparatos La plataforma permite que los desarroMadores creen servicios de la Web que ejecutaran por la Internet Este cambio dinámico fue acompañado por un conjunto de funciones API para la Estructura NET™ de Microsoft Conforme se fue haciendo crecientemente mas común el uso de la NET™ Framework, han sido identificados medios para aumentar la eficiencia y/o el funcionamiento de la plataforma Los inventores han desarrollado un conjunto único de funciones de interfase de programación para permitir dicha eficiencia y/o funcionamiento aumentado Sumario de la Invención La interfase de programación proporciona funciones para generar aplicaciones, documentos, presentaciones de medios y otro contenido Estas funciones permiten que los desarroMadores obtengan servicios de un sistema operativo, un servicio de modelo de objeto u otro sistema o servicio En una modalidad, las funciones permiten que un desarrollador genere una interfase gráfica del usuario Breve Descripción de los Dibuios En todos los dibujos se utilizan números similares para hacer referencia a características similares La figura 1 ilustra una arquitectura de red en la cual los clientes acceden a los servicios de la Web por la Internet, utilizando protocolos convencionales La figura 2 es un diagrama de bloque de una arquitectura de software para una plataforma de red, la cual incluye una interfase de programa de aplicación (API) La figura 3 es un diagrama de bloque de nombres de espacios únicos soportados por la API, asi como las clases de función de las diferentes funciones API La figura 4 es un diagrama de bloque de una computadora de ejemplo que puede ejecutar toda o parte de la arquitectura del software Las figuras 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, y 16, ilustra las diferentes im plementaciones de ejemplo de una interfase de programación Descripción Detallada de la Invención La descripción se refiere a una interfase de programación de aplicación (API), para una plataforma de red sobre la cual los desarrolladores pueden construir aplicaciones y servicios de la Web Mas particularmente, se describe una API para los sistemas operativos que utilizan la plataforma de la red tal como la NET™ Framework, creada por Microsoft Corporation La NET™ Framework es una plataforma de software para servicios de la Web y aplicaciones de la Web implementada en un ambiente de computo distribuido Representa la siguiente generación del computo de Internet, utilizando estándares abiertos de comunicación para comunicarse entre servicios de la Web acoplados de manera suelta que están colaborando para realizar una tarea particular En la implementacion descrita, la plataforma de la red utiliza el XML (lenguaje de marca extensible), un estándar abierto para describir datos El XML es administrado por un Consorcio de la Red Mundial (W3C) El XML es utilizado para definir los elementos de los datos en una pagina Web y en documentos de negocio a negocio El XML utiliza una estructura de marca similar al HTML, sin embargo, mientras el HTML define la forma en que los elementos son desplegados en la pantalla, el XML define lo que contienen dichos elementos El HTML utiliza marcas previamente definidas, pero el XML permite que las marcas sean definidas por el desarrollador de la pagina Por lo tanto, se pueden identificar virtualmente cualquier partida de datos, permitiendo que las paginas Web funcionen igual que los registros de bases de datos A través del uso del XML y otros protocolos abiertos, tales como el Protocolo de Acceso Simple de Objetos (SOAP), la plataforma de red permite la integración de un amplio rango de servicios que pueden ser diseñados para las necesidades del usuario Aunque las modalidades aquí descritas se describen en conjunto con el XML y otros estándares abiertos, estos no son requeridos para la operación de la invención reivindicada Como se usa en la presente descripción, la frase interfase de aplicación del software o API incluye interfases tradicionales que emplean métodos e invocaciones de funciones, asi como invocaciones remotas (por ejemplo, una procuración o una relación de asistente de instalación), o las invocaciones SOAP/XML Deberá apreciarse que en algunas de las descripciones de los espacios de nombres siguientes, las descripciones de ciertas clases, interfases, enumeraciones y delegados se dejaron en blanco Se podra encontrar una descripción mas completa de estas clases, interfases, enumeraciones y delegados en el asunto materia de los discos compactos AMBIENTE DE RED DE EJEMPLO La figura 1 muestra un ambiente de red 100 en el cual puede ser implementada la plataforma de red, tal como la NET™ Framework, El ambiente de red 100 incluye servicios representativos de la Web 102(1), 102(N), los cuales proporcionan servicios a los que se puede tener acceso por la red 104 (por ejemplo, Internet) Los servicios de la Web, a los que se hace referencia generalmente como el numero 102 son componentes de aplicación que se pueden programar y que se pueden volver a usar e interactuan programáticamente por la red 104, generalmente a través de los protocolos Web estándar de la industria, tales como XML, SOAP, WAP (protocolo de aplicación inalámbrica), HTTP, (protocolo de transporte de hipertexto) y SMPT (protocolo de transferencia simple de correo) aunque también se pueden utilizar otros medios para interactuar con los servicios de la Web por la red, tales como la Llamada de Procedimiento Remoto (RPC), o la tecnología de tipo de corredor de objetos Un servicio de la Web puede ser auto-descrito y con frecuencia definido en términos de formatos y ordenamiento de mensajes Los servicios de la Web 102 son accesibles directamente por otros servicios (tal y como lo representa el enlace de comunicación 106) o una aplicación de software, tal como la aplicación de la Web 110 (tal y como se representa por los enlaces de comunicación 112 y 114) Cada servicio de la Web 102 esta ilustrado como que incluye uno o mas servidores que ejecutan el software para manejar las solicitudes de servicios particulares Dichos servicios con frecuencia mantienen bases de datos que almacenan información para que se vuelvan a servir de retorno a los solicitantes Los servicios de la Web pueden estar configurados para realizar cualquiera de una variedad de servicios diferentes Los ejemplos de los servicios de la Web incluyen, la verificación del nombre de cuenta, notificación, almacenamiento de base de datos, localización de existencias, directorios de localización, elaboración de mapas, música, cartera electrónica, calendario/programador, listas telefónicas, noticias e información, juegos, elaboración de boletos y asi sucesivamente Los servicios de la Web pueden ser combinados entre ellos, y con otras aplicaciones para construir experiencias interactivas inteligentes El ambiente de red 100 también incluye aparatos representativos de cliente 120(1), 120(2), 120(3), 120(4), 120(M), que utilizan los servicios de la Web 102 (representados por el enlace de comunicación 122), y/o la aplicación de la Web 110 (tal y como lo representan los enlaces de comunicación 124, 126, y 128) Los clientes se pueden comunicar entre ellos utilizando también protocolos estándar, representados por el enlace de ejemplo XML 130, entre los clientes 120(3) y 120(4) Los aparatos del cliente, a los que nos referimos generalmente como el numero 120, pueden ser im plementados de muchas maneras diferentes Los ejemplos de las implementaciones posibles del cliente incluyen, sin limitación, computadoras portátiles, computadoras estacionarias, PCs de tableta, cajas de descodificadores de televisiones/señal de cable, aparatos de comunicación inalámbrica, asistentes digitales personales, consolas de juegos, impresoras, fotocopiadoras, y otros aparatos inteligentes La aplicación de la Web 110, es una aplicación diseñada para operar en la plataforma de red y puede utilizar los servicios de la Web 102 cuando maneja y da servicio a solicitudes de los clientes 120 La aplicación de la Web 110 esta compuesta de una o mas aplicaciones de software 130, que operan en la parte superior de una sistema de programación 132, las cuales están siendo ejecutadas en uno o mas servidores 134 u otros sistemas de computo Observar que una porción de la aplicación de la Web 110, puede residir realmente en uno o mas clientes 120 Alternativamente, la aplicación de la Web 110 puede coordinarse con otros softwares en los clientes 120, para realizar realmente sus tareas El sistema de programación 132 es la metodología que soporta las aplicaciones y servicios desarrollados por los desabolladores de aplicación Permite un desarrollo de lenguaje múltiple y una integración continua utilizando lenguajes múltiples de soporte Soporta protocolos abiertos, tales como el SOAP, y encapsula el sistema operativo subyacente y los servicios de modelo de objeto El sistema proporciona un ambiente de ejecución robusto y seguro para lenguajes de programación múltiples y ofrece bibliotecas de clase integrada segura El sistema 132 es una arquitectura de capas múltiples que incluye una capa de interfase de software de aplicación (API) 142, un tiempo de ejecución de lenguaje común (CLR) 144, y una capa operativa de sistemas/servicios 146 Esta arquitectura en capas permite las actualizaciones y modificaciones de las diferentes capas sin impactar otras porciones del sistema Una especificación común de lenguaje (CLS) 140 permite que los diseñadores de diferentes lenguajes escriban códigos que pueden tener acceso a la funcionalidad de biblioteca subyacente La especificación 140 funciona como un contrato entre los diseñadores de lenguaje y los diseñadores de bibliotecas que puede ser utilizado para promover la interoperabilidad del lenguaje Adhiriéndolas a los CLS, las bibliotecas escritas en un lenguaje pueden ser accesibles directamente a los módulos de código escritos en otros lenguajes para lograr una integración continua entre los módulos de código escritos en un lenguaje y los módulos de código escritos en otro lenguaje Una im plementacion de ejemplo detallada de un CLS, se describe en el estándar EC A creado por los participantes en el ECMA TC39/TG3 El lector se puede dirigir al sitio web ECMA a la dirección www ecma ch La capa de API 142 presenta grupos de funciones que pueden invocar las aplicaciones 130 para acceder a los recursos y servicios proporcionados por la capa 146 Exponiendo las funciones API para una plataforma de red, los desarrolladores de aplicación pueden crear aplicaciones Web para sistemas de computo distribuidos que hacen un uso completo de los recursos de la red y otros servicios de la Web, sin necesitar entender los trabajos internoscomplejos de la forma en como operan realmente estos recursos de la red, o como se hacen disponibles Ademas, las aplicaciones de la Web pueden ser escritas en cualquier numero de lenguajes de programación y traducidas en un lenguaje intermedio soportado por un tiempo de ejecución de lenguaje común 144, e incluidos como parte de la especificación de lenguaje común 140 De este modo, la capa API 142 puede proporcionar métodos para una amplia y diversa variedad de aplicaciones Adicionalmente, el sistema 132 puede estar configurado para soportar las invocaciones de la API de las solicitudes remotas que se ejecutan remotamente desde los servidores 134, que alojan el sistema Las aplicaciones representativas 148(1) y 148(2) que residen en los clientes 120(3) y 120(M), respectivamente, pueden utilizar las funciones API haciendo llamadas directamente o indirectamente a la capa API 142 por la red 104 El sistema también puede ser implementado en los clientes El cliente 120(3) representa la situación en la cual el sistema 150 es implementado en el cliente Este sistema puede ser idéntico al sistema basado en el servidor 132, o modificado para propósitos del cliente Alternativamente, el sistema basado en el cliente puede ser condensado en el caso de que el cliente sea un aparato de función limitada o dedicado, tal como un telefono celular, un asistente personal digital, una computadora portátil u otro aparato de comunicación/computo
SISTEMA DE PROGRAMACION DE LOS
DESARROLLADORES La figura 2 muestra la sistema de programación 132 con mayor detalle La capa de especificación de lenguaje común (CLS) 140 soporta las aplicaciones escritas en una variedad de lenguajes 130(1), 130(2) 130(3), 130(4), 130(K) Dichos lenguajes de aplicación incluyen Visual Basic, C + + , C#, COBOL, Jscript, Perl, Eiffel, Pitón, etc, La especificación de lenguaje común 140 especifica un subconjunto de características o reglas acerca de las característica que, de ser seguidas, permiten que se comuniquen diferentes lenguajes Por ejemplo, algunos lenguajes no soportan un tipo determinado (por ejemplo, un tipo ? n t * " ) que podría ser soportado de otro modo por un tiempo de ejecución de lenguaje común 144 En este caso, la especificación del lenguaje común 140 no incluye el tipo Por otra parte, los tipos que son soportados por todos o la mayor parte de los lenguajes (por ejemplo, el tipo " ? n t [ ]") esta incluido en la especificación de lenguaje común 140 de modo que los desarrolladores de la biblioteca tienen la libertad de utilizarlo y están asegurados de que los lenguajes se pueden manejar Esta es la capacidad para comunicar los resultados en una integración continua entre los módulos de código escritos en un lenguaje y los módulos de código escritos en otro lenguaje Debido a que los lenguajes diferentes están particularmente bien adecuados para tareas particulares, la integración continua entre los lenguajes permite que un desarrollador seleccione un lenguaje particular para un modulo de código particular, con la capacidad de utilizar ese modulo de código con los módulos escritos en lenguajes diferentes El tiempo de ejecución de lenguaje común 144 permite el desarrollo de un lenguaje múltiple continuo, con la herencia de lenguaje cruzado, y proporciona un ambiente de ejecución robusto y seguro para los lenguajes de programación múltiples Para mayor información sobre la especificación del lenguaje común 140 y el tiempo de ejecución del lenguaje común 144, el lector deberá consultar las solicitudes también pendientes tituladas "Método y Sistema para Recopilar Lenguajes Múltiples", presentada el 6/21/2000 (serie numero 09/598,105), y "Sistema y Método Unificado de Tipo de Datos', presentada el 7/10/2000 (serie numero 09/613,289), las cuales están incorporadas a la presente descripción como referencia El sistema 132 encapsula el sistema operativo 146(1) (es decir, los sistemas operativos de la marca Windows® y los servicios de modelo de objeto 146(2) (por ejemplo, el Modelo de Objeto de Componente (COM), o el COM distribuido) El sistema operativo 146(1) proporciona funciones convencionales, tales como la administración de archivos, notificación, manejo de eventos, interfases del usuario (por ejemplo, la apertura de ventanas, menus, diálogos, etc ), la seguridad, autenticación, verificación procesos y series de artículos, administración de memoria y asi sucesivamente Los servicios del modelo de objeto 146(2) proporcionan la interfase con otros objetos para realizar diferentes tareas Las llamadas hechas a la capa API 142 son enviadas a la capa de tiempo de ejecución del lenguaje común 144 para la ejecución local por parte del sistema operativo 146(1) y/o los servicios de modelo de objeto 146(2) Los grupos API, API 142 funcionan en espacios de nombre (asignación) múltiples Los espacios de nombre esencialmente definen una colección de clases, interfases, delegados, enumeraciones y estructuras, los cuales son denominados colectivamente "tipos", que proporcionan un conjunto especifico de funcionalidad relacionada Una clase representa, los datos distribuidos en un área especial en la memoria utilizada para almacenar recursos importantes manejados que tienen semánticas de asignación de referencia Un delegado es un señalador de función orientado al objeto Una enumeración es un tipo especial de un tipo de valor que representa las constantes nombradas Una estructura representa, los datos estáticos distribuidos que tienen semánticas de asignación de valor Una interfase define un contrato que puede implementar otros tipos Utilizando los espacios de nombre, un diseñador puede organizar un conjunto de tipos en un espacio de nombre jerárquico El diseñador puede crear grupos múltiples a partir de conjuntos de tipos, conteniendo cada grupo por lo menos un tipo que expone una funcionalidad relacionada lógicamente En la implementacion de ejemplo, el API 142 esta organizado para que incluya tres espacios de nombre de raíz Deberá observarse que aunque solamente están ilustrados en la figura 2 tres espacios de nombre de raíz, también pueden ser incluidos espacios de nombre de raíz adicionales en el API 142 Los tres espacios de nombre de raíz ilustrados en el API 142 son un primer espacio de nombre 200, para un subsistema de presentación (el cual incluye un espacio de nombre 202 para un interprete de ordenes del sistema operativo (shell) de la de interfase del usuario) un segundo espacio de nombre 204 para servicios de la web, y un tercer espacio de nombre 206 para un sistema de archivo Entonces a cada grupo se le puede asignar un nombre Por ejemplo, los tipos en los espacios de nombre de presentación de subsistemas 200 pueden ser asignados con el nombre "Ventana", y los tipos en los espacios de nombre en el sistema de archivo 206 pueden ser asignados con el nombre "Almacenamiento' Los grupos nombrados pueden ser organizados bajo un solo espacio de nombre de raíz global", para los APIs del nivel del sistema, tales como el espacio de nombre del Sistema general Seleccionando y fijando previamente un identif icador superior del nivel, los tipos de cada grupo pueden ser referenciados fácilmente por un nombre jerárquico que incluye un identif icador superior de nivel seleccionado previamente fijado al nombre del grupo que contiene el tipo Por ejemplo, los tipos de espacio de nombre en el sistema de archivo 206 pueden tener una referencia utilizando el nombre jerárquico "System Storage" De este modo, los espacios de nombre individuales 200, 204 y 206 se convierten en unas ramificaciones principales fuera del espacio de nombre del sistema y pueden llevar una designación en donde los espacios de nombre individuales son previamente fijados por un diseñador, tales como un prefijo "System" Los espacios de nombre de presentación del subsistema 200 pertenecen al desarrollo de programación y contenido Este suministra tipos que permiten la generación de aplicaciones, documentos, presentaciones de medios y otros contenidos Por ejemplo, el espacio de nombre de presentación del subsistema 200 proporciona un modelo de programación que permite que los desabolladores obtengan servicios del sistema operativo 146(1) y/o servicios de modelo de objeto 146(2) El espacio de nombre del interprete de ordenes del sistema operativo (shell) 202 pertenece a la funcionalidad de interfase del usuario Suministra tipos que permiten que los desabolladores incrusten la funcionalidad de interfase del usuario en sus aplicaciones y permite ademas que los desabolladores extiendan la funcionalidad de la interfase del usuario El espacio de nombre de servicios de la web 204 pertenece a una infraestructura para hacer posible la creación de una amplia variedad de aplicaciones, por ejemplo, aplicaciones tan simples como una aplicación de chat (conversación) que opera entre dos participantes en una intranet, y/o tan complejos como un servicio de la Web que se puede escalar para millones de usuarios La infraestructura descrita es altamente variable, de manera ventajosa uno solamente necesita aquellas partes que son apropiadas para la complejidad de una solución particular La infraestructura proporciona una cimentación para construir aplicaciones basadas en mensajes de diferentes escalas y complejidad La infraestructura proporciona APIs para el envío de mensajes básicos, el envío de mensajes seguros, el envío de mensajes confiables y el envío de mensajes negociados En una modalidad que se describe mas adelante, los APIs asociados han sido factonzados dentro de la jerarquía de espacios de nombre de una manera que han sido elaborados cuidadosamente para equilibrar la utilidad, la capacidad de uso, la capacidad de extensión y la capacidad de formación de versiones El espacio de nombre de sistema de archivo 206 pertenece al almacenamiento Proporciona tipos que permiten el almacenamiento y recuperación de información Ademas del sistema 132, se proporcionan herramientas de programación 210 para ayudar al desarrollador a construir servicios y/o aplicaciones de la Web Un ejemplo de las herramientas de programación 210, es el Visual Studio™, un paquete integrado de programas de herramientas de programación de lenguaje múltiple ofrecido por Microsoft Corporation
ESPACIOS DE NOMBRE DE RAIZ API La figura 3 muestra el espacio de nombre del subsistema de presentación 200 con mayor detalle En una modalidad, los espacios de nombre son identificados de acuerdo con la convención de denominación jerárquica, la cual eslabona los nombres, y son concatenados con los periodos Por ejemplo, el espacio de nombre del subsistema de presentación 200 esta identificado por el nombre de raíz "System Windows" Dentro del espacio de nombre "System Windows' esta otro espacio de nombre para el shell, identificado como "Sistema Ventanas Explorador" ("System Windows Explorer ), el cual identifica ademas otros espacios de nombre para controles conocidos como "System Windows Explorer Controls" Con esta convención de denominación en mente, lo siguiente proporciona una revisión general de la presentación de los espacios de nombre de los subsistemas 200, aunque podrían ser utilizadas otras convenciones de denominación con un efecto igual Tal y como se muestra en la figura 3, el subsistema de presentación 200 incluye espacios de nombres múltiples Los espacios de nombre mostrados en la figura 3 representan una modalidad particular del subsistema de presentación 200 Otras modalidades del subsistema de presentación 200 pueden incluir uno o mas espacio de nombre adicionales, o pueden omitir uno o mas espacios de nombres mostrados en la figura 3 El subsistema de presentación 200, es el espacio de nombre raíz para una gran parte de la funcionalidad de la presentación de la API 142 El espacio de nombre de controles 310 incluye controles utilizados para construir un despliegue en pantalla de la información tal como una interfase del usuario y clases que permiten a un usuario interactuar con una aplicación Los controles de ejemplo incluyen el control "Botón" que crea un botón en la pantalla, "RadioButton" que genera un botón de estilo de radio en la pantalla, 'Menú" que crea un menú en la pantalla, ToolBar' que crea una barra de herramientas en la pantalla, 'Image" que genera una imagen en la pantalla, y "TreeView" que crea una visualizacion jerárquica de la información Ciertos controles son creados anidando y acomodando elementos múltiples Los controles tienen un modelo lógico que oculta los elementos utilizados para crear los controles, simplificando de este modo el modelo de programación Los controles pueden ser diseñados y se les pueden poner temas por medio de un desarrollador o un usuario (por ejemplo, personalizando la apariencia y el comportamiento de los botones de mterfase del usuario) Algunos controles tienen componentes que se pueden ajustar que permiten que un individuo ajuste el estilo de los controles individuales Adicionalmente, los controles pueden ser sub-clasif icados y extendidos por los desabolladores de la aplicación y desabolladores de los componentes Los controles son presentados utilizando gráficos de vector de modo, que pueden ser dimensionados de nuevo para que cubran los requerimientos de una mterfase particular u otra pantalla Los controles tienen la capacidad para utilizar la animación para mejorar, por ejemplo, el sentimiento interactivo de una mterfase del usuario y mostrar acciones y reacciones Espacio de Nombre de Controles El espacio de nombre de controles 310 incluye uno o mas paneles, los cuales son controles que miden y acomodan a sus descendientes (por ejemplo, elementos anidados) Por ejemplo, un "DockPanel" es un panel que acomoda los descendientes, colocando a cada uno de los descendientes hacia la parte superior, izquierda, inferior o derecha de la pantalla y llena el espacio restante con otros datos Un panel particular puede alojar menus y barras de herramientas en la parte superior de la pantalla, una barra de estado en la parte inferior de la pantalla, una lista de carpetas en el lado izquierdo de la pantalla y llenar el resto del espacio con una lista de mensajes Tal y como se menciono anteriormente, el System Windows Controls Primitives es un espacio de nombre que incluye controles múltiples que son componentes que se utilizan generalmente por los desabolladores de los controles en el espacio de nombre System Windows Controls, o por los desabolladores que crean sus propios controles Los ejemplos de estos componentes incluyen "Thumb and RepeatButton" La "ScrollBar", la barra de desplazamiento es otro componente que es creado utilizando cuatro botones repetidos (uno para "linea superior", uno para "linea inferior", uno para pagina superior' y uno para 'pagina inferior ), y un "Thumb" para arrastrar la visión actual a otra localización en el documento En otro ejemplo, el "ScrollViewer" ( Visualizador de Desplazamiento) es un control creado utilizando dos 'ScrollBars" y un "ScrollArea' para proporcionar un área que se puede desplazar La lista siguiente contiene clases de ejemplo, expuestas por el espacio de nombre System Windows Controls Estas clases permiten que un usuario interactue con, por ejemplo, una aplicación a través de vanas capacidades de entrada y salida, asi como capacidades adicionales de pantalla • AccessKey - La AccessKey es un elemento FrameworkElement que envuelve un carácter, indicando que va a recibir decoraciones clave del teclado que indican al carácter como una nemónica del teclado Por omisión (default), la decoración de clave del teclado es un subrayado • Audio - Elemento de Audio • Border - Dibuja un borde, fondo o ambos alrededor de otro elemento • Button - Representa el componente estándar de un botón que reacciona inherentemente al evento de un Che • Canvas - Define un área dentro de la cual un usuario puede colocar explícitamente elementos descendientes por coordenadas en relación con el área Canvas • CheckBox - Se usa un CheckBox para proporcionar al usuario una opción, tal como cierto/falso El CheckBox permite que el usuario seleccione de una lista de opciones Los controles del CheckBox permiten al usuario seleccionar una combinación de opciones CheckedChanged EventArgs - Esta clase CheckedChangedEventArgs contiene información adicional acerca del evento CheckedChanged Event CheckStateChangedEventArgs - Esta clase de CheckStateChangedEventArgs contiene información adicional acerca del evento de
CheckStateChanged Event ChckEventArgs - Contiene información a cerca de un evento de Che ColumnStyle - Representa un objeto ColumnStyle que se puede cambiar ColumnStyles - Un objeto I List de un patrón que se puede cambiar que es una colección de elementos que se pueden Cambiar ComboBox - Control ComboBox ComboBoxItem - Control que implementa una partida que se puede seleccionar dentro de una ComboBox ContactPickerDialog - Permite que un usuario seleccione uno o mas contactos ContactPropertyRequest - Permite que una aplicación solicite información acerca de una propiedad del contacto a través de un ContactPickerDialog Esta clase no puede ser heredada ContactPropertyRequestCollection - Representa una colección de objetos ContactPropertyRequest ContactSelection - Información acerca de un contacto seleccionado del sistema de archivo Microsoft® Windows®, codificado como "WinFS o Microsoft Active Directory® ContactSelectionCollection - Representa una colección de objetos ContactSelection ContactTextBox - Un control de edición que soporta la selección de contactos o propiedades de los contactos ContactTextBoxSelectionChangedEventArgs -Argumentos para el evento
ContactTextBoxSelectionChanged ContactTextBoxTextChanged EventArgs - Argumentos para el evento ContactTextBoxTextChanged ContactTextBoxTextResolvedEventArgs - Argumentos para el evento TextResolvedToContact ContentChanged EventArgs - Los argumentos para el evento ContentChangedEvent ContentControl - La clase básica para todos los controles con una sola pieza de contenido ContentPresenter - El ContentPresenter es utilizado dentro del estilo de un control de contenido para indicar el lugar en donde va a ser agregado el contenido al árbol visual de los controles (plantilla cromatica) ContextMenu - Control que define un menú para que el usuario invoque sus selecciones ContextMenuEventArgs - Los datos enviados en un evento ContextMenuEvent Control - Representa la clase básica para todos los elementos interactivos del usuario Esta clase proporciona un conjunto de propiedades básicas para sus subclases Decorator - Clase básica para los elementos que aplican efectos en o alrededor de un solo elemento de descendencia, tal como un Border DockPanel - Define un área dentro de la cual se pueden acomodar los elementos de descendencia, ya sea horizontal o verticalmente, en relación entre ellos DragDeltaEventArgs - Esta clase
DragDeltaEventArgs contiene información adicional acerca del evento DragDeltaEvent FixedPanel - El FixedPanel es el elemento de raíz utilizado para documentos de formato fijo para que contengan paginas fijadas para la paginación El FixedPanel despliega en pantalla el contenido paginado de una pagina a la vez, o como una pila de paginas que se pueden desplazar FlowPanel - El FlowPanel es utilizado para interrumpir, envolver y alinear el contenido que excede la longitud de una sola linea El FlowPanel proporciona el salto de linea y las propiedades de alineación que pueden ser utilizadas cuando fluye el contenido de los contenedores Por ejemplo, es probable que Text exceda la longitud de una sola 11 nea Frame - Un área que puede cargar el contenido de otro árbol de marca Generator - El Generator es el objeto que genera un Ul en nombre de un ItemsControl que funciona bajo la supervisión de un GeneratorFactory GeneratorFactory - Un GeneratorFactory es responsable de generar el Ul en nombre de un ItemsControl Mantiene la asociación entre las partidas en la Item sCollection de control (vista aplanada) y los UlElements correspondientes El contenedor de partidas de control puede solicitar al formador un Generador, el cual efectúa la generación real del Ul GridPanel - Define el área de rejilla que consiste de columnas y filas HeaderltemsControl - La clase básica para todos los controles que contienen partidas múltiples y tienen un encabezado HorizontaIScroll Bar - La clase HorizontaIScrollBar HorizontalSlider - La clase HorizontalShder HyperLink - La clase HyperLink implementa el control de navegación El presentador por omisión (default) es el TextPresenter Image - Proporciona un medio fácil para incluir una imagen en un documento o una aplicación IncludeContactEventArgs - Argumentos pasados a los procesadores de gestión del evento ContactPickerDialog IncludeContact Item Collection - Mantiene una colección de partidas separadas dentro de un control Proporciona métodos y propiedades que hacen posible cambiar el contenido de la colección y obtener datos acerca del contenido ItemsChangedEventArgs - El evento ItemsChanged es originado por un GeneratorFactory para informar las distribuciones que han cambiado de la colección de partidas ItemsControl - La clase básica para todos los controles que tienen descendencia múltiple ItemsView - El ItemsView proporciona una vista plana de un ItemCollection KeyboardNavigation - La clase KeyboardNavigation proporciona métodos para la navegación lógica (Tab) y direccional (flecha) entre los controles que se pueden enfocar ListBox - Control que implementa una lista de partidas que se pueden seleccionar Listltem - Control que implementa una partida que se puede seleccionar dentro de una ListBox Menú - Control que define un menú para las selecciones para que el usuario invoque sus selecciones Menultem - Una partida descendiente del Menú Las Menultems pueden ser seleccionadas para invocar los comandos Las Menultems pueden ser separadores Las Menultems pueden ser el encabezado para los submenus Las Menultems pueden ser revisadas o sin revisar PageViewer - Representa un control compuesto para la visuahzacion de un documento que contiene un control de paginación, una barra de herramientas y un control de la barra de pagina PaginationCompleteEventArgs - Los argumentos para el evento PagmationCompleteEvent PaginationProgressEventArgs - Los argumentos para el evento PaginationProgressEvent Pane - Proporciona un medio para definir las propiedades de la ventana y un lenguaje de marca (por ejemplo, "XA L ) sin lanzar una nueva ventana
Panel - Proporciona una clase básica para todos los elementos de Panel Con el objeto de desplegar instantáneamente un elemento de Panel, usar la clase concreta derivada RadioButton - RadioButton implementa un botón de opción con dos condiciones cierta o falsa RadioButtonList - Este control sirve como un control de agrupación para los RadioButtons y es la pieza que maneja la exclusividad mutua del RadioButton El RadioButtonList se hereda del Selector El RadioButtonList es esencialmente un
SingleSelectionModeSelector y el concepto de Selección (del Selector), es desconectado de la propiedad Revisada del RadioButton que esta agrupando RowStyle - Patrón que se puede Cambiar, elementos que se pueden Cambiar RowStyles - Un objeto I List del patrón que se puede Cambiar que es una colección de elementos que se pueden Cambiar ScrollChangeEventArgs - El ScrollChangeEventsArgs describe un cambio en la condición de desplazamiento ScrollViewer - SelectedltemsCollection - Un contenedor para las partidas seleccionadas en un Selector SelectionChangedEventArgs - Las entradas a una selección cambiada del procesador de gestión de un evento SimpleText - El SimpleText es un texto de formato simple, de lineas múltiples de peso ligero que pretende utilizar los escenarios de interfase del usuario (Ul) El SimpleText expone varias de las mismas propiedades de formateo como Texto y con frecuencia puede ser utilizado para una ganancia de funcionamiento al costo de alguna versatilidad StyleSelector - El StyleSelector permite al escritor proporcionar una lógica de selección personalizada de estilo Por ejemplo, con un Error de programación de clase como Contenido, utiliza un estilo particular para los errores de programación Pri1 y un estilo diferente para los errores de programación Pri2 Un escritor de aplicación puede omitir el método SelectStyle en una clase derivada del selector y asignar un ejemplo de esta clase a la propiedad StyleSelector en la clase ContentPresenter Text - Representa un control de Texto que hace posible presentar formatos múltiples de Texto El Texto es utilizado mejor dentro de una aplicación Ul, los escenarios mas avanzados del texto se benefician del conjunto de características adicionales del TextPanel En la mayoría de los casos en donde se requiere un soporte de texto relativamente simple, el Texto es el elemento preferido debido a su naturaleza de peso ligero y rango de características
TextBox - Representa el control que proporciona una región que se puede editar que acepta el ingreso de texto TextChangedEventArgs - La clase
TextChanged EventArgs representa un tipo de RoutedEventArgs que son importantes para los eventos originados por el TextRange SetText() TextPanel - Textos de formatos, tamaños y dibujos Las lineas múltiples soportan el TextPanel del texto y formatos múltiples del texto ToolTip - Un control para desplegar en pantalla información cuando el usuario esta flotante en un área sobre un control ToolTipEventArgs - Datos enviados a un ToolTipEvent Transform Decorator - El Transform Decorator contiene una descendencia y es aplicable a una transformación especificada para el mismo El Transform Decorator implementa la lógica para medir y acomodar al descendiente en sus coordenadas locales (previo a la transformación) de modo que después de la transformación, el descendiente encaja estrechamente dentro del espacio del decorador y utiliza el área máxima Por lo tanto el descendiente no necesita conocer que ha sido aplicada una transformación al mismo U I ElementCollection - Una UlElementCollection es una colección ordenada de UlElements ValueChangedEventArgs - Esta clase
ValueChangedEventArgs contiene información adicional acerca del evento ValueChangedEvent VerticaIScrollBar - La clase VerticaIScrollBar VerticalShder - La clase VerticalSlider Video - Reproduce un archivo de video o audio que esta corriendo en un rectángulo especificado dentro del sistema actual de coordenadas del usuario VisibleChangedEventArgs - La clase
VisibleChanged EventArgs contiene información adicional acerca del evento VisibleChangedEvent
El espacio de nombre System Windows Controls también contiene vanas enumeraciones La siguiente lista contiene ejemplos de enumeraciones asociadas con el espacio de nombre System Windows Controls • CharacterCase - Especifica el caso de caracteres en un control de TextBox cuando el texto es escrito en el teclado · CheckState - Especifica la condición de un control, de modo que un cuadro de verificación puede ser revisado, no revisado o se ajusta a una condición indeterminada • ClickMode - Especifica cuando se debe detonar el evento del Clic • ContactControlPropertyPosition - Controla la posición y despliegue en pantalla de la propiedad del contacto • ContactPickerDialogLayout - Especifica la forma en que se deben desplegar en pantalla las propiedades seleccionadas del ContactPickerDialog • ContactPropertyCategory - Especifica que valor tratar como el valor por omisión (default) en la clase en donde una propiedad tiene valores múltiples para que el usuario las pueda seleccionar Por ejemplo, si es especificado "Work" como la categoría preferida cuando se solicita una propiedad de numero telefónico del ContactPickerDialog y el usuario selecciona un contacto con ambos un numero del trabajo y particular, el numero de telefono del trabajo aparece como la selección por omisión (default) Entonces el usuario puede utilizar el Ul para seleccionar el numero de telefono particular en vez del anterior ContactPropertyType - Especifica una propiedad de un contacto que el usuario puede solicitar al ContactPickerDialog ContactType - Especifica que tipos de contacto desplegar en la pantalla en el ContactPickerDialog Direction - Esta enumeración es utilizada por el GeneratorFactory y el Generator para especificar la dirección en la cual el generador produce el Ul Dock - Especifica la posición Dock de un elemento de descendencia dentro de un DockPanel GeneratorStatus - Esta enumeración es utilizada por el GeneratorFactory para indicar su condición KeyNavigationMode - El tipo de propiedad TabNavigation especifica la forma en que el contenedor moverá el enfoque cuando ocurre la navegación Tab enultemBehavior - Define los comportamientos diferentes que podría tener un enultem MenultemType - Define los tipos de colocación diferentes de los Menultems Orientation - Tipos de orientación del deslizador PageViewerFit - Selecciona la forma en que las paginas deben de ser acomodadas dentro de un área PageVie er'sClient PageVie erMode - Selecciona el modo de PageViewer actual reflejado en el despliegue del menú de la modalidad ScrollerVisibihty - El ScrollerVisibihty define el comportamiento de visibilidad de una barra de desplazam lento SelectionMode - Especifica el comportamiento de selección para el ListBox
"Position" es una estructura de ejemplo asociada con el espacio de nombre System Windows Controls Un usuario del Generador describe las posiciones utilizando esta estructura Por ejemplo Para iniciar la generación hacia delante del inicio de una lista de partidas, especificar la dirección (-1,0), y la dirección Forward Para iniciar la generación de un retroceso desde el extremo de la lista, especificar la posición (-1,0), y la dirección de Backward Para generar las partidas después del elemento con índice k, especificar la posición (k,0), y la dirección Forward La lista siguiente contiene delegados de ejemplo asociados con el espacio de nombre
System Windows Controls • CheckedChangedEventHandler - Este delegado es utilizado por los procesadores de gestión del evento CheckedChangedEvent • CheckStateChangedEventHandler - Este delegado es utilizado por los procesadores de gestión del evento CheckStateChangedEvent • ChckEventHandler - Representa los métodos que manejan un evento de Che • ContactTextBoxSelectionChangedEventHandler - Un procesador de gestión delegado para el evento ContactTextBoxSelectionChanged • ContactTextBoxTextChangedEventHandler - Un procesador de gestión delegado para el evento ContactTextBoxTextChanged • ContactTextBoxTextResolvedEventHandler - Un procesador de gestión delegado para el evento Text Resol ved ToContact • ContentChangedDelegate - Un delegado para el evento ContentChangedEvent • ContextMenuEventHandler - El tipo de recordatorio para manejar un evento de ContextMenuEvent DragDeltaEventHandler - Este delegado es utilizado por los procesadores de gestión del evento DragDeltaEvent IncludeContactEventHandler - Procesador de gestión para el evento ContactPickerDialog IncludeContact ItemsChangedEventHandler - El delegado para que lo utilicen los procesadores de gestión que reciben los argumentos ItemsChangedEventArgs Opened EventHandler - Procesador de gestión para el evento ContactPickerDialog Opened PaginationCompleteDelegate - Delegado para el evento PaginationCom pleteEvent PaginationProgressDelegate - Delegado para el evento PaginationProgressEvent ScrollChangeEventHandler - Este delegado es utilizado por los procesadores de gestión del evento ScrollChangeEvent SelectionChangedEventHandler - El tipo de delegado para el manejo de una selección de evento cambiado
TextChangedEventHandler - El delegado para que lo utilicen los procesadores de gestión que reciben el TextChangedEventArgs ToolTipEventHandler - Un tipo de recordatorio para manejar un evento ToolTipEvent • ValueChangedEventHandler - Este delegado es utilizado por los procesadores de gestión del evento ValueChangedEvent • VisibleChangedEventHandler - Este delegado es utilizado por los procesadores de gestión del evento
VisibleChangedEvent
Otro espacio de nombre,
System Windows Controls Atoms, es un sub-espacio del espacio de nombre System Windows Controls El System Windows Controls Atoms incluye controles asociados, argumentos de eventos y procesadores de gestión de eventos La lista siguiente contiene los ejemplos de las clases asociadas con el espacio de nombre System Windows Controls Atoms • PageBar - Representa un control de paginación que se puede desplazar • PageElement - Produce una pagina especifica de un contenido paginado La pagina para ser presentada es especificada por la propiedad PageSource • PageHoveredEventArgs - El PageHovered EventArgs proporciona información acerca de en donde esta flotante el señalador del ratón • PageScrolledEventArgs - El PageScrolledEventArgs contiene información que pertenece al evento PageScrolledEvent • PageSelectedEventArgs - El PageSelectedEvent es encendido cuando se hace una selección nueva de rango de fila/columna · PageSelector - El PageSelector permite que el usuario seleccione un rango de filas/columnas de paginas que van a ser desplegadas en pantalla • PageSource - Identifica la fuente del contenido que va a ser paginado También proporciona propiedades y métodos para el formateo del contenido paginado La siguiente lista contiende delegados de ejemplo asociados con el espacio de nombre
System Windows Controls Atoms • PageHoveredEventHandler - Este delegado es utilizado por los procesadores de gestión del evento
PageHoveredEvent • PageScrolledEventHandler - Este delegado es utilizado por los procesadores de gestión del evento PageHovered · PageSelectedEventHandler - Este delegado es utilizado por los procesadores de gestión del evento PageSelectedEvent
Un nombre de espacio System Windows Controls Primitives es otro sub-nombre del espacio de nombre System Windows Controls Tal y como se menciono anteriormente, las Primitivas incluyen sub-espacios de nombre que incluyen controles que pretenden ser usados como primitivas por otros controles complejos La lista siguiente contiene ejemplos de clases asociadas con el espacio de nombre System Windows Controls Primitives • ButtonBase - Cuando son sobrecontroladas en una clase derivada, definen los eventos importantes y propiedades y proporcionan a los procesadores de gestión los eventos de entrada relevantes • Popup - Un control que crea una ventana de salida que contiene el contenido • RangeBase - Representa la clase básica para los elementos que tienen un rango especifico Los ejemplos de dichos elementos son las barras de desplazamiento y las barras de progreso Esta clase define los eventos y propiedades importantes y proporciona los eventos a los procesadores de gestión • RepeatButton - El control RepeatButton agrega semánticas de repetición de cuando ocurre el evento de Che • ScrollArea - El ScrollArea es el elemento efectivo para el desplazamiento Contiene el contenido que sujeta y proporciona propiedades para exponer la compensación y la extensión del contenido También proporciona un manejo de entrada por omisión (default), de modo que el desplazamiento puede ser operado programáticamente, o por medio del teclado o la rueda del ratón • ScrollBar - La clase ScrollBar • Selector - La clase básica para los controles que seleccionan las partidas de entre la descendencia
• Slider - La clase Shder • Thumb - El control thumb hace posible la funcionalidad básica del movimiento de arrastre para las barras de desplazamiento, y el nuevo dimensionamiento de las ventanas La lEnsureVisible" es una interfase de ejemplo asociada con el espacio de nombre
System Windows Controls Primitives La I EnsureVisible es implementada en una vista para desplazar/mover una visual descendiente en una vista La lista siguiente contiene enumeraciones de ejemplo asociadas con el espacio de nombre
System Windows Controls Primitives • ArrowButtonStates - • CloseModeType - Describe la forma en que se debe de comportar una aparición repentina para los diferentes eventos del ratón • Part - La enumeración Part es utilizada para indicar el uso semántico de los controles que forman la barra de desplazamiento • PartStates - Visiones de la Parte ScrollBar · PlacementType - Describe en donde debe de ser colocada una aparición repentina en la pantalla • SizeBoxStates - Espacio de Nombre Documents Un espacio de nombre de documentos 312 es una colección de elementos de semántica y formateo que son utilizados para crear documentos ricos semánticamente y formateados semánticamente En una modalidad, un "elemento" es una clase que es usada principalmente en conjunto con una jerarquía de elementos (a la que nos referimos como "árbol') Estos elementos pueden ser interactivos (por ejemplo, recibir ingresos del usuario por medio del teclado, ratón u otro aparato de entrada), puede producir imágenes u objetos, y puede ayudar con el acomodo de otros elementos Los elementos de ejemplo incluyen un elemento de "Bloque" que implementa un bloque genérico, un elemento de "Cuerpo" que representa el contenido que incluye el cuerpo de una tabla, un elemento de "Celda" que contiene datos tabulares dentro de una tabla, un elemento de "Encabezado" que representa el contenido incluido en el encabezado de una tabla, y un elemento de "Salto de Pagina" que es utilizado para saltar el contenido en paginas múltiples La lista siguiente contiene las clases de ejemplo expuestas por el espacio de nombre
System Windows Documents • Adapti eMetricsContext - El AdaptiveMetricsContext proporciona el elemento raíz para los documentos de formato de flujo adaptable Una vez que se ha encapsulado un panel descendiente en un elemento AdaptiveMetncsContext, el documento del panel es procesado por la Maquina de Lectura de Métrica (RME) El tamaño del panel de descendencia es utilizado para calcular el numero y tamaño de cualesquiera columnas, asi como los tamaños óptimos de la fuente y alturas de lineas • Block - Implementa un elemento de bloque genérico que no induce el comportamiento de presentación por omisión (default) • BlockElement - Implementa una clase básica para todos los elementos de Bloque • Body - Representa el contenido que comprende el cuerpo de un elemento de Tabla • Bold - Implementa un elemento de Negritas derivado de Inline • BreakRecord - Almacena la información necesaria para continuar formateando el contenido paginado en los saltos de pagina Hereda de esta clase el proporcionar el soporte de paginación Esta es una clase abstracta Cell - Las celdas contienen datos tabulares dentro de una Tabla Los elementos de Celda están contenidos dentro de una Fila CelICollection - Colección ordenada de las celdas de la tabla Column - El elemento de columna es utilizado para distribuir el contenido de un GridPanel o Tabla ColumnCollection - Una Colum nCollection es una colección ordenada de Columnas ColumnResult - Representa una información relacionada con la vista de la columna ContainerParagraphResult - Proporciona acceso a parámetros de distribución calculados para un objeto de Párrafo el cual contiene solamente otros objetos de Párrafo ContentPosition - Representa la posición del contenido dentro de un párrafo Hereda de esta clase el describir la posición del contenido asociado Esta es una clase abstracta Document - El proposito de la clase de Document es desacoplado del contenido de un documento del Ul "enrome" que lo rodea El Desacoplamiento" significa que se puede ser el autor de un documento sin pensar acerca de (y sin obligarse al) su Ul La clase Documento mantiene en el contenido del documento, generalmente un TextPanel o un FixedPanel y sus descendientes Un árbol visual (por omisión (default), un Visuahzador de Pagina) esta asociado con este elemento a través del mecanismo de diseño del control WPP DocumentPage - Representa la información de distribución para un control asociado de una pagina de un documento sujeto a paginación Implementar la descripción de la información de la distribución de estos controles se hereda de esta clase Esta es una clase abstracta DocumentPageParagraphResult - Proporciona acceso a parámetros calculados de distribución para los objetos afectados por la paginación FindEngine - Clase básica para encontrar algoritmos
FindEngineFactory - Encuentra el elaborador de algoritmos FixedPage - Proporciona acceso a una sola pagina de contenido dentro de un documento de distribución de formato fijo Footer - Representa el contenido que comprende el pie de pagina de un elemento de Tabla Header - Representa el contenido que comprende el encabezado de un elemento de Tabla Heading - Implementa un elemento de nivel de bloque que presenta el texto común encabezado HyphenationDictionary - Un HyphenationDictionary representa un diccionario con el proposito de proporcionar el soporte para las uniones con guiones dentro de las aplicaciones Puede contener, tanto un diccionario en linea como una referencia a un diccionario externo El diccionario en linea tiene una prioridad mas alta y sera aplicado antes de las entradas en el diccionario externo Hyphenator - El objeto Hyphenator mantiene referencia a los datos de colocación de guiones dentro del HyphenationDictionary y también realiza la colocación de guiones Inline - Implementa un elemento genérico Inline que no induce comportamiento de presentación por omisión (default) alguno InhneElement - Implementa un elemento genérico en linea como la clase básica para todos los elementos en linea Italic - Implementa un elemento Itálico derivado del Inline LmeBreak - Representa un elemento de marca que fuerza un salto de linea LineResult - Proporciona el acceso a la información calculada de una linea de texto List - Implementa un elemento de List Las listas son elementos de nivel de bloque diseñados para ser formateados con marcadores tales como viñetas o numeración ListElementltem - Implementa una ListElementltem , el cual soporta marcadores tales como viñetas o num eracion Note - Implementa un elemento Note, el cual es análogo al elemento de notas en el HTML PageBreak - Representa un elemento de marca utilizado para saltar por el contenido de varias paginas PageDescnptor - Implementa el PageDescriptor, el cual almacena la información necesaria para crear una distribución paginada Paragraph - Implementa un elemento de nivel de bloque para presentar el texto en un párrafo El comportamiento de presentación es análogo al del elemento de párrafo en el HTML ParagraphResult - Proporciona el acceso a los parámetros de distribución calculados para un objeto de Párrafo Row - Define una fila dentro de un GridPanel o elemento de Tabla RowCollection - El RowCollection representa una colección ordenada de Filas RowGroup - Especifica las propiedades por omisión (default) para un grupo de filas en una Tabla o un GridPanel Section - Implementa un elemento genérico de contenedor El comportamiento de presentación es análogo al del elemento div en el HTML SmalICaps - Implementa un elemento SmalICaps en linea Las SmalICaps son formas tipográficas que presentan versiones de mayúsculas pequeñas de letras para el énfasis, o como en un titulo Subscript - Representa un elemento Subscript en linea Los caracteres de Subíndice son escritos inmediatamente debajo, debajo y a la izquierda, o debajo y a la derecha de otros caracteres Superscript - Representa un elemento Superscnpt en linea Los caracteres Superscnpt generalmente son letras o números y se presentan inmediatamente arriba, arriba y a la izquierda o arriba y a la derecha de otros caracteres Table - La Tabla es utilizada para desplegar datos complejos en una forma tabular utilizando un lenguaje de marca (por ejemplo, "XAML") TextArray - API básico para el acceso y manipulación del texto TextChanged EventArgs - El TextChangedEventArgs define los argumentos del evento enviados cuando es cambiado un TextArray TextElement - El TextElement proporciona facilidades de TextRange para el TextTree Este es un TextRange inmutable continuo con puntos finales fijos Proporciona un soporte de
ContentElementlnput Enfoque y Clasificación de eventos También proporciona un soporte de propiedad de DependencyObject TextNavigator - Puede enumerar el contenido del texto Implementa un TextPosition movible También se puede mover por medio de la ejecución del texto, o ser colocado en una localización conocida en el texto TextParagraphResult - Proporciona acceso a los parámetros de distribución calculados para el texto, incluyendo objetos y figuras flotadas TextPosition - Este es un objeto que representa una cierta posición en un TextArray Un objeto compacto que representa una posición en el texto mantiene automáticamente la posición cuando cambia el texto Las operaciones de comparación son solamente aplicables a posiciones dentro del mismo TextArray (mismo Contexto), TextPosition puede ser estático o movible Es una propiedad que se puede cambiar que nos dice el tipo de posición TextRange - El TextRange es una clase abstracta que proporciona una asociación genérica de cero o mas sub-rangos con propiedades La manipulación de sub-rangos es definida en las clases derivadas TextRangeMovable - El TextRangeMovable es una clase abstracta para los TextRanges que se pueden mover Agrega la capacidad de mover los puntos de inicio y finales basados en los TextUnits TextTreeChanged EventArgs - El
TextChanged EventArgs define los argumentos del evento enviados cuando es cambiado un TextArray TextTreeDumper - El TreeDumper es una clase de prueba del árbol que es publica debido a problemas para empaquetarla TextTreeNavigator - Este es un objeto que representa cierta posición movible en un TextTree Es una implementacion especifica del TextNavigator para utilizarla solamente en el TextTree TextTreePosition - Este es un objeto que representa una cierta posición inmutable en un TextTree Es una implementacion especifica del TextPosition para utilizarla solamente en el TextTree • TextTreeRange - Proporciona facilidades TextRange para el TextTree Es un TextRange continuo mutable, con puntos finales movibles • TextTreeRangeContentEnumerator - Enumerador en descendientes de objetos directamente bajo un TextTreeRange • TextUnit - Unidad extensible de navegación de texto · TextUnits - Son unidades de texto utilizadas generalmente para el TextPosition y el TextRange • Typography - Proporciona el acceso a un conjunto rico de propiedades de tipografía OpenType • U I ElemetParagraphResult - El ParagraphResult es un párrafo el cual esta compuesto completamente de un
UlElement Utilizado para los Flotadores, Figuras, y UlElements de nivel de bloques incrustados • Underhne - Representa un elemento de Subrayado derivado del InhneElement La lista siguiente contiene ejemplos de interfases asociadas con el espacio de nombre
System Windows Documents • I DocumentsContentHost - Implementa esta interfase en una computadora de contenido de modo que los descendientes de la computadora pueden notificar a la computadora central cuando es cambiado el contenido IDocumentFormatter - Implementa esta interfase en un elemento para proporcionar soporte para las características del documento, tales como la paginación ITextDocumentResult - Implementa esta interfase para mantener la información de columnas para un documento ITextParagraphResult - Implementa esta interfase para proporcionar información de texto y colocación para los párrafos del texto
La lista siguiente contiene enumeraciones de ejemplo asociadas con el espacio de nombre
System Windows Documents • ElementEdge - Este identifica la orilla de un objeto en donde esta localizada una TextPosition • FindAdvancedOptions - Las opciones de búsqueda avanzada utilizados por el FindAlgonthm
(iniciahzacion de búsqueda) y las clases TextRangeMovable/TextSelection (ejecución de búsqueda simplificada) • FindOptions - Las opciones de búsqueda simplificadas utilizadas por el TextBox Encuentra los métodos LogicalDirection - La LogicalDirection define una dirección lógica para el movimiento en el texto Esta es utilizada para determinar en donde se moverá una TextPosition cuando el contenido es insertado en la TextPosition TextArrayRunType - Identifica la operación en donde esta localizada la TextPosition, tomando en cuenta la LogicalDirection TextChangeOptions - Cambios posibles en el texto para CanChangeText TextMoveOptions - Esta opción es para el control de movimiento del TextNavigator mediante condiciones de especificación para interrumpir la navegación
La lista siguiente contiene delegados de ejemplo asociados con el nombre de espacio
System Windows Documents • ObjectCloneDelegate - Un método de Recordatorio para proporcionar un clon o copia de un DependencyObject cuando esta siendo copiada o movida una porción de un TextArray • TextChangedEventHandler - El delegado TextChangedEventHandler es invocado con TextChangedEventArgs cada vez que el contenido es agregado a, o eliminado del TextTree
Espacio de Nombre de Formas El nombre de espacio de formas 314 es una colección de elementos del vector de gráficos utilizados para crear imágenes y objetos El uso de los elementos del vector de gráficos permite que los elementos sean dimensionados de nuevo fácilmente para que cubran con los requerimientos de una mterfase particular o un aparato de pantalla La lista siguiente contiene las clases de ejemplo expuestas por el nombre de espacio System Windows Shapes
• Ellipse - Dibuja un ovalo • Glyphs - Representa una forma de pictograma en un lenguaje de marca tal como "XAML Los pictogramas son utilizados para representar las fuentes • Line - Dibuja una linea recta entre dos puntos • Path - Dibuja una sene de lineas y curvas conectadas • Polygon - Dibuja un polígono (una serie conectada de lineas que forma una forma cerrada) • Polylme - Dibuja una sene de lineas rectas conectadas • Rectangle - Dibuja un rectángulo • Shape - Una clase abstracta que proporciona la funcionalidad básica para los elementos de forma, tales como el ovalo, el polígono y el rectángulo
Espacio de Nombre de Datos Un espacio de nombre de datos 316 incluye clases e interfases utilizadas para enlazar propiedades de elementos a las fuentes de datos, clases de fuentes de datos e implementaciones especificas de datos de colecciones de datos y visualizaciones Estas clases e interfases son también utilizadas para manejar las excepciones en los ingresos de datos y permiten la creación del tiempo de operación de una mterfase del usuario basada en información en varias fuentes de datos Los datos pueden ser desplegados en pantalla en una forma textual o pueden ser utilizados para cambiar el formato de la pantalla, tales como mostrando en pantalla cantidades en dolares en rojo si son negativas Las clases de ejemplo incluyen una clase de "Enlace que representa un objeto de enlace de declaración que maneja los enlaces entre la mterfase del usuario de propiedad dinámica y los datos fuente y una clase "XmIDataSource que sirve como una fuente de datos para el enlace de datos a los nodos de contenido X L Las aplicaciones orientadas a los objetos generalmente representan datos por clases que definen, tanto el valor de una pieza de datos como las operaciones que pueden ser realizadas en esos datos El termino "partida de datos" se refiere a uno de dichos objetos Las aplicaciones pueden manejar partidas de datos individuales o colecciones de partidas de datos Ellas pueden utilizar partidas de datos de tres maneras (a) convertir los datos de las fuentes externas tales como sistemas de archivo, servidores remotos, bases de datos, etc , en partidas de datos correspondientes en la memoria, y convertir de nuevo las partidas de datos modificadas en la forma esperada por estas fuentes, (b) operar en las partidas de datos utilizando una combinación de céntrica de datos y lógica céntrica de aplicación, (c) presentar los datos incorporados por las partidas de datos al usuario a través de una interfase del usuario El espacio de nombre de datos 316 proporciona el soporte para la primera y tercera de estas tareas La primera tarea, la obtención de datos de las fuentes externas, es soportada por los objetos "data source Un objeto de fuente de datos generalmente es definido como un recurso ancho de aplicación o ancho de pagina y sirve como la entrada para los datos Las fuentes de datos implementan una interfase IDataSource, la cual define un mecanismo estándar por medio del cual las clases en los espacios de datos adquieren el acceso a los datos Un objeto de fuente de datos particular implementa la lógica para recuperar los datos reales utilizando mecanismos apropiados para la fuente particular En una modalidad, el espacio de nombre incluye cuatro fuentes de datos 1 XmIDataSource, para recuperar los datos representados como XML 2 SqlDataSource, para recuperar datos de las bases de datos SQL tales como el Microsoft
SQLServer 3 WinFSDataSource, para recuperar datos del servicio WmFS 4 ObjectDataSource, para recuperar datos de un objeto arbitrario definido por la aplicación Las aplicaciones también pueden definir sus propias clases de fuentes de datos que están diseñadas para fuentes de propósitos especiales Una clase de fuente de datos es responsable de recuperar los datos de una fuente externa y convertirlos en una o mas partidas de datos adecuadas para utilizarlas por las clases de enlaces Si se necesita una colección de partidas de datos, la aplicación puede utilizar cualesquiera clases de colección estándar del Sistema Net, tales como una Array, ArrayList, Hashtable, etc , cualesquiera clases de colección céntricas de datos del espacio de nombre System Data tales como Dataset, o la clase de colección céntrica de datos del espacio de nombre, tal como Array ListDataCollection Las ultimas clases soportan notificaciones de cambio, es decir, cuando cambia la aplicación la colección agregando una partida, eliminando una partida, clasificando la colección, etc , la colección envía una notificación Las clases de enlace escuchan estas notificaciones y actualizan automáticamente la interfase del usuario para reflejar el cambio Una vez que los datos han sido convertidos en partidas de datos en la memoria, la aplicación puede realizar computaciones utilizando las partidas y pueden modificar las partidas como resultado de las computaciones Estas acciones se llevan a cabo utilizando una combinación de operaciones céntricas de datos (definida por las clases de partidas de datos) y operaciones céntricas de aplicación (definidas por la aplicación misma) Las acciones pueden ser iniciadas automáticamente por la aplicación o en respuesta a una acción del usuario No es necesario un soporte especial o cooperación del espacio de nombre de datos, proporcionando de este modo una separación limpia de la lógica y presentación dentro de la aplicación Una tercera tarea relacionada con los datos, que presenta los datos a través de la interfase del usuario es soportada por las clases de "enlace" para el espacio de nombre de datos Estas clases hacen posible que la aplicación describa la correspondencia (enlace) entre una propiedad de partidas de datos (la fuente) y una propiedad de mterfase del usuario (el objetivo) El termino enlace de datos (o simplemente enlace) se refiere al establecimiento de dicha correspondencia Por ejemplo, una aplicación puede seleccionar enlazar datos a la propiedad de Texto de un control Textbox a la propiedad CustomerName de la partida de datos Habiéndolo hecho de este modo, el control desplegara automáticamente en pantalla el nombre del cliente, actualizando la pantalla siempre que la partida de datos cambia la aplicación, y actualizando la partida de datos siempre que el usuario escribe un nuevo nombre en el control Este tipo de correspondencia es descrito utilizando la clase de Enlace es implementada la clase de Enlace Cualquier numero de propiedades Ul pueden compartir la misma descripción (Enlace), pero cada propiedad tiene su Enlace único propio que sostiene la condición para ese caso particular La descripción incluye la siguiente información acerca de la correspondencia deseada • Path - el nombre de la propiedad de partidas de datos para utilizarla como la fuente del enlace Este puede ser un nombre de propiedad simple, o una expresión mas complicada que comprende sub- objetos e mdexadores (por ejemplo, cuando la propiedad fuente tiene un valor de tipo complejo) tal como "ShippingAddress Lme[2]" Cuando la fuente de datos es XML, la trayectoria es una expresión XPath BmdType - si la correspondencia es de una vía, dos vías o una a la vez En un enlace de una vía, los cambios a las partidas de datos ocasionan actualizaciones a la propiedad de la interfase del usuario, los datos fluyen por una vía - de la fuente al objetivo En el enlace de dos vías, los datos fluyen en ambas direcciones, ademas del comportamiento de una vía, los cambios a la propiedad de la interfase del usuario ocasionan actualizaciones de la propiedad de la partida de datos En el enlace de una a la vez, la propiedad de la partida de datos es utilizada para iniciahzar la propiedad de interfase del usuario, pero los cambios no se propagan en dirección alguna Source - una descripción de donde obtener la partida de datos fuente Esta puede ser de un objeto de fuente de datos, o de algún otro elemento de la interfase del usuario o del valor de la propiedad DataContext de los elementos objetivos UpdateType - cuando actualizar la propiedad fuente en un enlace de dos vías en uno de Inmediato, OnLostFocus, o Explícito Las actualizaciones Inmediatas suceden tan pronto como cambia la propiedad de la interfase del usuario Las actualizaciones OnLostFocus son demoradas hasta que el elemento objetivo pierde el enfoque del teclado - esto es apropiado para el control TextBox, para evitar el gasto de actualización después de cada golpe al teclado Las actualizaciones explícitas suceden cuando la aplicación las invoca explícitamente Transformer - un objeto que implementa una interfase IDataTransformer Este objeto le da a la aplicación un modo para modificar el valor de la partida de datos antes de utilizarla en la interfase del usuario Las modificaciones pueden ser una conversión de tipo simple (por ejemplo, en un enlace de la propiedad de Background a la propiedad de datos BalanceOwed, la aplicación se puede convertir en un fondo rojo en un saldo negativo y en verde en un saldo positivo), o a una conversión especifica de la aplicación (por ejemplo, en el enlace de la propiedad Text a la propiedad de datos NetWorth, la aplicación puede desplegar en pantalla la palabra "Rico", si el NetWorth excede de $1M, "Bourgeois" si el NetWorth reside entre $100K y $1M, y "Poor" si el NetWorth es menor de $100K) Los Transformers son todavía una herramienta poderosa simple que ayuda a separar la presentación de los datos Todos los enlaces excepto el de uno a la vez, dependen de haberlos notificado cuando cambia la propiedad de datos, de modo que el cambio correspondiente se puede hacer a la interfase del usuario Las clases de enlace reconocen la propiedad IPropertyChange (del espacio de nombre System ComponentModel), como un medio para implementar las notificaciones requeridas La tabla siguiente es una lista de los elementos expuestos por el espacio de nombre System Windows Data
Clases ArrayListCollectionView Encapsula el soporte de edición de colección para la clase de colección ArrayListDataCollection Esta clase no puede ser heredada
Proporciona una implementacion integrada de una colección de datos de lista de matriz con una mterfase de visión de colección subyacente También implementa ICollectionChange para
ArrayListDataCollection notificar una cuantificacion cuando se agregan partidas, se eliminan partidas o es regenerada toda la colección total
Representa un objeto de declaración de enlace, utilizado para administrar los enlaces entre una mterfase del usuario de propiedad dinámica (Ul) y los datos fuente
Proporciona acceso a un caso de un solo tiempo
Binding de ejecución de enlace Esta clase no puede ser heredada Una clase de visión de colección utilizada para las visiones de datos Microsoft® BindingListCollectionView Active® Data Objects (ADO)
Los objetos de esta clase mantienen una estrucutra de colección existente—por ejemplo, una ArrayListDataCollection u otro CollectionContainer DataSet dentro del ItemCollection
Implementa una visión de colección que incluye revisiones para la afinidad de ContextAffinityCollectionView contexto
Soporta la referencia de objetos de los objetos que están siendo utilizados como contextos de datos para un enlace Esta DataContextObjectRef clase no puede ser heredada
Soporta la referencia de objetos para las fuentes de datos Esta clase no puede ser DataSourceObjectRef heredada
Encapsula los argumentos para los eventos de transferencia de transferencia de datos Los eventos son enrutados eventos que son manejados específicamente por un DataTransferEventArgs procesador de gestión designado basado en el delegado DataTransferEventHandler
Representa una referencia de objeto para un elemento, siendo especificado el objeto por
ElementObjectRef su ID del elemento Esta clase no puede ser heredada Representa una referencia de objeto
ExplicitObjectRef explícita a un elemento Esta clase no puede ser heredada Implementa una visión de colección para las
ListCollectionView colecciones basadas en la IList Sirve como una fuente de datos para el enlace de datos Las partidas de datos que
ObjectDataSource se pueden enlazar pueden ser especificadas como tipos de tiempo de ejecución de lenquaie común La clase abstracta que es utilizada como la clase de origen de los ElementObjectRef,
ObjectRef ExplicitObjectRef, y TypeObjectRef Los objetos de esta clase mantienen la colección de los parámetros nombrados
ParameterCollection (con sus valores correspondientes) para un SqlDataSource Esta clase representa una condición de una
QueryCommand sola selección para ser presentada a la base de datos Encapsula los argumentos pasados ya sea en el evento RefreshCompleted o en la
RefreshCompletedEventArgs ObjectDataSource, o en el evento RefreshCompleted de la XmlDataSource
Una lista de comandos Sql y los nombres de
SqlCommandList las tablas que deben utilizarse para llenarlas SqlDataSource tiene los datos de un SqlDataSource Servidor Microsoft SQL para utilizarlos en el enlace de datos Permite que la referencia de recursos para una clase transformadora que es definida
TransformerSource como un código detras de la aplicación actual Soporta las referencias de objetos por tipo
TypeObjectRef Esta clase no puede ser heredada La WinFSDataSource facilita la clase de los WinFSDataSource datos almacenados en el WmFS con las aplicaciones Avalon Clase XmlDataNamespaceManager Utilizada para declarar los espacios de
XmlDataNamespaceManager nombre que van a ser utilizados en las solicitudes de enlace XPath de datos Xml Sirve como una fuente de datos para el enlace de datos a los nodos de contenido de XmlDataSource Lenguaje de Marca Extensible (XML) Declara un espacio de nombre individual
XmlNamespace dentro de una fuente de datos XML
Interfases Usado para crear clases que declaran los IContains cntenos de filtración para las vistas de colección Soporta la creación de objetos de fuente de datos Los objetos de fuente de datos son
IDataSource utilizados para la representación común de datos para el enlace de datos Proporaona métodos que hacen posible que
IDataTransformer la transformación del lado del cliente de los datos enlazados
Enumeraaones Describe propiedades especiales de un enlace Para el uso de lenguaje de marca (nombrado por clave "XAML") "Longhorn" para las Declaraciones que Utilizan el
BindFlags Enlace de datos Este BindType para la enumeración que es utilizada para especificar el tipo de enlace (una vía, dos vías, y asi sucesivamente) BindStatus Condición de un Enlace Descnbe la forma en que los cambios transferirá los valores de datos a y desde las
BindType propiedades fuente y las propiedades objetivo de un enlace SqlDataSource ode La enumeración de los modos posibles que puede tener la SqlDataSource Este modo determina que clasificación de datos es regresada cuando la aplicación recupera el valor de una propiedad de Datos Especifican cuando se actualizan las fuentes de datos (transferencia de datos de objetivo a fuente) debe ocurnr en un enlace Estableciendo estos valores solamente
UpdateType serán importantes si un BindType de enlace es ajustado a Dos Vías (o izquierdo como por omisión) Delegados Representa el método que maneja el evento DataChanged ongmado por una fuente de
DataChangedEventHandler datos que implementa una IDataSource
DataTransferEventHandler Representa el método que maneja un evento de transferencia de datos ongmado por un Enlace RefreshCompletedEventHandler Representa el método que maneja los eventos ObjectDataSource RefreshCompleted y XmIDataSource RefreshCompleted
Espacio de Nombre de Medios Un espacio de nombre de medios 318 proporciona varias clases de medios Los desarrolladores de la aplicación, asi como los desarrolladores de los componentes, pueden utilizar estas clases para desarrollar varias funcionalidades de presentación Las clases de ejemplo en los espacios de nombre de medios 318 incluyen una clase "ImageEffect" que permite ciertos efectos de formación de imágenes (por ejemplo, difuminacion y escala de grises) y una clase de "Brocha que proporciona un mecanismo para llenar un área utilizando colores solidos, gradientes, imágenes, video y similares El espacio de nombre de medios 318 incluye un sub-espacio de nombre System Windows Media Animation que incluye servicios que permiten que un desarroMador anime las propiedades y coordine un conjunto de animaciones con un conjunto de lineas de tiempo Una animación es un objeto que cambia un valor en un periodo de tiempo Los efectos de animación incluyen el movimiento de un objeto en la pantalla, el cambio de tamaño, forma o color de un objeto Se proporcionan clases múltiples de animación para implementar varios efectos de animación Los efectos pueden ser logrados asociando una animación con un valor de propiedad del elemento Por ejemplo, para crear un rectángulo que aparece y se desvanece de la visión, están asociadas una o mas animaciones con la propiedad de opacidad del rectángulo El espacio de nombre de medios 318 también incluye un sub-espacio de nombre
System Windows Media TextFormatting que proporciona varios servicios de texto Por ejemplo, una maquina de texto "TextFormatter" proporciona servicios para los saltos de lineas de textos y el formateo de textos presentados en una pantalla El 'TextFormatter" tiene la capacidad de manejar diferentes formatos de caracteres de textos y estilos de párrafos, asi como manejar una distribución internacional de texto La siguiente tabla enumera los elementos de ejemplo expuestos por el espacio de nombre System Windows Media
Clases
ArcSegment Representa un arco elíptico entre dos puntos AudioData Hace posible la reproducción de archivos de audio de acuerdo con la condición de un nodo de tiempo AudioData Converter AudioDataConverter BezierSegment Representa una curva cubica de Bezier dibujada entre dos puntos Brush Proporciona un significado genérico para llenar un área utilizando colores solidos (SohdColorBrush), gradientes (LmearGradientBrush, RadialGradientBrush), imágenes de video (ImageBrush), y mas BrushConverter Utilizado para convertir un objeto de Brocha en y desde otro tipo de objeto Brusher Implementa un conjunto de colores solidos previamente definidos Representa una linea que conecta el ultimo punto del objeto PathFigure con su punto de
CloseSegment partida Filtro para enumerar los codees Solamente CodecFilter estos codees que coinciden con las propiedades serán enumeradas Información acerca de un codee especifico y una fabnca para crear un codee Esto es
Codeclnfo regresado del enumerador codee
ColorCollection ColorCollectionConverter - Clase convertidora para convertir casos de otros
ColorCollectionConverter tipos a y desde los casos ColorCollection
ColorContext ColorConverter Utilizado para convertir un objeto de Color en y desde otro tipo de objeto Colors Implementa un conjunto de colores previamente definidos ContainerVisual Maneja una colección de objetos Visuales
DashArrays DashArrays - La clase DashArrays . es estática, y contiene propiedades para estilos de guión bien conocidos DoubleCollection DoubleCollectionConverter DoubleCollectionConverter - Clase convertidora para convertir casos de otros tipos a y desde casos DoubleCollection
Drawing Un dibujo es una lista de primitivas de 2 dimensiones Dra ingBrush DrawingBrush - Esto define el TileBrush en su contenido como un Dibujo DrawingContext Contexto de dibujo Visual que contiene el contenido gráfico que DrawingVisual va a ser dibujado Representa la geometría de un circulo u
ElhpseGeometry ovalo FontFamily Familia de fuentes La clase FormattedText es una parte del API del texto fácil Avalon MIL, el cual tiene por
FormattedText objeto a los programadores que necesitan agregar algún texto simple a una visual MIL
Una clase abastracta que proporciona la funcionalidad básica para todas las clases geométricas, tales como ElhpseGeometry, RectangleGeometry, y PathGeometry La
Geometry clase Geometry de objetos puede ser utilizada para sujetar, para la prueba por golpes, y para presentar datos gráficos de 2 Dimensiones Representa una colección de objetos
GeometryCollection Geometry GetPageEventArgs Clase GetPageEventArgs GlyphRun Clase de ejecución Glyph La fase física de la fuente que corresponde
GlyphTypeface a un archivo de fuente sin un disco
Una clase abstracta que descnbe un llenado de gradiente Las clases que se denvan de GradientBrush descnben modos diferentes
GradientBrush para interpretar la detenciones de gradientes GradientStop Descnbe la localización y color de un punto de transición en un gradiente Representa una colección de detenciones
GradientStopCollection de gradiente GradientStop HitTestParameters Esta es la clase básica para empacar juntos los parámetros para un paso de prueba por golpe HitTestResult Esta base regresa la visual que fue volteada durante el paso de prueba de golpe
Hwndlnterop Hwndlnterop HwndVisual HyphenationCandidate Describe un candidato Hyphenation ICCProfile Llena un área con una imagen Esta clase puede ser utilizada para especificar
ImageBrush imágenes como el llenado y fondo de los otros objetos ImageCodecCollection La clase de codees (real Codeclnfos) en el sistema ImageCodecEnumerator El enumerador para Image los cuadros El ImageColorTransform Realiza la administración de color en una tubería de
ImageColorTransform elaboración de imagen ImageData Contiene una imagen y los datos relacionados ImageDataBuilder Este objeto es utilizado para construir un objeto ImageData El ImageDecoder es un contenedor para los cuadros de imagen Cada cuadro de imagen es una ImageSource A diferencia del ImageSource ImageDecoder el NO es un objeto mutable y puede ser reiniciahzado
ImageDecoder para una comente diferente de imagen Sin embargo cualesquiera ImageSources (cuadros) que regresan deben de ser inmutables
ImageDecoderBmp El descodificador integrado Microsoft Bmp (Bitmap) ImageDecoderGif El descodificador integrado Microsoft GIF ImageDecoderlcon El descodificador integrado Microsoft Icón
ImageDecoderlnternal Solo para uso interno I mageDecoderJ peg El descodificador integrado Microsoft Jpeg
ImageDecoderPng El descodificador integrado Microsoft PNG
ImageDecoderTiff El descodificador integrado Microsoft Tiff Esta clase de ImageEffect es la clase básica para todos los efectos de imagen (difummacion escala de gnses etc ) Es posible que un efecto no tenga entradas algunas pero un efecto debe de tener por lo
ImageEffect menos una salida Estas implementaciones de cosas por omisión asumen esto Si un efecto denvado se va a reproducir con una Salida/Salida asegurarse de que por lo menos se encuentre una
El efecto de difummacion Gaussiano Es una entrada simple un efecto de salida simple Alvertencia Si el efecto esta siendo escalado (por ejemplo Input ScaleX ó Input ScaleY no es 1) y Expand es cierto entonces es posible para las dimensiones
ImageEffectBIur de una salida más grandes o mas pequeñas que el PixelWidth y luego PixelHeight Ajusfar la memona intermedia de pixeles alimentados a una copia para evitar problemas
Este efecto puede hacer volar una imagen
ImageEffectFhpRotate en X o Y y girarla por múltiplos de 90 grados ImageEffectGammaCorrect Este efecto cambia la gama de una imagen
ImageEffectGlow Realiza un efecto de brillo Es una sola entrada, un solo efecto de salida Convierte una imagen en escala de grises
ImageEffectGrayscale Es una sola entrada, un solo efecto de salida ImageEffectNegate Niega una imagen Es una sola entrada y un solo efecto de salida lmageEffectSha en Unsharp mask Es una sola entrada, un solo efecto de salida ImageEffectSource ImageEffectSource implementacion de la clase ImageEffectSourceCollection Las salidas de los efectos de la colección de imágenes ImageEffectTint Tmt constructor Es una sola entrada, y un solo efecto de salida ImageEncoder ImageEncoder recolecta un conjunto de cuadros (ImageSource) con sus miniaturas y metadatos asociados, y los almacena a una comente especifica Ademas de las miniaturas y metadatos específicos del cuadro, también puede haber una miniatura y metadato de ancho de imagen (global), si el codee la soporta
I mageEncoderBmp Archivos de Codificador Integrados para el Bmp ImageEncoderGif Archivos de Codificador Integrados para Gif
ImageEncoderlnternal ImageEncoderlnternal recolecta un conjunto de cuadros (ImageSource) con sus miniaturas y metadatos asociados y los almacena a una comente especifica Ademas de las miniaturas y metadatos específicos del cuadro pueden haber también miniaturas y metadatos del ancho de la imagen (globales) si lo soporta el codee ImageEncoderJpeg Codificador integrado para archivos Jpeg ImageEncoderPng Codificador integrado para archivos Png ImageEncoderTiff Codificador integrado para archivos Tiff ImageExchangeMetaData Esta clase es utilizada para tener acceso y ajustar metadatos para ImageFiles los cuales tienen un metadato de estilo Exif Los etaDatos son almacenados como pares de Clave/Valor en donde la Clave no son
ImageExchange etaData necesariamente únicas Esta clase proporciona el acceso genénco a todos los metadatos dentro de una imagen asi como expone las propiedades CLR para ciertas propiedades bien conocidas
ImageExchangeProperty - un registro de una
ImageExchangeProperty ImageExchangeID y el objeto el cual es el valor de esa propiedad ImageMetaData Esta clase es utilizada para tener acceso y ajustar metadatos para Imágenes Esta clase expone una propiedad
ImageMetaData CodecMetaData la cual expone medios específicos del codee para tener acceso a los metadatos para esta imagen
ImagePalette Clase ImagePalette Opciones de dimesionamiento para una
ImageSizeOptions imagen La imagen resultante será escalada basada en estas opciones Define los métodos propiedades y eventos para la tubería de elaboración de imágenes
ImageSource incluyendo descodificadores y efectos
ImageSourceCollection La colección de codees (realmente ImageSource) en el sistema ImageSourceConverter ImageSourceConverter IntegerCollection IntegerCollectionConverter - Clase de
IntegerCollectionConverter convertidor para convertir casos de otros tipos en y de casos de IntegerCollection
LinearGradientBrush Define un gradiente lineal utilizado para llenar un área LineGeometry Representa la geometría de una linea Representa una linea entre dos puntos A diferencia de los objetos LineGeometry el
LineSegment LineSegment deberá estar contenido dentro de un PathFigure Crea una transformación arbitrana de matnz afín utilizada para manipular objetos o
MatnxTransform coordinar sistemas de un plano bidimensional MediaData MediaData Utilizado para reproducir el contenido de Audio/Video MediaSystem La clase ediaSystem controlan la capa de medios Llena un área completa con una imagen Porciones de la imagen son estiradas para
NineGndBrush que enca|en dentro de los margenes definidos Representa una subseccion de una geometría una sola sene conectada de dos
PathFigure segmentos geométricos bidimensionales
PathFigureCollection PathFigureConverter PathFigureConverter Representa una forma compleja que puede
PathGeometry estar compuesta de arcos curvas elipses lineas y rectángulos PathGeometryConverler PathGeometryConverter Una clase abstractacta que representa un segmento de un objeto PathFigure Clases que se denvan de PathSegment tales como
PathSegment ArcSegment BezierSegment y LineSegment representa tipos específicos de segmentos geométricos PathSegmentCollection Representa una lista de objetos PathSegment PathSegmentConverter PathSegmentConverter Pen Descnbe como se subraya una forma
PixelFormats PixelFormats - La colección de Pixel Formats soportados PointCollection PomtCollectionConverter - Clase convertidora para convertir casos de otros
PointCollectionConverter tipos en y de casos de PomtCollection Esta es la clase para la prueba de PomtHitTestParameters recuperación especificando parámetros con un punto Esta clase regresa el punto y la recuperación visual durante una pasada de
PointHitTestResult la prueba de recuperación PolyBezierSegment PolyBezierSegment PolyLineSegment PolyLineSegment PolyQuadraticBezierSegment PolyQuadraticBezierSegment PrintContext mantiene una condición y
PrintContext contexto para una interacción de impresora
QuadraticBezierSegment QuadraticBezierSegment Define un gradiente radial utilizado para llenar un objeto Un punto focal define el RadialGradientBrush inicio del gradiente y el circulo define el punto final de un gradiente RectangleGeometry Representa la geometría de un rectángulo RetainedVisual RetamedVisual Utilizados para girar un objeto alrededor de
RotateTransform un punto especificado en un plano x y bidimensional Escala un objeto en el plano x-y bidimensional iniciando desde un punto
ScaleTransform central definido Los factores de escala son definidos en las direcciones x- e y desde este punto central Ske Transform Representa un cesto bidimensional SohdColorBrush Representa un llenado uniforme solido StartSegment StartSegment Colección de sublineas La sublinea puede
SubLineCollection ser objeto de estos tipos GlyphRunLmeOver Inline Clase abstracta que descnbe un modo para llenar una región con uno o mas mosaicos Las clases denvadas definen tipos
TileBrush diferentes de mosaicos que pueden ser utilizados por ejemplo la ImageBrush hace posible que se llene un área con una imagen Una clase abstracta que se puede utilizar como la clase de origen de todos los tipos de transformaciones en un plano bidimensional incluyendo la rotación (RotateTransform) escala (ScaleTransform) sesgo (SkewTransform) y traslación
Transform (TranslateTransform) La jerarquía de esta clase difiere de la estructura atnz tanto porque es una clase como soporta la animación y semánticas de enumeración
TransformCollection Utilizada para crear y manipular una lista de objetos Transform TransformConverter Utilizadas para convertir un objeto Transform en o desde otro tipo de objeto TranslateTransform Translada un objeto en el plano x y bidimensional Typeface Una Typeface es una combinación de familia peso estilo y estiramiento VectorCollection VectorCollectionConverter - Clase convertidora para convertir casos de otros
VectorCollectionConverter tipos en y desde casos VectorCollection
Hace posible reproducir archivos de video
VideoData de acuerdo con la condición de un nodo de tiempo VideoDataConverter VideoDataConverter Clase básica para todos los tipos Visuales Proporciona servicios y propiedades comunes para todos los Visuales, Visual incluyendo la prueba de recuperación, transformación de coordenadas, y los cálculos de caja de enlace
VisualCollection Una colección ordenada de objetos visuales
Representa un árbol de objetos Visuales a
Visual anager un objetivo de presentación, generalmente una ventana
Interfases IHyphenate IHphenate es la interfase para Hyphenation Service Provider Si esta interfase es implementada en una clase que es denvada de un RetainedVisual, las operaciones del Retained Visual, en el modo de validación, por ejemplo, el subsistema de gráfico invocara OnRender
IRetamedRender de una manera perezosa (es decir, si el Visual aparece por primera vez en la pantalla) Observar que OnRender puede ser invocado por el sistema en cualquier momento
Esta interfase define los métodos y servicios ivisual comunes disponibles desde un objeto Visual Enumeraciones BrushMapping ode - Enumeración la cual descnbe si ciertos valores deben de ser considerados como coordenadas locales
Brush appmgMode absolutas o si deben de ser considerados múltiplos de un tamaño de caja de enlace
ChannelDescnption Descnbe el orden de cada canal de datos de pixel Colorlnterpolation ode Esto determina la
Colorlnterpolation ode forma en que tos colores son interpolados en un gradiente CornbineMode Especifica el método utilizado para combinar dos áreas geométricas FilIRule Especifica la forma en que debe de ser
GradientSpreadMethod dibujado el gradiente fuera del vector o espacio especificado del gradiente El comportamiento para la filtración de
HitTestFilterBehavior visuales mientras se hace la prueba de recuperación Comportamiento de los controles enum
HitTestResultBehavior cuando ocurre una recuperaaón positiva de la prueba de recuperación El HonzontalAlignment enum es utilizado para describir la forma en que es colocado
HonzontalAlignment el contenido honzontalmente dentro de un contenedor H phenationRule Reglas de Union con Guiones Soportadas
ImagePaletteType Tipos de paleta previamente definidos MediaState Mantiene la condición de la comente de los Medios PenDashCap Enumeración la cual descnbe los dibujos de los extremos de un
PenDashCap guión dentro de una linea con guiones PenLineCap Descnbe la forma en el extremo de una linea o segmento PenLmeJoin Enumeración la cual describe
PenLineJoin el dibujos de las esquinas en la linea Rotación que va a ser aplicada solamente
Rotation se soportan múltiplos de 90 grados
StandardColorSpace Stretch Enumeración que descnbe la forma en que una fuente recta debe de ser Stretch estirada para que encaje en una recta de destino StyleSimulations Simulación del estilo de fuente TileMode TileMode Enumeración que descnbe el dibujo de los extremos de una linea La Vertical Alignment enum es usada para describir la forma en que es colocado
VerticalAlignment verticalmente el contenido dentro de un contenedor
Estructuras Esta clase es un auxiliar para implementar
Characterlndexer indicadores nombrados caracteres
Color Representa colores en términos de canales alfa rojo verde y azul Esta clase es un auxiliar para implementar
Glyphlndexer indicadores nombrados de las mediciones de pictogramas ImageExchangeID - Esta clase es del tipo el cual puede ser utilizado como la clave para
ImageExchangeID una propiedad en un caso de ImageMetaData Esto puede ser ya sea un entero o una cadena ImageExchange etaDataEnumerator El enumerador para ImageExchangeMetaData Contiene la interfase lEnumerator asi como ImageExchangeMetaDataEnumerator versiones fuertemente tipificadas de los APIs ImageFrameEnumerator El enumerador de los cuadros de Imagen
Una clase ImageMetaDataRational representada por un numerador firmado y un denominador firmado El valor efectivo de
ImageMetaDataRational una proporción es numerador / denominador La clase racional es presentada como un numerador sin firmar y un denominador sin
ImageMetaDataUnsignedRational firmar El valor efectivo de una racional es el numerador / denominador ImagePaletteColor Estructura ImagePaletteColor Un rectángulo compuesto de valores enteros Generalmente utilizado para IntegerRect especificar el rectángulo fuente (en pixeles) de ínteres de una imaqen Representa una matnz de 3x3 utilizada para las transformaciones en el espacio bidimensional Debido a que el Avalon
Matnx solamente permite transformaciones afines la estructura de la Matriz tiene seis entradas en vez de nueve Esta clase es un auxiliar para implementar indicadores nombrados para las cadenas
NamedStnnglndexer localizadas en culturas múltiples PixelFormat Pixel Format Definition para imágenes y superficies basadas en pixeles
Delegados GetPageEventHandler Delegado GetPageEventHandler Delegado para la prueba de recuperación para controlar si se prueba contra el
HitTestFilterDelegate descendiente de la visual Delegado para la prueba de recuperación para controlar el regreso de la información H itTestResu ItDe légate de recuperación en la visual
Las sig u ientes tablas en u m era n los elem entos d e ej em plo expuestos por el espaci o d e nom bre System W i ndows Med ia Ani m ation
Clases Cualquier clase que no se deriva del DependencyObject pero la cual tiene
Animatable propiedades que pueden ser animadas debe de ser derivada de esta clase Esta clase abstracta proporciona la funcionalidad básica para las condiciones de animación, tales como AnimationCollection ColorAnimationCollection, DoubleAnimationCollection, y SizeAnimationCollection Sobrecontrolar esta clase para implementar las animaciones de nivel elemental las cuales pueden participar en el proceso de
AnimationEffect presentación para ejemplificar las animaciones de elementos múltiples al momento de la presentación
AnimationEffectCollection Mantiene una colección de AnimationEffects BoolAnimationCollection Representa una colección de animaciones BoolModifier Bool odifier
BoolTimedModifier ByteAnimationCollection Representa una colección de animaciones BoolModifier ByteModifier ByteTimedModifier CharAnimationCollection Representa una colección de animaciones CharModifier CharModifier CharTimedModifier ColorAnimation Anima un valor de color de una propiedad
ColorAnimationCollection Representa una colección de animaciones Color odifier Color eyFrameCollection Color odifier ColorTimedModifier DecimalAmmationCollection Representa una colección de animaciones Decimal odifier DecimalModifier DecimalTimedModifier DoubleAnimation Utilizado para animar las propiedades que acepta un valor Doble DoubleAnimationCollection Representa una colección de animaciones Double odifier DoubleKeyFrameCollection DoubleModifier DoubleTimed odifier FloatAnimation Utilizado para animar las propiedades que aceptan un valor Sencillo FloatAnimationCollection Representa una colección de animaciones FloatModifier FloatKeyFrameCollection FloatModifier FloatTimedModifier IntAnimationCollection Representa una colección de animaciones IntModifier IntModifier IntTimedModifier LengthAnimation Utilizado para animar propiedades que aceptan un valor de longitud LengthAnimationCollection Representa una colección de animaciones Length odifier LengthKeyFrameCollection Lengt odrfier LengthTimed od ifier LongAnimationCollection Representa una colección de animaciones LongModifier LongModifier LongTimedModrfier MatnxAnimationCollection Representa una colección de animaciones MatixModrfier atnxModifier atnxTimedModifier odifier ObjectAnimationCollection Representa una colección de animaciones ObjectModifier Object odifier ObjectTimedModifier Esta animación puede ser utilizada dentro de una atrixAnimationCollection para
PathAnimation mover un objeto visual a lo largo de una trayectoria PomtAnimation Utilizado para animar propiedades que aceptan valores de punto PointAnimationCollection Representa una colección de animaciones PointModifier PointKeyFrameCollection Point odifier Poi ntTi med Mod if ler RectAnimation Utilizado para animar propiedades que aceptan un valor Rect RectAnimationCollection Representa una colección de animaciones Rect odifier RectKeyFrameCollection Rect odifier RectTimedModifier ShortAnimationCollection Representa una colección de animaciones ShortModifier ShortModifier ShortTimed odifier Define una animación basada en el Tamaño de un objeto Proporcionando la información
SizeAnimation del Tamaño, puede parecer que un objeto se contrae o amplia con el paso del tiempo
SizeAnimationCollection Representa una colección de animaciones Size odifier SizeKeyFrameCollection SizeModifier SizeTimedModifier StrmgAnimationCollection Representa una colección de animaciones StringModifier StnngModifier StnngTimedModifier Representa una condición de temponzacion
Timeline de tiempo de ejecución para objetos programados TimelineBuilder Un objeto que puede ser utilizado para crear objetos Timeline TimeManager El objeto que controla un árbol de temponzacion completo Un objeto que realiza conversiones de tipo
TimeSyncValueTypeConverter que comprenden valores TimeSyncValue
TimeTypeConverter Un objeto que realiza conversiones del tipo que comprenden valores Time VectorAnimation Utilizado para animar propiedades que aceptan un valor de Vector VectorAnimationCollection Representa una colección de animaciones VectorModifier VectorKeyFrameCollection VectorModifier VectorTimed Mod ifier Interfases Representa un objeto que puede ICIock proporcionar valores lineales de tiempo Define el comportamiento básico de un objeto modificador Un modificador es un objeto que toma un objeto, denominado el
IModifier valor básico , de cierto tipo y regresa otro objeto del mismo tipo como su salida
ITimingControl Define el comportamiento de las lineas de tiempo y los objetos programados Representa un objeto que puede construir ITimingControlBu una linea timelme
Enumeraciones AnimationType Describe el comportamiento de una animación CloneType Los tipos de copias que puede solicitar el CloneCore InterpolationMethod Describe la forma en que calcula la animación sus valores de salida KeyTimeType Los tipos diferentes de KeyTimes Valores del atributo endSync, los cuales especifican la forma en que el contenedor TimeEndSync calcula su duración simple basados en las duraciones de los descendientes
Especifica la forma que se comporta la linea
TimeFill de tiempo después de que ya no esta activa
TimeRestart Valores del atnbuto Timelme Restart Describe la posición de la linea del tiempo, usada para especificar el comportamiento del método de Búsqueda de la interfase
TimeSeekOngin ITimingControl definiendo la posición en la cual es aplicada la compensación
TimeSyncBase El evento para sincronizar un valor de inicio y de fin para Estructuras ColorKeyFrame DoubleKeyFrame FloatKeyFrame Esta clase es utilizada para pasar una matnz de Splines clave dentro de la propiedad
KeySphne KeySplines de un fragmento de animación
Un KeyTime es utilizado para especificar
KeyTime cuando tiene lugar un KeyFrame con respecto a un tiempo de una animación
LengthKeyFrame PomtKeyFrame RectKeyFrame SizeKeyFrame Un valor que representa el tiempo con las
Time operaciones asociadas aritméticas asociadas de tiempo TimehneEnumerator Partidas de enumerados en una colección de TimelineList Un valor que representa un tiempo de inicio
TimeSyncValue y final absoluto relativo para una linea de tiempo VectorKeyFrame
Las siguientes tablas enumeran los elementos de ejemplo expuestos por el espacio de nombre System Windows Media TextFormatting
Clases InlmeObjectlnfo Proporciona detalles de la medición para los objetos de texto en linea El cliente de formateo pasa de este objeto como un parámetro para el método GetlnlineObjectlnfo El TextFormatter es una maquina de texto "Avalon" y proporciona servicios para el formateo de texto, y los saltos de linea de texto El TextFormatter puede manejar
TextFormatter diferentes formatos de caracteres de texto y estilos de párrafos e incluye el soporte para la distnbucion internacional de textos
TextHighlightBounds Se enlaza en enlace de los rangos de texto
Representa la información acerca de un Textlnfo bloque de texto en el almacén de caracteres de fuente de texto del cliente Proporciona servicios a una linea de texto Se hereda de esta clase para implementar
TextLine servicios que manipulan y formatean una linea de texto Esta es una clase abstracta
TextMa rkerGenerated Content Genera la linea de la salida del marcador de lista Define el estilo y tipo de un marcador de lista de párrafo El cliente de formateo utiliza
TextMarkerlnfo esta clase como un parámetro para proporcionar detalles de marcador al método GetTextMarkerlnfo Representa las propiedades que pueden cambiar de un párrafo al texto, tales como la
TextParagraphProperties dirección de flujo, alineación, o sangrías
Define una secuencia de caracteres que comparten un solo conjunto de propiedad El cliente de formateo proporciona detalles de
TextRun TextRun en esta clase cuando el TextFormatter lo pasa como un parámetro al método GetTextRun
TextRunBounds Enlaces de la ejecución de texto Proporciona servicios de almacenamiento en la memona mtantanea al objeto TextRunCache TextFormatter con el objeto de mejorar el funcionamiento TextRunClientData Representa los datos de información del cliente asociados con un TextRun Proporciona datos de caracteres y propiedades de formateo al TextFormatter Todo el acceso al texto en la TextSource es lograda a través del método GetTextRun, el
TextSource cual esta diseñado para permitir que el cliente virtuahce el texto de cualquier manera que elija Esta es una clase abstracta Proporciona la descripción de las características de corte de texto El cliente de formateo llena los detalles de corte en
TextTnmminglnfo esta clase cuando el TextFormatter la pasa como un parámetro del método GetTextTnm m i ng I nfo
Enumeraciones TextParagraphFlags Señalizaciones que descnben las características del párrafo TextRunCacheFlags Tipo de contenido de la memoria instantánea de operación de texto TextRunType Indica el tipo de TextRun
Estructuras El TextSourceCharacterlndex representa
TextSourceCharacterlndex una tecla de control o posición de carácter en el texto
Capa de Integración de Medios Una Capa de Integración de Medios (MIL), proporciona un API para los desarrolladores o programadores para que realicen efectos de composición relativamente complejos dentro de sus aplicaciones de una manera directa, mientras que apalancan la unidad de procesamiento de gráficos de una manera que no impacta de modo adverso el funcionamiento normal de la aplicación En un aspecto, el MIL proporciona la capacidad para combinar tipos de medios diferentes (por ejemplo, 2D, 3D, Video, Audio, texto, imágenes y asi sucesivamente), y animarlos juntos de una manera suave y continua El MIL proporciona una arquitectura de gráficos para composiciones de etapas múltiples y un modelo de programación que permite la paridad funcional en las interfases programática y escrita Una API y un escrito permiten la creación de una estructura retenida o una descripción de escena que es compuesta cuando es presentada, e incluye todavía áreas que son de naturaleza mas inmediata Por medio de las interfases, el MIL proporciona acceso a la estructura de datos para almacenar la información visual, de modo de que las aplicaciones pueden aprovechar las capacidades de los gráficos proporcionados por el equipo de computo Las interfases están basadas en un modelo de objeto de elemento y en un lenguaje de marca de gráficos de vector para utilizar ese modelo de objeto de elemento de una manera que permita que los desabolladores del código del programa hagan la interfase de manera consistente con la estructura de datos de gráfica de la escena para producir los gráficos La estructura de datos también puede ser utilizada para presentar, ya sea directamente o para 'recopilar" la información visual de modo que pueda ser proporcionada a un sistema de gráficos de nivel mas bajo para una composición y animación rápida El modelo del objeto del elemento de gráficos de vector generalmente corresponde a los elementos de forma y otros elementos que incluyen elementos de imagen y video que se correlacionan con un modelo de objeto gráfico de escena de la gráfica de escena La marca puede ser analizada en datos que incluyen elementos en un árbol de elementos que es traducido en objetos de una estructura de datos gráficos de escena La marca puede ser producida directamente en los datos y pide que se creen los objetos gráficos de escena El lenguaje de marca proporciona medios diferentes para describir un elemento, incluyendo un formato de eslabones simple, o una sintaxis de propiedad compleja, los cuales pueden ser denominados haciendo posible el nuevo uso en otras localizaciones de la marca Un aspecto del MIL, es la integración de la animación y la programación en el conjunto API, proporcionando la animación como un concepto de nivel básico inherente Con el objeto de facilitar la animación suave, el MIL proporciona un sistema de procesamiento de gráficos de niveles múltiples y el método (por ejemplo, de un sistema operativo) Uno de dichos sistemas de procesamiento de gráficos de nivel múltiple comprende dos componentes, incluyendo una marca a petición, o un componente de marca lenta de alto nivel y una marca rápida (por ejemplo, en el índice de regeneración del cuadro de gráficos del equipo), un componente de bajo nivel En general, el componente de alto nivel menos frecuente realiza aspectos de computación intensivos de parámetros de actualización de animación y estructuras transversales de datos de escena, con el objeto de pasar estructuras de datos simplificados al componente de nivel bajo El componente de nivel bajo opera en una frecuencia mas alta, de modo que el índice de regeneración del cuadro del subsistema de gráficos procesa las estructuras de datos en datos de salida constantes para los subsistemas de gráficos El procesamiento de bajo nivel incluye la interpolación de cualesquiera intervalos de parámetros que sean necesarios para obtener los valores instantáneos para presentar la escena por cada cuadro de animación Los objetos MIL de nivel alto incluyen un árbol visual, el cual es un objeto que contiene el contenido principal que va a ser dibujado Los controles se derivaran de los visuales del árbol directamente Los visuales son independientes del aparato y el contexto de origen El objetivo de presentación es el aparato al cual es dibujado el visual Este objeto (por ejemplo pantalla) puede tener su propio mecanismo de desperdicio o invalidación Varios objetivos de presentación incluyen una pantalla en una ventana, una Impresora, un Meta-archivo, una Superficie y una 'Sub-ventana" la cual es una parte de la escena que es dibujada por separado del resto de la escena Otros objetos relacionados con el dibujo incluyen un Presentador Visual, que comprende un objeto que esta configurado para dibujar un árbol visual en el objetivo de presentación, y un objeto Display Scheduler que conoce cuando dibujar el árbol visual en el objetivo de presentación Un Time Manager es un objeto de contexto para un conjunto de nodos de temponzacion y es el objeto que invoca el programador para marcarlo Se proporciona un API visual, el cual es esencialmente un punto de partida para el dibujo por medio de una capa de integración de medios y comprende tipos múltiples de objetos, incluyendo un objeto VisualManager, el cual conecta un Arbol Visual al medio Los tipos diferentes de VisualManagers (por ejemplo, Pantalla, Impresora y Superficie) son responsables de presentar el Arbol Visual a su medio particular Un Visual es en donde el programador hace el dibujo, es un nodo en el árbol visual y proporciona un lugar para que se dibuje un programa Las APIs DrawingContext presentan un modelo de programación basado en el contexto para la forma en la que se construye el contenido visual que es la población de un Visual, y son presentados a unos ImageData Se proporcionan clases DrawingContext, asi como las clases y puntos de entrada necesarios para adquirir un DrawingContext y se enumera el contenido visual en un
RetainedVisual/DrawingVisual Para hacer posible la capacidad de mutación, se proporciona un solo conjunto de tipos que se derivan de una clase básica común que se puede Cambiar Cualquier tipo para el cual se desea el cambio en la capacidad de mutación se puede derivar de la clase que se puede Cambiar Por ejemplo, en una programación de gráficos el modelo de objeto incluye Brochas, Plumas, Geometrías, FloatAnimations, GradientStops, Segmentos y asi sucesi amente Una propiedad IsChangeable especifica si el objeto que se puede cambiar puede ser modificado o no, dependiendo de su valor actual, el cual define una condición Una brocha es un objeto que representa un método para llenar un plano Ademas de poder llenar un plano de una manera absoluta, las brochas de la capa de integración de medios, también pueden adaptarse a la forma como llenan el plano en relación con el tamaño del objeto que están llenando Los ejemplos de los tipos de brochas incluyen SolidColorBrush , VisualBrush (los cuales pueden hacer referencia a una fuente de gráficos de vector/Visual), DrawmgBrush, LinearGradient, RadialGradient, ImageBrush y NineGridBrush Ciertos objetos de brocha tendrán una idea de la forma en que se relacionan con el sistema de coordenadas cuando son utilizados, y una idea de la forma en que ellos se relacionan con los limites del cuadro de la geometría con la cual están siendo utilizados El tamaño esta basado en el espacio desde donde se inicia el objeto que esta llenando la brocha La clase básica de Brocha tiene una Transformación, una opacidad general y un modo de mezcla La Brocha (y otros recursos de objetos en los Gráficos de Vector y el MIL API) se pueden Cambiar y se pueden escribir después de que han sido creados y siguen el patrón general que se puede Cambiar en la forma en que se comportan después de que son utilizados de una manera calificada La clase de objetos de Geometría puede ser utilizada para sujetar, para pruebas de recuperación y para presentar bases de datos de vector de dos Dimensiones con una Pluma y una Brocha Las clases de Geometría derivadas proporcionan una construcción mas especifica y semánticas de enumeración Se proporcionan un numero de tipos Geométricos específicos de forma, asi como una PathGeometry generalizada que permite la definición explícita de la Geometría con formas mas complejas La Geometría es una clase básica abstracta Una GeometryCollection es una colección de objetos de Geometría múltiples que han sido combinados utilizando las operaciones CombineMode en su área definida Este objeto permite la construcción mas fácil de combinaciones visuales de objetos de Geometría de la que es posible utilizando estrictamente los objetos PathFigure dentro de una PathGeometry La ImageSource es una clase abstracta, que comprende un bloque básico de construcción para la elaboración de imágenes Una ImageSource representa conceptualmente un solo conjunto de pixeles constante en un cierto tamaño y resolución Por ejemplo, una ImageSource puede ser un solo cuadro en un archivo de imagen que podría proporcionar un Descodificador, o puede ser el resultado de una transformación que opera por si misma en cierta ImageSource Una ImageSource se puede cambiar, no debido a que sus propias propiedades pueden ser cambiadas, sino debido a que las propiedades de sus sub-clases pueden ser cambiadas potencialmente Se proporciona una clase de objetos Transform que proporcionan la escalacion, los giros, la traducción y el sesgo del vector y los gráficos de trama Las clases Transform derivadas proporcionan un uso amistoso y semánticas de enumeración Los efectos proporcionan un medio para alterar los contenidos visuales de una escena de una manera céntrica a la presentación Por ejemplo, los VisualEffects (efectos de mapas de bits basados en las tramas) operan en una base de imágenes, con representaciones completamente compuestas de una porción de una escena Los efectos son desintegrados en vanos tipos incluyendo VisualEffects, BlendModes y VectorEffects Los VisualEffects pueden ser utilizados en una escena de modo retenida aplicándolos a una sub-grafica o un Elemento, o pueden ser utilizados en una tubería de imágenes independiente Los BlendModes es una forma especifica de efectos basados en la imagen y pueden ser aplicados a la escena de modalidad retenida generalmente de la misma manera que los VisualEffects Los Blendmodes realizan una combinación de los colores de la fuente y el destino según va siendo compuesta la fuente, por ejemplo, multiplican o agregan La Prueba de recuperación es utilizada para recolectar visuales en una escena y opera iniciando desde la parte superior del árbol de control y regresando un control o conjunto de controles por un punto o geometría Un control puede definir si es una recuperación o no, con servicios de soporte que incluyen la geometría presentada, el cuadro de limites, la geometría fuera de banda (región de recuperación), la opacidad de la imagen o mascara y su propia lógica El control puede regresar datos relacionados con el golpe específicos en el golpe El mecanismo de prueba de golpe puede filtrar los resultados de la prueba de golpe de una manera eficiente La prueba de golpe que realiza desde la extrema derecha a la izquierda del árbol visual siendo reportados los golpes a través de un recordatorio del orden-z, una modalidad de arriba-abajo Cuando desciende, las vistas del probador de golpes en el filtrado, en términos de relaciones del nivel del elemento, por ejemplo, un canvas con formas, o un panel de conexión con un canvas interior Cuando ocurre un golpe, el probador de golpes ya sea que puede continuar procesando golpes adicionales (si los hay) o detenerse Se proporciona un sistema de animación que comprende una maquina de control de temporizacion y un conjunto de objetos de animación La maquina de temporizacion es un servicio que puede ser utilizado por cualquiera de los objetos que exhiben comportamientos variables en el tiempo, por ejemplo, objetos de medios de animaciones, y audio o video Los objetos de animación implementan un conjunto de funciones que elaboran mapas de los lapsos de tiempo en otros tipos de datos, los cuales luego son utilizados como entradas en otros objetos de nivel mas alto La animación gráfica se logra asociando una colección de animación con una operación de presentación Cada animación utilizada en la animación de presentación puede se ejecutada en un reloj separado, al que nos referimos como una linea de tiempo" Una vez que es dibujada una primitiva animada y son especificados los parámetros de animación, el sistema de presentación de bajo nivel se hace cargo de un nuevo dibujo de la escena en intervalos regulares Cada vez que un cuadro es presentado, es computado el valor actual de las animaciones comprendidas en la escena, basado en el tiempo transcurrido (en la mayoría de los casos medidos por el reloj del sistema) y luego se vuelven a dibujar las primitivas animadas También están proporcionados Varios tipos de primitivas, características de color y soporte de medios por medio del MIL Los MediaData pueden ser utilizados para reproducir cualquier contenido de audio/video
Espacio de Nombre de Diseño Un espacio de nombre de diseño 320 proporciona clases que hacen posible la edición de formas y textos, datos de formato y compartir los datos de proceso cruzado Estas clases proporcionan una metodología extensible para editar documentos, aplicaciones y otros contenidos El espacio de nombre de diseño 320 contiene la funcionalidad en dos niveles la funcionalidad de alto nivel para los desabolladores de la aplicación que desean editores listos para usarlos previamente empacados para diferentes tipos de información, y la funcionalidad de nivel mas bajo para aplicaciones mas avanzadas que introducen sus propios tipos de datos Los ejemplos de los editores listos para usarse previamente empacados ofrecen editores de textos planos, editores ricos de textos, editores de formas (la distribución de elementos) y el ingreso de contraseñas El nombre de espacio de diseño 320 proporciona un método flexible y extensible para organizar vanas funcionalidades En vez de proporcionar un editor de característica fija común, el nombre de espacio de diseño 320 proporciona una combinación de servicios, comportamientos y abstracciones que permiten que los desabolladores construyan soluciones de edición de información especializada, y que se pueden personalizar fácilmente El espacio de nombre de diseño 320 incluye vanas características de edición que se pueden personalizar, incluyendo servicios delimitados, comportamientos que se pueden apilar, patrones de diseñador-editor, diseñador abstracto para la edición de elementos, un modelo de objeto de texto abstracto, las capas del decorador, la superficie de diseño, el protocolo generalizado de transferencia de datos y el mecanismo extensible para deshacer Los servicios delimitados permiten la asociación de servicios específicos con porciones y sub-porciones particulares con datos de aplicación Este mecanismo también permite encender y apagar los servicios en diferentes alcances La clase principal que proporciona el soporte para los servicios es el Service anager, los servicios individuales son implementados utilizando las interfases IService e IScopedService El concepto de "comportamientos que se pueden apilar" permite que diferentes comportamientos sean activados en periodos de tiempo apropiados En una modalidad, esta anidada la activación del comportamiento basada en el tiempo, de modo que puede iniciar un sub-proceso y terminar mientras un proceso mas general es suspendido temporalmente y luego restaurado correctamente En vez de una codificación permanente de una solución, el método de los comportamientos que se pueden apilar soluciona este problema permitiendo una integración de procesos que no tienen un conocimiento previamente definido entre ellos La clase principal que proporciona soporte para este mecanismo es el EditRouter, los comportamientos individuales son subclases de las clases Editor y EditBehavior Los tipos Integrados de datos que se pueden editar son soportados por las subclases correspondientes del EditBehavior, tales como el TextEditor, ElementEditor y oveBehavior El concepto de "patrón del diseñador-editor" permite la separación entre la funcionalidad genérica de edición y una información sub-clasif icada mas especifica que se puede editar El editor no espera una estructura de datos especifica sobre la cual operar En vez de ello supone que el contenido de datos esta expuesto a través de alguna interfase abstracta, ocultando los detalles de im plementacion , pero que es suficiente para la acción correspondiente de la interacción de edición Este patrón es particularmente útil con los elementos (para editar formas) y para el texto (en la edición rica de texto) El "diseñador abstracto para la edición de elementos) es una aplicación del patrón editor-diseñador" para un área e edición de elementos (por ejemplo, la edición de formas) Varios elementos pueden tener diferentes estructuras internas, apariencias y comportamientos, pero si exponen algunos "diseñadores" estándar para movimiento, rotación, y redimensiacion, entonces llegan a poderse editar por el editor de elementos El modelo de texto abstracto es otra aplicación del "patrón editor-diseñador" para utilizarlo en la edición rica de textos Esta abstracción permite el almacenamiento de soportes diferentes para participar en la edición rica de textos, tales como RTF, XHTML, textos planos, marca XA L, código de fuente sintácticamente destacado, etc Aunque la naturaleza semántica y la estructura interna de estos tipos de textos puede ser diferente, exponiéndolos por ellos mismos por medio de un modelo de texto abstracto, permiten la aplicación de los mecanismos genéricos de edición Adicionalmente, este método permite la integración de textos y datos, de modo que los textos de diferentes almacenamiento de soporte pueden contener piezas entre ellos, mientras que proporcionan una experiencia continua de edición La capa del decorador es una herramienta unificada que proporciona una retroalimentacion visual rica durante la edición La capa del decorador proporciona un soporte el cual es uniforme para muchos tipos de retroahmentacion Se pueden adherir dinámicamente y separar visuales poderosos a los elementos y otras porciones de datos para identificar la actividad potencial del usuario que se puede aplicar a ellos La superficie de diseño es un control XAML que empaca previamente los recursos de edición, tales como la capa del decorador, y el enrutador de edición Esto simplifica el desarrollo de nivel medio de la edición Las funciones de edición tales como cortar/copiar/pegar y arrastrar/liberar son importantes en un ambiente de información integrado, pero pueden ser difíciles de soportar debido a la complejidad e incompatibilidad de los diferentes tipos de datos El protocolo de transferencia de datos generalizado soluciona esta dificultad proporcionando la combinación de abstracciones utilizadas por la extracción de datos, la inserción de datos, el arrastre de datos y la conversión de datos Este protocolo de transferencia de datos generalizado proporciona un mecanismo poderoso y flexible para la integración de datos-aplicacion El mecanismo extensible para deshacer maneja una pila de deshacer recolectando datos de diferentes tipos El administrador de la operación de deshacer incluye protocolos q ue manejan operaciones de d eshacer con diferentes ti pos de datos Las ta blas sig ui entes en u m era n los elem entos d e ej em plo expu estos por el espaci o de nom bre System Wi ndows Desig n
Clases ActivationEventFilter EventFilter Esta es la realimentacion que muestra el
Acti vation Recta ngle Adornerl nfo limite de los elementos DesignActive Adornerlnfo Proporciona información acerca de un decorador especifico en un adornerset Proporciona una superficie para desplegar en pantalla las decoraciones en los elementos que necesitan transcender el
AdornerLayer orden Z (los elementos siempre necesitan estar en la parte superior)
CanvasDesigner Diseñador Canvas por omisión Proporciona la funcionalidad de deshacer y volver a hacer para las acciones de tiempo
ComponentChangeService de diseño que afectan los componentes
Designer Proporciona un medio para editar el contenido en vivo Define un servicio opcional que las aplicaciones y controles pueden implementar para sobrecontrolar la DesignerFilterService elaboración de mapas por omisión entre un elemento y el diseñador proporcionado por el DesignerLookupService
Permite los comportamientos de edición DesignerLookupService para los elementos de elaboración de mapas por parte de los diseñadores El elemento raíz recomendado para el
DesignSurface contenido que se puede editar Agrega decoradores, servíaos y eventos EditBehavior Define la implementaaón para todos los comportamientos de edición Maneja las entradas del usuano para un tipo de selección particular, tal como texto,
Editor elemento o tabla Generalmente existe un editor especifico para cada tipo de selección Asocia un tipo de selección con el modo de
EdrtorTypeAttnbute selección Esta clase no puede ser heredada EditRouter Administra el conjunto de EditBehaviors activos actualmente EditRouterChangedEventArgs Argumentos para un evento Changed
ElementEditor Editor del elemento EventFilter Hace posible la filtración y asignación del evento El Diseñador por omisión para todos los
FrameworkElementDesigner controles que se denvan de FrameworkElement MoveBehavior Comportamiento de Movimiento ObjectSelection Selección del Sito ParentUndoUnrt ParentUndoUnit Implementación del ITextDesigner para el
RichTextDes jner TextPanel y otros controles que soportan el ITextDocumentResult El RoutedEventAdapter hace descender un eventHandler especifico para un RoutedEventHandler de modo que un RoutedEventAdapter procesador pueda procesar diferentes tipos de eventos Utilizado por el EdrtRouter
El SelectionRouter controla selecciones mezcladas con modos de selección múltiples Éste se deriva del EditRouter para
SelectionRouter enrutar eventos para editores modulares (los cuales se denvan del Editor) Proporciona el acceso programático a la selección de partidas Ul Se puede obtener realimentación de las partidas SelectionService seleccionadas, asi como cambiar las partidas seleccionadas y sus propiedades ServiceConverter - Clase convertidora para
ServiceConverter convertir entre una cadena y un caso de IService La implementación del ITextDesigner para el
SimpleTextDesigner Texto y otros controles que soportan el ITextParagraprtResult Proporciona datos para los eventos
UndoStackChangedEventArgs UndoStackChanged y RedoStackChanged
Interfases La interfase lAddRemoveChildDesigner es lAddRemoveChildDesigner utilizada para agregar/eliminar descendientes Proporciona acceso a los métodos que permiten que se recuperen los objetos lAdomerDesigner necesanos para trazar los decoradores en el FrameworkElements El elemento intenor en el DesignActivation que puede llegar a ser un design Active Tiene el contenedor de nombre ya que se
IDesingActivationContainer supone que si un elemento es DesignActive entonces es mas probable que este editando algún contenido de un descendiente Un IDesignActivationContainerParent puede alojar el IDesignActivationContamer en el
IDesignActivationContainerParent ambiente de Diseño Interfase para ser implementada por
IDesignSurface cualquier elemento que desea participar en la edición IMoveDesigner Interfase del movimiento del diseñador IParentUndoUnit Interfase IParentUndoUnit IScopedService IScopedService ISelection Intefase básica para modos de selección
Interfase del diseñador asociada con el SelectionBehavior (SelectionRouter) Una
ISelectionDesigner clase que implementa esto sena especificada en el Designer Attnbute de un tipo de elemento Este es un sujetador de lugar para un
IService TypeConverter para servicios de edición Se implementa un componente de interfase para el suministro de servicio al TextEditor
ITextDesigner con información y acciones especificas de la distribución lUndoService Interfase lUndoService lUndoUnit Interfase lUndoUnit
Enumeraciones Adomerl nfoZOrder Señaladores del orden Z Señaladores que indican las condiciones
AdomerRenderTnggers que ocasionan que se vuelvan a presentar los decoradores EditRouterChange Enumeración de acciones posibles de cambio de enrutador La TextDecorationPnonty clasifica la importancia relativa de las diferentes marcas
TextDecorationPnonty de texto Este es utilizado en ejecuciones de decoración del orden z en la clase TextDecorator UndoState Enumeración para la condición del administrador para deshacer
Delegados UndoStackChangedEventHandler Representa el método que manejara un evento UndoStackChanged o RedoStackChanged
Espacio de Nombre de Entrada Un espacio de nombre de entrada 322 incluye un administrador de entrada que coordina las entradas recibidas por el sistema El espacio de nombre de entrada 322 incluye también clases que ayudan a administrar y proporcionar control para diferentes aparatos de entrada, tales como un teclado o un ratón El sistema de entrada permite que las aplicaciones obtengan información de los aparatos de entrada tales como los ratones, teclados, y estiletes (plumas) La mayor parte de la funcionalidad de entrada es en la forma de propiedades, métodos, y eventos en las clases de UlElement, FrameworkElement, ContentElement, y
ContentFrameworkElement en el nombre de espacio System Windows El UlElement y el ContentElement tienen una funcionalidad de entrada similar, la cual es capturada por la interfase I InputElement De un modo similar, las clases FrameworkElement y ContentFrameworkElement, las cuales se derivan de las clases UlElement y ContentEIem ent, respectivamente, comparten muchas APIs de entrada y ambas implementan el I Frameworkl nputElement El sistema de entrada proporciona un soporte completo para los teclados, ratones y estiletes La funcionalidad del Teclado incluye eventos de oprimir/liberar de las teclas, administración de enfoque y notificación, la condición de acceso a las teclas actuales, y la conversión de ingresos en el teclado en eslabones de entrada La funcionalidad de Ratón incluye la posición, los clics, el movimiento, y los eventos de ingresas/salir en los limites del elemento, la captura del ratón, la flotación en un área y la rueda del ratón La funcionalidad de Estilete incluye la posición y movimiento (ambos cuando la pluma esta en contacto con la superficie y cuando esta "en el aire"), golpecitos/clics, la captura y el reconocimiento de gestión El espacio de nombre de Entrada contiene unas clases auxiliares necesarias para la funcionalidad anterior, tales como enumeraciones, argumentos de eventos, firmas de delegados, etc Adicionalmente, el espacio de nombre de Entrada, incluye el Teclado, el Ratón y el Estilete, los cuales proporcionan información relacionada con la condición actual de dichos aparatos El sistema de entrada proporciona medios para especificar los cursores del ratón en un elemento particular y para una aplicación completa El sistema de entrada esta integrado con el Text Services Framework (TSF), el cual permite que otras entradas del software entiendan el contexto textual dentro del cual esta siendo ingresado el nuevo texto Esto es utilizado mediante los editores de método de entrada (IMEs), los cuales permiten que los usuarios de Lenguaje Asiático del Este efectúan varios ingresos de teclado múltiples en un solo carácter --, el programa IME se comunica con el TSF para identificar la mejor interpretación de los ingresos en el teclado basados en el contexto y los usos del TSF para insertar el texto en el documento De un modo similar, el reconocimiento de voz utiliza el TSF para recolectar el mejor reconocimiento e insertarlo en el documento El sistema de entrada ofrece la integración automática del TSF, en la forma de un evento Textlnput El espacio de nombre de Entrada también ofrece APIs para describir el contexto del texto y controlar la conversión de la entrada inicial del teclado en una entrada textual La clase InputManager proporciona filtros y monitores, los cuales permiten que una tercera parte observe la corriente de entrada y cree nuevos eventos de entrada antes de que hayan sido encendido los eventos de entrada originales El InputManager también proporciona APIs para aparatos nuevos que van a ser conectados en el sistema de entrada, utilizando las clases llnputProvider y InputReport La tabla siguiente es una lista de elementos de ejemplo expuestos por el espacio de nombre System Windows Input Clases Un AccessKeyManager expone la funcionalidad clave de acceso, también conocida como nemónica Un ejemplo típico
AccessKey anager es el botón Ok, siendo alt-0 la nemónica - oprimir alt-0 es lo mismo que hacer un che en el botón Cursor Representar al cursor del ratón para el uso
CursorTypeConverter Convierte los cursores del ratón en y desde las cadenas La clase FocusChangedEventArgs contiene
FocusChangedEventArgs información acerca de los cambios de enfoque InputDevice Proporciona la clase básica para todos los aparatos de entrada La clase InputEventArgs representa un tipo de RoutedEventArgs que son importantes
InputEventArgs para todos los eventos de entrada
La clase InputLanguageEventArgs representa un tipo de RoutedEventArgs que
InputLanguageChangedEventArgs son importantes para los eventos originados para indicar un cambio en el lenguaje de entrada (humano) La clase InputLanguageEventArgs representa un tipo de RoutedEventArgs que
InputLanguageChangingEventArgs son importantes para los eventos ongmados para indicar un cambio en el lenguaje de entrada (humano) La clase InputLanguageEventArgs representa un tipo de RoutedEventArgs que
InputLanguageEventArgs son importantes para los eventos ongmados para indicar un cambio en el lenguaje de entrada (humano) La clase InputLanguageManager es
InputLanguageManager responsable del manejo del lenguaje de entrada en el Avalon La clase InputManager es responsable de
InputManager coordinar todos los sistemas de entrada en "Avalon" La clase InputMethod expone los APIs relacionados con TSF, los cuales se están
InputMethod comunicando o teniendo acceso a las propiedades TIP InputMethodStateChangedEvent Esta clase Args InputMethodStateChangedEventArgs es utilizada cuando cambia su condición el editor del método de entrada (IME) El objeto el cual da ingreso al uso del
InputProviderSite proveedor para reportar la entrada en el administrador de entrada El InputReport es una clase básica abstracta
InputReport para todas las entradas que son reportadas al InputManager Proporciona datos para el evento que es
I nputReportEventArgs onginado cuando esta siendo procesado un InputReport Keyboard La clase Keyboard expone las APIs relacionadas con el teclado La clase KeyboardDevice representa el
KeyboardDevice aparato de teclado para los elementos de un contexto La clase KeyboardEventArgs proporciona el acceso a un aparato señalador lógico para KeyboardEventArgs todos los argumentos de evento derivados
La clase KeyEventArgs contiene información
KeyEventArgs acerca de las condiciones clave
Proporciona métodos estáticos para
Keylnterop convertir entre las enumeraciones VirtuaIKeys Wm32 y la Clave "Avalon" Mouse La clase Mouse expone los APIs relacionados con el ratón Los argumentos MouseButtonEventArgs
MouseButtonEventArgs descnben la condición del botón del ratón
La clase MouseDevice representa el aparato MouseDevice del ratón para los elementos de un contexto Proporciona datos para los eventos que son
MouseDoubleClickEventArgs onginados cuando se le ha dado un doble che al ratón La clase MouseEventArgs Proporciona acceso al aparato de Ratón lógico para ouseEventArgs todos los argumentos de evento derivados
Los argumentos MouseWheelEventArgs
MouseWheelEventArgs describe la condición de la rueda del Ratón
Proporciona información acerca de un evento de entrada que esta siendo NotifylnputEventArgs procesado por el administrador de entrada
Permite que el procesador cancele el
PreProcesslnputEventArgs procesamiento de un evento de entrada Proporciona acceso al área de formación de ProcesslnputEventArgs etapas del administrador de entrada La clase RawKeyboardlnputReport RawKeyboardlnputReport encapsula la entrada raíz proporcionada desde un teclado La clase RawMouselnputReport encapsula RawMouselnputReport la entrada raíz proporcionada desde un ratón Esta clase encapsula un evento de entrada mientras que esta siendo procesado por el
StagingArealnputltem administrador de entrada
La clase TextlnputEventArgs contiene una
TextlnputEventArgs representación de texto de la entrada
La clase TextManager proporciona una TextManager promoción del evento de entrada a texto Esta clase administra la mteroperacion entre un UIDispatcher y el TextServices TextServicesContext Framework, con una API del COM natural se hace posible un ingreso IME del onente asiático TextStorelnfo Esta es una clase protegida por una demanda de enlace interna Una interfase para controlar la fuente del lenguaje de entrada Una interfase implementada por todos los proveedores de entrada Una interfase para controlar el proveedor de entrada del teclado Una interfase para controlar el proveedor de entrada del ratón
Enumeraciones CursorType Una enumeración del tipo de cursor soportada ImeConversion ode ImeConversionMode ImeSentenceMode ImeSentenceMode InputMethodState Condición de Ime Input ode El modo de procesamiento de entrada cuando fue proporcionada la entrada InputTy e El tipo de entrada que esta siendo reportado Key Una enumeración de todos los valores de las teclas posibles en un teclado La enumeración KeyState describe la
KeyState condición en las que pueden estar las teclas de teclado La enumeración ModifierKeys descnbe un conjunto de teclas comunes utilizadas para
ModifierKeys modificar otras operaciones de entrada
La enumeración MouseButton describe los
MouseButton botones disponibles en el aparato del ratón
La enumeración MouseButtonState describe las condicones posibles de los botones
MouseButtonState disponibles en el aparato de entrada del Ratón RawKeyboardActions Las acciones raíz que están siendo reportadas desde un teclado Raw ouseActions Las acciones raíz que están siendo reportadas desde el ratón SpeechMode Modo de voz
Estructuras TextServicesMSG Vision administrada de la estructura MSG Win32
Delegados El delgado para que lo utilicen los
FocusChangedEventHandler procesadores que reciben los FocusChangedEventArgs El delegado para que lo utilicen los
InputEventHandler procesadores que reciben los InputEventArgs Es es un delegado para los eventos
InputLanguageEventHandler InputLanguageChanged y InputLanguageChanging El delegado para que los procesadores
InputMethodStateChangedEvent utilicen ese evento cambiado de condición Handler de de método de entrada de recepción
El delegado para que los procesadores
InputReportEventHandler utilicen esos argumentos de recepción PointerMoveEventArgs El delegado para que lo utilicen los
KeyboardEventHandler procesadores que reciben los KeyboardEventArgs El delegado para que lo utilicen los
KeyEventHandler procesadores que reciben los KeyEventArgs El delgegado para que lo utilicen los
MouseButtonEventHandler procesadores que reciben los MouseButtonEventArgs El delegado para que lo utilicen los
MouseDoubleClickEventHandler procesadores que reciben los MouseDoubleChckEventArgs El delegado para que lo utilicen los
MouseEventHandler procesadores que reciben los MouseEventArgs El delegado para que lo utilicen los ouseWheelEventHandler procesadores que reciben los ouseWheelEventArgs Tipo de delegado para el manejo de eventos
NotifylnputEventHandler que utilizan los NotifylnputEventArgs
Tipo de delegado para el manejo de eventos
PreProcessInputEventHandler que utilizan los PreProcessInputEventArgs
Tipo de delegado para el manejo de eventos
ProcessInputEventHandler que utilizan los ProcessInputEventArgs
El delegado para que lo utilicen los Textl nputEventHand ler procesadores que reciben los TextlnputEventArgs
Espacio de Nombre de Navegación El espacio de nombre de navegación 324 proporciona un conjunto de clases y servicios que permiten la construcción de aplicaciones con paradigmas de navegación, tales como aplicaciones del buscador Estas clases y servicios permiten el desarrollo de aplicaciones con experiencias personalizadas de navegación Por ejemplo, cuando se compra un producto o servicio de un comerciante en linea, el hacer un che en el botón "Back" ocasiona que la aplicación despliegue en pantalla una pagina diferente que le pide al usuario si quiere cancelar o cambiar su pedido En otro ejemplo, la activación del botón Refresh" ocasiona que una aplicación recupere datos nuevos en vez de volver a cargar primero la aplicación seguida por la recuperación de los datos nuevos El espacio de nombre de navegación 324 incluye también funciones de paginas que proporcionan un mecanismo para la generación de una jerarquía de preguntas que son presentadas a un usuario Las tablas siguientes enumeran elementos de ejemplo expuestos por el espacio del nombre
System Windows Navigation
Clases
BoolWrapper Una envoltura para un valor Boolean
BoolWrapperPageFunction Una función de pagina tipificada que regresa un valor Boolean a la pagina anterior
BoolWrapperReturnEventArgs IntWapper Una envoltura para un valor Int32 Una función de pagina tipificada que
IntWrapperPageFunction regresa un valor Int32 a la pagina antenor
IntWrapperReturnEventArgs
Journal Contiene una histona de navegación de la aplicación
JournalEntry Representa una entrada del diano
LoaderService Utilizado para ajustar el cargador actual en un appdomain determinado
NavigateEventArgs Obsoleto Argumentos del evento para los eventos NavigationApplication Navigating y
NavigatingCancelEventArgs NavigationWindow Navigating Argumentos de evento para el evento NavigatingNewWindow que se puede cancelar El NavigatingNewWindowCancelEventArgs especifica el NavigationContamer
NavigatingNewWindowCancelEvent objetivo en donde tendrá lugar la Args navegación con el Un o el elemento pasado Por omisión, se ajusta en falso la propiedad Cancel El ajuste de Cancel a verdadero evitara que se abra una nueva ventana, y no tendrá lugar la navegación
Representa una aplicación de NavigationApplication navegación "Longhorn" para el sistema
Una región que se puede navegar que puede contener un árbol de marca "Avalon" Normalmente, esta clase no
NavigationContainer es utilizada directamente pero puede ser utilizada como la clase de origen para una implementacion de personalización
NavigationErrorCancelEventArgs Contiene los argumentos para los eventos NavigationApplication NavigationError y NavigationWindow Navigation] Error Argumentos de eventos para eventos de navegación que no se pueden
NavigationEventArgs cancelar, incluyendo los eventos LoadCompleted LoadStarted Navigated y NavigationStopped Contiene los argumentos para los eventos del NavigationProgressEventArg NavigationApphcation Navigation Process y NaviqationWindow NaviqationProcess Contiene los delegados utilizados por los eventos , y una propiedad dinámica que NavigationService contiene la interfase Inavigator NavigationWindo Representa una ventana de navegación
Una función de pagina escnta que
ObjectPageFunction regresa un valor de objeto a la pagina antenor
ObjectReturnEventArgs
Esta clase no esta soportada directamente En vez de ello utiliza una de las clases escntas PageFunction BoolWrapperPageFunction, IntWrapperpageFunction, ObjectPageFunction, o StnngPageFunction
El objeto del argumento del evento para el evento Retum Esta clase no esta directamente soportada En vez de ello
ReturnArgs utiliza los argumentos de retorno para las clases escritas apropiadas BoolWrapperReturnEventArgs, IntWrapperReturnEventArgs, ObjectReturnEventArgas, o StringReturnEventArgs Una función de pagina escrita que
StnngPageFunction regresa un valor de String a la pagina antenor
StnngReturnEventArgs Representa una región que se puede
WindowNavigationContainer navegar dentro de una ventana de navegación
Interfases La inferíase IJournalData - debe de ser implementada por los controles que
UournalData necesitan persistir en la condición del diano, y restaurarlas cuando se visita de nuevo la pagina Interfase utilizada para resolver los Un's para las comentes Puede ser utilizada para cargar el contenido de archivos,
ILoader http contenedores y recursos administrados y sin administrar
Implementado por los contenedores de navegación para proporcionar acceso a
I Navigator las propiedades, métodos y eventos que soportan la navegación
Interfase INavigatorService Esta interfase estara disponible en la NavigationWindow habilitando cualquier implementador del Inavigator para
INavigatorService registrarse ellos mismos para participar en el establecimiento de objetivos de Hyperlmk
Enumeraciones
NavigationMode Utilizado para especificar el modo de navegación
Delegados
BoolWrapperReturnEventHandler IntWrapperReturnEventHandler Representa el método que maneja los eventos LoadCompletedEventHandler NavigationApplication LoadCompleted y NavigationWindow LoadCompleted
Representa el método que maneja el
LoadStartedEventHandler evento LoadStarted
Representa el método que maneja los eventos NavigationApplication Navigated NavigatedEventHandler y NavigationWindow Navigated Representa el método que maneja los eventos NavigationApplication Navigated
NavigatedEventHandler y NavigationWindow Navigated
NavigateEventHandler Obsoleto Representa el método que maneja los eventos NavigatingCancelEventHandler NavigationApplicaton Navigating y NavigationWmdow Navigating
NavigatingNewWindowCancelEvent Representa el método que maneja el Handler evento NavigatmgNewWindow
Este delegado es utilizado con los eventos NavigationErrorCancelEventHandler NavigationApplication NavigationError y NavigationWindow NavigationError Este delegado es utilizado con los eventos NavigationWindow Navigation
NavigationProgressEventHandler Progress y NavigationApplication Navigation Progress Representa el método que maneja los eventos NavigationStoppedEventHandler NavigationApplication Navigation Stopped y NaviqationWindow NavigationStopped
ObjectReturnEventHandler Representa el método que maneja el evento Return Esta clase no esta soportada directamente En vez de ello
RetumEventHandler se utiliza el procesador de gestión del evento de retroceso para la clase escrita apropiada BoolWrapperReturnEventHandler, IntWrapperReturnEventHandler, ObjectReturnEventHandler, o StnngReturnEventHandler StnngReturnEventHandler Espacio de Nombre de Automatización El espacio de nombre de automatización 326 contiene elementos utilizados para soportar la capacidad de acceso y la automatización de la interfase del usuario El sistema para la capacidad de acceso incluye un lado del cliente y un lado del proveedor Un sistema de herramientas incluye las herramientas de automatización del lado del cliente que incluye la clase de automatización del cliente para buscar la información de la interfase del usuario La clase de automatización del cliente incluye herramientas de registro de eventos, y herramientas de descubrimiento de elementos lógicos El conjunto de herramientas incluye ademas las herramientas de automatización del lado del proveedor para proporcionar al cliente con la información de la interfase del usuario Las herramientas de automatización del lado del proveedor incluyen una clase de una automatización de la clase del proveedor que contiene herramientas para proporcionar al cliente información de eventos Una clase de automatización del cliente proporciona métodos de automatización Ul para uno o mas clientes La clase de automatización del cliente contiene métodos que no son específicos para cualquier elemento Ul La clase de automatización del cliente puede proporcionar un método para obtener un elemento natural o lógico desde un punto, un procesador de ventana, o un elemento de raíz de computadora de escritorio La clase de automatización del cliente puede proporcionar adicionalmente métodos para encontrar criterios de entrada basados en elementos lógicos La clase de automatización del cliente incluye de preferencia, también un método para registrar y eliminar del registro notificaciones de eventos La clase de automatización de preferencia proporciona también funciones de un auxiliar para cargar poderes DLLs, recuperar los nombres localizados de las propiedades y patrones de control y realizar comparaciones de elementos La clase de automatización del cliente también incluye métodos para que los clientes escuchen los eventos Las tablas que se encuentran a continuación enumeran elementos de ejemplo expuestos por el nombre de espacio System Windows Automation
Clases Expone el comportamiento y la información generalmente asociada con una ventana de aplicación de nivel superior Los clientes pueden utilizar esta clase para hacer mosaicos o ApplicationWindowPattern cascadas de descendientes de interfase de documentos múltiples de la aplicación (MDI), encontrar su botón en la barra de tareas, y localizar las secciones bien conocidas de su interfase del usuario tales como las barras de herramientas v menus Expone la semántica y los metadatos
Associated I nformation Pattern para los elementos Ul que representan otros objetos Automation Contiene los métodos de Automatización de la Interfase del Usuano (Ul) para los clientes (tecnología de asistencia o escritos de prueba automatizada) Estos métodos no son específicos para un elemento particular
AutomationEvent No utilizarla Esta clase sera eliminada en versiones futuras
AutomationEventArgs La clase Pattem o custom event args
AutomationFocusChangedEvent La clase Focus event args Arqs Clase básica para identrficadores basados en la identidad de objetos
Automationldentifier Esta clase es efectivamente abstracta solamente se ejemplifican las clases denvadas
Clase interna utilizada para des
Automation IdentifierProxy señalizar los Automation Identifiers No debe de ser utilizada directamente No usarla Esta clase sera eliminada en
AutomationPattem versiones futuras
Proporciona un conjunto de permisos
AutomationPermission para tener acceso a los elementos Ul Esta clase no puede ser heredada
AutomationPermissionAttnbute Proporciona métodos y propiedades para Automation PermissionAttnbute Esta clase no puede ser heredada
No usarla Esta clase será eliminada en
AutomationProperty versiones futuras
AutomationPropertyChangedEventAr La clase PropertyChanged event args gs Identificador para los Automation Text
AutomationTextAttnbute Attributes
Representa la posición de un carácter dentro del texto El AutomationTextPointer proporciona
AutomationTextPointer métodos y propiedades para tener acceso al texto y la nevegaaon de texto
Utilizarla para obtener ajustar agregar y
AutomationTextRange eliminar selección Propósito el objeto AutomationTextSelecfaon maneja toda la administración de selección de textos La selección en la que está encendida el señalador de inserción es la selección
AutomationTextSelection activa Usos de ejemplo es utilizada cuando los clientes quieren agregar, eliminar modificar o ajusfar la selección También los clientes pueden descubrir lo que se ha seleccionado realmente a través del AutomationTextSelec on
Identificador para Automation Text Units
AutomationTextUnit
BasePattem Clase Interna Expone la capacidad del elemento para
DockPattem cambiar su condición conectada en el tiempo de ejecución
Esta excepción es descartada cuando el código del cliente intenta manipular un
ElementNotEnabled Excepbon elemento o controlar lo que no está habilitado actualmente
El ElementPath proporciona los cntenos necesanos para regresar postenormente al elemento lógico antenormente ElementPath grabado, modificado o totalmente creado por el proveedor de la aplicación
Expone una capacidad del control para expandir para desplegar en pantalla más contenido o para colapsar un contenido oculto Los ejemplos incluyen los
ExpandCollapsePattem botones de menú el botón de Inicio, la partida de visión del árbol en el Windows Explorer y los combo boxes
Expone los elementos de una rejilla Permite que el cliente determine GndltemPattern rápidamente las coordenadas de una partida de rejilla
Expone la funcionalidad básica de la
GndPattem rejilla, el tamaño y la navegación a las celdas especificadas
Expone la relación jerárquica entre los elementos de la interfase del usuario de
HierarchyltemPattern los controles independientes de su relación en el árbol lógico
Proporciona métodos para enviar
Input entradas del ratón y el teclado
Implementado por los objetos (controles que realizan una sola acción que no es ambigua La mayor parte de estos controles no mantienen la condición, invocándolos se inicia una acción en la aplicación Los ejemplos de los controles que implementan esta
InvokePattern interfase incluyen los botones de contacto, los botones de la barra de herramientas, las partidas del menú, los hiperenlaces, los cuadros de verificación los botones de radio, el símbolo de mas en el control de vista del árbol y las partids de vista en el WindowsExplorer
Representa un elemento Ul en el árbol lógico indepndientemente de la LogicalElement implementcion ("Avalon", Microsoft® Win®) Estructura Lógica cambiada para las
LogicalStructureChangedEventArgs clases de argumentos de eventos Expone la capacidad de los elementos para cambiar entre representaciones múltiples del mismo conjunto de información, datos o descendientes Los ejemplos incluyen la Vista de Listas ultipleViewPattern Miniaturas, Mosaicos Iconos Listas, Detalles) Las gráficas de Excel (de Pastel de linea, de barras el Valor de las Celdas con una fóarmula), y un Calendario del Outlook (Año Mes, Semana, Día)
La excepción que es descartada cuando el valor de un argumento está fuera del rango permisible de valores tal como lo define el GetChckablePoint Por
NoClickablePointException ejemplo, cuando el rectándulo de limites está vaaón no tiene ancho o altura o el LogicalElement no es el mismo que fue invocado en ese punto
Esta excepción es descartada cuando existen un problema descargando un ensamble de interfase de comunicaciones Esto puede suceder en
ProxyAssemblyNotLoaded respuesta al Exception Automation ResgisterProxyAssembly o cuando se están cargando las procuraciones por omisión cuando se encuentra por primera vez la base hwnd LogicalElement
Expone una capacidad de control para manejar un valor dentro de un rango
RangeValuePattem finito Traslada los valores mínimos y máximos válidos del control y el valor actual
Representa un elemento en el árbol de
RawEIement elemento raíz Representa los elementos Ul que están
ScrollPattem expresando su valor Representa las partidas individuales en los contenedores que manejan la selección Los clientes de Ul Automation utilizan esta clase para obtener información acerca de o para manipular los elementos Ul que soportan el patrón de control SelectionltemPattern SelectonltemPattem Los ejemplos incluyen cualesquiera partidas que pueden ser seleccionadas en un control que soporta el patrón de control SelecbonPattem tales como una partida en un cuadro de lista, o de una vista del árbol Representa contenedores que manejan la selección Utilizado por Ul Automation, para que los clientes
SelectionPattern obtengan información acerca de, o manipulen los elementos de la intefase del usuano que soportan el patrón de control SelectionPattem
Expone un orden de clasificación actual del contenedor y permite que el cliente
SortPattern vuelva a clasificar programáticamente los elementos
Representa ventanas que se pueden
SplitPattem copiar ellas mismas creando una ventana adyacente
Representa partidas de rejilla con
TableltemPattern información del encabezado
Representa una rejilla que tiene una
TablePattem información del encabezado
Representa el texto tal como un control
TextPattem de edición
La clase de argumentos del evento TopLevelWindowEventArgs TopLevelWindowEventArgs
La clase de argumentos del evento
TreeLoadEventArgs TreeLoadEventArgs
Expone los valores para los controles que no extienden un rango, tales como los botones de radio, botones de
ValuePattern vasculamiento, los cuadros de verificación, los cuadros de edición, los valores de color RGB y las partidas del menú que se pueden venficar
Expone información acerca de una imagen o una animación que transporta información al usuano, tal como el señalizador ondulante de Internet
Visual I nf ormationPattem Explorer, o un globo girando que indica un documento en descarga, o papeles volando en el Windows Explorer que indican que una copia esta en progreso Expone una capacidad del elemento para cambiar su posición o tamaño en la pantalla Los ejemplos incluyen, las ventanas de aplicación de nivel superior
WindowPattem (Word o Windows Explorer), los cuadros de ventana principal del Outlook (carpetas, mensajes de correo electrónico, tareas) y las ventanas descendientes del MDI
Expone el nivel de acercamiento actual en un control y permite que los clientes
ZoomPattern lo cambien de manera programática
Enumeraciones
Contiene la señalización de acceso para AutomationPermissionFlag un objeto AutomationPermission
Las diferentes maneras en que pueden ChildArrangement ser acomodados los descendientes
El borde del contenedor al que se
DockPosition sujetara una ventana que se puede conectar
Utilizado por el patrón ExpandCollapse
ExpandCollapseState para indicar una condición expandida/colapsada GetDataOptions Opciones para GetData La enumeración que indica la condición de una partida jerárquica colapsada,
HierarchyltemState expandida o expandida parcialmente
Enumeración que indica la condición de los controles del cuadro de venficacion,
ItemCheckState botones de radio y similares
Señaladores de la condición del árbol
LoadState
Valores que indican si un nodo del árbol
LogicalMappmg principal sera desplegado en el árbol lógico
Enumeración utilizada para indicar los
ProxyFlags resultados de solicitar una propiedad
Son los datos de esta tabla que se
RowO rCo I u m n Major presentan mejor por filas o columnas
Señaladores utilizados para definir la
ScopeFlags delimitación cuando se escuchan los eventos
Utilizada por el ScrollPattem para indicar la dirección (de avance o retroceso) y la
ScrollAmount cantidad (pagina o linea) en la cual desplazarse
Señaladores para el SendMouselnput Estos señaladaores indican si se realizo
SendMouselnputFIags un movimiento, o si los botones fueron opnmidos o liberados
Señalador para las direcciones en las SphtStyles cuales se puede dividir una ventana Señalador que indica los cambios en la
StructureChangeType estructura del árbol lógico
La gravedad determina la colocación de un AutomationTextPointer cuando el texto es insertado en el AutomationTextPointer La gravedad siempre es a partir del punto de vista de los señaladores de texto, por ejemplo, yo estoy antes de mi carácter o estoy
TextPointerGravity después de mi carácter, cuando el usuario inserta un carácter en su localización del señalador de texto Antes significa que su señalador sera colocado antes del nuevo carácter, Después significa que el señalador sera colocado después del carácter nuevo
Señaladores que indican un cambio en
WindowChangeType las ventanas de nivel superior
La condición actual de la ventana para
W i ndowl nteractio nState la interacción del usuario
Las condiciones utilizadas para describir la condición visual de la ventana WindowVisualState WindowVisualState el Office y la definición del HTML, de la WindowState
Estructuras Especifica criterios para encontrar elementos utilizando el MatchCondition FindLogicalElement o el FindRawEIement Contiene el nombre, datos como un
NameAndData objeto, y datos como una cadena
Estructura que contiene información
ProxyDescnption acerca de una interfase de comunicaciones
Sortlnformation Información utilizada para clasificar
Delegados
Delegado para manejar AutomationEventHandler AutomationEvents
AutomationFocusChangedEvent Delegado para manejar el enfoque de Handler los eventos de cambio
AutomationPropertyChangedEventH Delegado para manejar los eventos de andler cambio de la AutomationProperty
LogicalStructureChangedEvent Delegado para manejar los eventos de Handler cambio de la estructura lógica
Implementado por los procesadores de gestión HWND, invocado por el sistema UlAutomation, para solicitar una interfase de comunicaciones para una
ProxyFactoryCalIback ventana especificada Debe de regresar una interfase de comunicaciones, si esta soportada, o cancelarse si no esta soportada
Delegado para manejar los eventos de
TopLevelWindowEventHandler ventana del nivel supenor
Las tablas q u e se encuentran a conti n u ación enum eran el em entos d e ejem plo expuestos po r el espacio de nom bre System W i ndows Autom ation I nteropP rovider Clases Contiene métodos utilizados por las aplicaciones Win32 o controles que
AutomationlnteropProvider implementan la Automatización de la Interfase del Usuano (Ul) Esta clase no puede ser heredada
Representa un bloque contiguo de
TextPointerPair caracteres
Interfases Expone el comportamiento o información generalmente asociado con lApphcationWindowInteropProvider una ventana de aplicación de nivel supenor
Expone semántica y metadatos para los lAssociatedlnformationlnterop elementos Ul que representan otros Provider objetos
Expone una capacidad del elemento
IDocklnteropProvider para cambiar su condición de conexión en el tiempo de ejecución
Expone una capacidad de control para expandir, para desplegar en pantalla mas contenido o colapsar el contenido oculto Soportado en conjunto con el patrón Hierarchyltem en las partidas TreeView para proporcionar un comportamiento similar a un árbol, pero también es importante para los controles individuales que se abren y cierran Los ejemplos de los Ul que implementan lExpandCollapselnteropProvider esto incluyen partidas -TreeView- menus inteligentes del Office que han sido colapsados -Galones en las barras de herramientas- el Combo box- Menus - "Expandos" en el cuadro de tareas del explorador del Windows Explorer (lado izquierdo en donde la vista de la carpeta es desplegada en pantalla frecuentemente) Expone la funcionalidad básica de las
IGridlnteropProvider rejillas tamaño y movimiento a celdas especificadas
Representa una partida que esta dentro
IGndltemlnteropProvider de una rejilla, no tiene métodos, solamente propiedades
Expone y permite a los clientes atravesar la relación jerárquica entre los elementos Ul independientemente de su relación en el árbol lógico Las relaciones de la jerarquía que no son
I Hierarchyltem InteropProvider circulares por definición Los ejemplos de los Ul que implementan esto incluyen - partidas del TreeView - Vision Org Chart - Menus - controles de ListView cuando esta activo el modo "Mostrar en grupo"
Implementado por los objetos (controles) que relacionan un sola acción que no es ambigua La mayor parte de estos controles no mantienen la condición, invocándolos se inicia una acción en la aplicación Los ejemplos de los elementos de la interfase del usuano que implementan esta interfase incluyen MnvokelnteropProvider los botones de contacto, los botones de la barra de herramientas, partidas de menú, hiperenlaces, cuadros de verificación, botones de radio, el símbolo de mas en el control de vista del árbol y las partidas de vista de lista en el Windows Explorer Expone una capacidad del elemento para cambiar entre representaciones múltiples del mismo conjunto de IMultipleViewlnteropProvider información, datos o descendientes Este patrón deberá ser implementado en el contenedor que controla la vista actual del contenido
Expone un conjunto de propiedades relacionadas que reflejan una capacidad del control para manejar un valor dentro de un rango finito Transporta valores mínimos y máximos validos a los controles y su valor actual Los ejemplos Numenc Spmners Progress Bar, IP Control (en los octetos individuales) algunos Color Pickers ScrollBars, algunos Sliders de interfase
IRangeValuelnteropProvider publica que representan elementos Ul que están expresando un valor actual y un rango de valor La interfase publica tiene la misma definición que el IValueProvider La diferencia de los dos patrones es que el RangeValue tiene propiedades adicionales y propiedades que generalmente no aparecen en las interfases publicas del patrón
Implementado por los proveedores para exponer elementos que son parte de una estructura mas que de un nivel profundo Para estructuras simples de un solo nivel las cuales no tienen descendientes, el IRawElementProviderFragment IRawEIementProviderSimple puede ser utilizado en vez de este El nodo raíz del fragmento debe de soportar la interfase I RawEIementProviderFragmentRoot, la cual es derivada de este y tiene algunos métodos adicionales El elemento raíz en un fragmento de Ul debe de soportar esta interfase Otros
I RawElementProviderFragmentRoot elementos del mismo fragmento necesitan soportar la mterfase I RawEIementProviderFragment
Implementado en el elemento raíz de un
IRawEIementProviderFragmentRoot fragmento Ul para permitir que sea AdviseEvents notificado o cuando se requiere onginar eventos de automatización
Implementado por los proveedores los cuales quieren proporcionar información
IRa EIementProviderHwndOvemde acerca de o quieren la reposición de los elementos contenidos basados en el HWND
Implementado por los proveedores que quieren proporcionar información acerca
I RawEIementProviderOvemdeType de o quieren la reposición de los elementos basados en los HWND contenidos
Interfase del proveedor UlAutomation implementado por los proveedores que quieren exponer propiedades para un elemento simple Para exponer
IRawEIementProviderSimple propiedades y estructuras para mas de un solo elemento, consultar la interfase denvada IRawEIementProviderFragment El patrón Scroll expone una capacidad de control para cambiar la porción de su región visible y que es visible para el usuario desplazando su contenido Los ejemplos Listboxes TreeViews otros contenedores que mantienen un área de contenido mayor que la región visible del control Observar que las barras de
IScrollInteropProvider desplazamiento mismas no deben de soportar un patrón que se pueda desplazar, ellos soportan un patrón Range Valué Los servidores deben normalizar el desplazamiento (0 a 100) Esta interfase publica representa los elementos Ul que desplazan su contenido Proporciona acceso a las propiedades implementadas por los proveedores que
ISelectionlnteropProvider no son "Longhom", en los contenedores que manejan la selección Expone un orden de clasificación actual del contenedor y permite que los clientes vuelvan a clasificar sus elementos de manera programática Algunos contenedores mantienen el orden de clasificación cuando insertan nuevas partidas o mueven su contenido
ISortlnteropProvider basados en el contenido actualizado (ejemplo Win32 hstboxes clasificada) Otros contenedores solo tienen la capacidad de realizar una clasificación una vez que llega a estar fuera de fecha cuando son insertadas nuevas partidas (ejemplo Excel) Expone la capacidad para dividir un área
ISphtlnteropProvider de contenido de elementos en cuadros múltiples o áreas interactivas
Identifica una rejilla que tiene una
ITablelnteropProvider información de encabezado
Utilizado para exponer partidas de rejilla
ITableltemlnteropProvider con información de encabezado
El patrón Text expone una capacidad para que los controles manipulen el texto Ejemplos controles TextBox RichEdit otros contenedores que
ItextlnteropProvider contienen texto y propiedades relacionadas con el texto Esta interfase representa los elementos Ul que mantienen el texto El patrón Text expone una capacidad para los controles para manipular el texto Ejemplos el TextBox RichEdit controla otros contenedores que
ITextPointerlnteropProvider contienen texto y propiedades relacionadas con el texto Esta interfase representa los elementos Ul que mantienen el texto
Inferíase publica que representa
IValuelnteropProvider elementos Ul que están expresando un valor
Utilizado para expresar información acerca de una imagen o una animación
IVisualInformationlnteropProvider que está transportando información al usuano Expone una capacidad del elemento para cambiar su posición en la pantalla
IWindowlnteropProvider o tamaño, asi como para cambiar la condición visual y cerrarla
Expone el nivel de acercamiento actual en un control y permite que los clientes
IZoomlnteropProvider lo cambien de manera programática
Enumeraciones Instrucciones para la navegación del
NavigateDirection árbol Ul Automation
Indica si el proveedor esta actuando como un sobrecontrolador o como un awEIementProviderOverndeType proveedor del área que no es del cliente
Espacio de Nombre de Señalización El espacio de nombre de señalización 328 proporciona un analizador que puede cargar o guardar una jerarquía de objetos (por ejemplo, elementos) de o a un archivo XML, o un archivo con una representación binaria Este proceso también establece propiedades asociadas con los objetos y con los procesadores de gestión de eventos asociados Ademas, el espacio de nombre de señalización 328 proporciona la funcionalidad para la señalización o la des-senalizacion de objetos La señalización es un proceso de tomar representaciones de objetos vivos en la memoria, y producir una corriente de datos adecuada para guardarla en un aparato de almacenamiento (tal como un disco), o para enviarlo por una red La des-seriahzacion es el proceso inverso, es decir, tomar una corriente de datos y producir objetos de la corriente de datos A la des-seriahzacion también nos referimos como "análisis" y el código que implementa el análisis es conocido como el analizador Tanto la señalización como la des-seriahzacion soportan formatos múltiples de formación de corrientes, tales como el formato XML al que nos referimos como XAML o un formato binario al que nos referimos como BAML Cuando el analizador es utilizado con un recopilador de marcas, si puede generar "CAML", la salida es un código para generar los objetos señalizados La señalización y des-serializacion soporta un rango completo de características a XAML, incluyendo sintaxis estándar, propiedades compuestas, sintaxis compacta compuesta, sintaxis implícita de descendientes, sintaxis explícita de descendientes, sintaxis de recolección con una etiqueta de recolección explícita, y sintaxis de recolección con etiquetas de recolección implícitas Tanto la señalización como la des-seriahzacion son completamente extensibles Las clases podrían definir la forma en que desean ser señalizadas o des-senalizadas a través de varios mecanismos, tales como • Por omisión, los nombres de las clases son tratados como nombres de etiquetas de marca, y las propiedades y eventos son tratados como atributos de marca de la misma manera Convertidores de clases de tipo definido (operando objetos auxiliares del
System ComponentModel TypeConverter) para señalizar o des-seriahzar los valores de atributo de marca Las clases pueden soportar los descendientes implícitos, implementando la interfase lAddChild (análisis), o utilizando los atributos CLR para describir la forma en que se señalizan los descendientes implícitos Las clases pueden controlar si una propiedad puede ser serializada/des-senalizada utilizando la DesignerSenalizationVisibility, y controlar si es necesario señalizar una propiedad en un objeto particular utilizando los métodos
DefaultValueAttnbute y ShouldPersist O, un componente puede serializarse/des-serializarse por si mismo utilizando el contenido literal, en cuyo caso la forma de los componentes señalizados no tiene que ajustarse a las reglas de XAML (los componentes necesarios para que sean un XML bien formado) Aunque los ejemplos anteriores utilizaron la palabra "marca" los mismos conceptos son aplicables al formato binario (BAML) Un segundo mecanismo de capacidad de extensión son los "ganchos del diseñador", los cuales permiten que otra pieza del código se conecte al señalizador o des-senalizador, e inserten e intercepten atributos durante el análisis y la señalización Este mecanismo permite que sean creadas nuevas características de marca, y permite el diseño personalizado de la sintaxis existente El recopilador de marca utiliza los ganchos del diseñador para generar el CA L La señalización y des-serializacion soportan una variedad de objetos (cualquier clase que opera desde el System Object) Las clases que operan desde el
System Windows DependencyObject pueden definir propiedades de dependencias, las cuales obtienen dos características extras • La señalización puede decirnos automáticamente si una propiedad necesita ser señalizada (y no necesita
DefaultValueAttribute/ShouldPersist) • El analizador puede realizar ciertas optimizaciones para hacer la carga mas rápida La señalización y des-senalizacion soportan los espacios de nombre X L y los archivos de definición que elaboran el mapa de los espacios de nombre XML para los espacios de nombre CRL La clase del elaborador de mapas permite la definición de elaboraciones de mapas arbitrarias a partir de los espacios de nombre XML, y etiqueta los nombres en las clases CLR Las siguientes tablas enumeran elementos de ejemplo expuestos por el espacio de nombre
System Windows Serialization
Clases La clase básica para el auxialiar de des- serializacion Esta debe de ser subclasificada si el diseño o la dirección
CustomXamlDesenalizer de des-senahzacion del tiempo de edición del analizador es requerido
La clase básica para el auxiliar de des- senalizacion Debe de ser subclasificada
CustomXamlSenahzer si es requendo el diseño o la dirección de señalización de tiempo de edición del señalizador
XamlSenahzer es responsable de poner un caso de esta clase en la pila de DependencyPropertyContext contextQ gntes de sena||zar propiedad alguna en un objeto
Especifica la visibilidad de esta DPSerializationVisibihtyAttnbute propiedad o método como es vista por el señalizador del diseñador
Clase básica abstracta para el Object EntityContext Context y el PropertyContext Atributo para especificar el LayoutType
LayoutAttnbute para una etiqueta
Maneja la elaboración de mapas entre el espacio de nombre Extensible Markup
Mapper Language (XML), el Uniform Resource Identifier (URI) y los tipos de espacio de nombre Microsoft® NET
Contiene información del elaborador de mapas y utiliza para elaborar mapas entre los espacios de nombre xm1
NamespaceMap NamespaceUn, y lo que es el Ensamble, urtNamespace para consultarlo
Información de contexto acerca del objeto actual que esta siendo señalizado El I XamlSenahzer es
ObjectContext responsable de poner un caso de esta clase en la pila de contexto en el SenalizeObject
La clase "Avalon" Element Parsing
Parser utilizada para crear un Arbol "Avalon"
Proporciona toda la información de
ParserContext contexto requerida por el analizador
Información de contexto acerca de la propiedad actual que esta siendo señalizada El XamlSenahzer es
PropertyContext responsable de poner un caso de esta clase en la pila de contexto antes de señalizar propiedad alguna en un objeto
Información de contexto acerca del objeto actual que esta siendo señalizado El XamlSenahzer es
TextContext responsable de poner un caso de esta clase en la pila de contexto en el SenalizeObject XamlAttnbuteNode XamlAttnbuteNode
XamlClrArrayPropertyNode XamlClrArrayPropertyNode El XamlClrComplexPropertyNode, el
XamlClrComplexPropertyNode cual es un objeto especificado como el descendiente de un objeto Clr
El XamlClrEventNode, el cual es un evento Clr en cualquier objeto XamlClrEventNode Observar que este puede estar en un DependencyObject, o cualquier otro tipo de objeto
El XamlClrObjectNode, el cual es nada
XamlClrObjectNode diferente al DependencyObject
El XamlClrPropertyNode, el cual es una propiedad Clr en cualquier objeto
XamlClrPropertyNode Observar que este puede estar en un DependencyObject, o cualquier otro tipo de objeto
Clase de excepción para las XamlClrPropertyParseException excepciones especificas de análisis de la propiedad del analizador
El XamIComplexDependencyPropertyNode
XamlComplexDependencyPropertyN el cual es una DependencyProperty ode especificada como el descendiente xm1 de un DependencyObject
El XamlComplexPropertySeriahzer es utilizado para señalizar las propiedades que no pueden ser señalizadas como
XamlComplexPropertySenalizer atributos XML En vez de ellas, son señalizadas las ComplexProperties como marcas dentro del elemento
XamIDefAttnbuteNode XamlDefAttnbuteNode XamlDefTagNode XamlDefTagNode Extiende el XamlSenalizer para incluir
XamlDependencyObjectSenalize animaciones (especificas para los Elementos)
El XamlDependencyPropertyNode, el cual es una DependencyProperty XamlDependencyPropertyNode normal, simple en un DependencyObject
Clase de excepción para las XamlDependencyPropertyParse excepciones especificas de análisis de Exception la propiedad dinámica del analizador
Especifica el nombre escrito del
XamlDesignerSenalizerAttnbute señalizador para una clase determinada
XamlDocumentNode XamlDocumentNode El XamlElementNode, el cual representa un DependencyObject Estos son diferentes de los objetos CLR ya que
XamlElementNode pueden tener DependencyProperties asociadas con ellos
XamlEndAttnbutesNode XamlEndAttnbutesNode
XamlEndClrArrayPropertyNode XamlEndClrArrayPropertyNode
XamlEndClrComplexPropertyNode XamlEndClrComplexPropertyNode
XamlEndClrObjectNode XamlEndClrObjectNode
XamlEndComplexDependency XamIEndComplexDependencyPropertyN PropertyNode ode XamlEndDocumentNode XamlEndDocumentNode
XamlEndElementNode XamlEndElementNode
XamlEndlDictionaryPropertyNode XamlEndlDictionaryPropertyNode
XamlEndlListPropertyNode XamlEndlListPropertyNode
XamlEnd esourceNode XamlEndResourceNode
XamlEndStartElementNode XamlEndStartElementNode XamlDictionaryPropertyNode XamlDictionaryPropertyNode
Señaliza la colección de nodos
XamlEnumeratorSenahzer señalados por la propiedad
XamllListPropertyNode XamllListPropertyNode Señaliza la I List señalada por la
XamllListSenahzer propiedad
XamIIncludeTagNode Xam I IncludeTagNode
Xam I LanguageNode XamILanguageNode
Xam I LiteralContentNode XamILiteralContentNode Nodo básico del cual se denvan todos
XamINode los demás
Clase de excepción para las Xa m I ParseException excepciones especificas del analizador
El XamlMappmgNode el cual elabora los mapas de un nombre de espacio xml y
XamIMappingNode los ensambla en un nombre de espacio clr
XamIResourceNode Xa m I ResourceNode El XamISenalizer es utilizado para que XamlRootSeriahzer persista el árbol lógico
Xam I RoutedEventNode Xam I RoutedEventNode Clase de excepción para el recordatorio
XamISenalizationCalIback de señalización de excepciones Exception especificas El XamlSenalizer es utilizado para que
XamlSenalizer persista el árbol lógico
Clase básica para que el XamlSenalizer
XamlSenahzerBase proporcione funciones de auxiliar común
XamITextNode XamITextNode Sobrecontrola el XamlSenalizer para los
XamlTextNodeSenahzer TextNodes de casos especiales
XamlXmlnsPropertyNode XamlXmlnsPropertyNode Una clase para encapsular los atributos
XmIAttnbutes específicos de XML de un DependencyObject
Un diccionario para controlar la XmlnsDictionary elaboración de mapas del espacio de nombre XML
Xm 1 Pa rse rDef au Its Clase publica utilizada por Avalon
Interfases
La mterfase lAddChild es utilizada para anexar objetos que permiten que los objetos o los textos debajo de sus lAddChild etiquetas en la marca no elaboren directamente el mapa para una propiedad
Interfase de señalización para las
IBamlSenalize Propiedades Dinámicas escritas por los archivos BAML
Esta interfase proporciona una propiedad Boolean solo de lectura denominada IsLoaded, un procesador lloaded de gestión de eventos clr denominado métodos Loaded, y DeferLoad y EndDeferLoad Proporciona métodos utilizados IPageConnector internamente por el BamIReader en el contexto recopilado
Para Contenido Literal-contenido el cual
IParseLiteralContent tiene su propio analizador y almacenador
La interfase lUnContext que les permite a los elementos (similares a Frame, PageViewer), los convertidores de tipos (similares a ImageData TypeConverters), un modo para lUriContext asegurar que el un básico esta ajustado en ellos por el analizador, el codegen para xaml, y los casos baml y caml Los elementos pueden entonces utilizar este un básico para navegar
Enumeraciones
Layout Types que pueden ser asociados
LayoutType con un objeto
Describe la acción del señalizador o des- senahzador que se toma después de un
SenahzationAction recordatorio a los auxiliares CustomXamLSerializer o CustomXam I Desenalizer
Describe la acción que van a tomar el
SenahzationErrorAction señalizador o o el des-serializador cuando ha sido reportado un error
XamINodeType Identificador para el XamINodeType
Espacio de Nom b re I nterop E l espa cio d e nom bre I nterop 330 pro porciona un conjunto de clase que hace posible la interoperabilidad con otros sistemas operativos o plataformas de computo Las tablas siguientes enumeran los elementos de ejemplo expuestos por el espacio de nombre System Windows Interop Clases La envoltura MarshalByRefObject sobre la clase de Aplicación que permite la iteración con el objeto de Aplicación en los AppDomains y para permitir la ApplicationProxy creación de la Aplicación en una sene de artículos de programación diferentes
La clase Iterop utilizada para implementar la parte administrada de un
DocobjHost Servidor Docobj para el alojamiento del buscador PresentationlnteropHelper VisualInteropHelper Implementa las clases Avalon, WindowInteropHelper, la cual ayuda al
WindowInteropHelper Interop b/w legacy y la Ventana Avalon
Delegados
AppEntryPoint Delegado para el método de punto de entrada de los códigos de Aplicación
Espacio de Nombre Forms Interop El espacio de nombre forms interop 332 proporciona un elemento que permite que una aplicación aloje una operación de control de forma Espacio de Nombre Svstem IO CompoundFile Otro espacio de nombre, el System 10 CompoundFile (no mostrado en la figura 3), proporciona servicios para utilizar un archivo compuesto en el cual son almacenados varios archivos de documentos que se pueden distribuir Estos servicios permiten la encriptacion y compresión del contenido Estos servicios también soportan el almacenamiento de nuevas ediciones múltiples del mismo contenido tales como un documento que puede volver a fluir, y un documento de formato fijo Las siguientes tablas enumeran los elementos de ejemplo expuestos por el espacio de nombre System 10 CompoundFile
Clases CertificateHelper Auxiliar para obtener un certificado digital para firma
Componente de referencia de subcornente que se refiere a un rango
CompoundFileByteRangeReference de bytes dentro de una comente de archivo compuesto Componente de referencia de subcornente que se refiere a una
CompoundFilelndexReference entrada lógica dentro de una comente de archivo compuesto CompoundFileReference Una referencia a una porción de un archivo compuesto
CompoundFileReferenceCollection Una colección solo de lectura de las referencias del archivo compuesto
CompoundFileStorageReference Referencia lógica a un almacenamiento de contenedor CompoundFileStreamReference Referencia lógica a una comente del contenedor
CompressionTransform CompressionTransform para utilizarlo en Compound File DataSpaces
Esta clase hace posible que los usuanos obtengan acceso al StorageRoot del contenedor actual basados en el caso
ContainerHelper de Aplicación cargada
Utilizado para manipular los espacios de datos dentro de un caso especifico de un contenedor "Avalon" Esta es la forma en que los datos de transformación son conectados en el
DataSpaceManager contenedor para hacer posible características similares a la compresión de datos y encnptación de datos
Clase sólo de lectura que hace posible que los clientes revisen y validen las
DigitalSignature firmas digitales existentes Una colección sólo de lectura de firmas digitales DigrtalSignatureCollection
Esta clase es utilizada para crear, persistir y manipular las firmas digitales
Dígita ISignatureManager en un archivo compuesto Contiene elementos de propiedad correspondientes a las propiedades en el conjunto de propiedad estándar de
DocumentSummarylnfo información de resumen de archivo OLE FormatVersion Clase para manipular la versión de objetos
La excepción que es descartada cuando el formato del Drm InstanceDataFormatException TransformlnstanceData en el disco es inválido OleProperty PropSet Clase para manipular la información de una versión Esta clase también proporciona APIs para agregar y
Renditionlnfo eliminar almacenamientos y comentes en y desde la versión
RenditionlnfoCollection Una colección fuertemente tipificada de los objetos Renditionlnfo
RenditionManager Calse para manipular las versiones en un Contenedor
Clase que implementa la interfase IDataTRansform, de modo que pueda ser utilizada como la transformación de
Rights anagementEncryptionTransform datos del contenedor que implementa la encnptacion y desencnptacion R del contenido Clase para manipular los almacenamientos en el archivo del
Storagelnfo contenedor Representa la clase del contenedor pnncipal Existe un caso del StorageRoot StorageRoot para un archivo compuesto Streamlnfo Proporciona acceso para manipular las comentes en el archivo del contenedor
Summarylnfo OleProperty PropSet Clase para manipular la información de una versión Esta clase también proporciona APIs para agregar y
Renditionlnfo eliminar almacenamientos y comentes en y desde la versión
Rend ition I nfoCo I lection Una colección fuertemente tipificada los objetos Renditionlnfo
Rendition Manager Calse para manipular las versiones en un Contenedor
Clase que implementa la interfase IDataTRansform de modo que pueda ser utilizada como la transformación de
RightsManagementEncryptionTransform datos del contenedor que implementa la encnptacion y desencnptacion RM del contenido Clase para manipular los almacenamientos en el arch Storagelnfo contenedor Representa la clase del contenedor pnncipal Existe un caso del StorageRoot StorageRoot para un archivo compuesto Streamlnfo Proporciona acceso para manipular las comentes en el archivo del contenedor
Summarylnfo Un caso de esta clase es proporcionado a cada transformación de objeto como un medio para transformar un objeto para mteractuar con el ambiente proporcionado por el administrador del espacio de datos No es obligatorio que un transformador de objetos mantenga
TransformEnvironment una referencia sobre un objeto TransformEnvironment determinado ya que podría seleccionar descartarlo si no existe necesidad para mteractuar con el ambiente de transformación Clase publica para pasar argumentos en los procesadores de gestión de eventos
TransformlnitializationEventArgs
Contiene información que describe el uso de la licencia regresada de un
Useücenselnfo servidor Tungsten Representa un enumerador sobre el uso de licencias almacenadas en los datos UseücenselnfoEnumerator del caso DRM Transform Clase para una versión de registro la cual consiste de numeras mayores y
VersionTuple menores Procesador de firmas utilizado por el administrador digital de firmas para
XmlDigitalSignatureProcessor firmar y validar datos de acuerdo con la recomendación W3C
Interfases Interfase para ser implementada por todos los objetos de transformación de IDataTransform datos Esta interfase es utilizada para desacoplar el R Transform y el RMWizard mediante una implementacion de personalización de
ILicenseStorage construcción de esta interfase nosotros habilitamos a 3ras partes para aprovechar el R Wizard sin forzarlos a utilizar el RMTransform ISignatureProcessor Interfase del procesador de firma Esta interfase es utilizada para manejar de manera opaca cualquier interfase COM (envuelta en una Envoltura COM lUnknownRCW de Tiempo de Ejecución) como un lUnknown Enumeraciones DigitalSignatureProcessor Procesadores Predefinidos de Firma Digital
SignatureProcessorNameType Tipo de Procesador de firma Cuando se nombra un objeto de transformación, la cadena que esta siendo pasada puede ser interpretada
Transform IdentifierTypes en una de diferentes maneras Este tipo enumerado es utilizado para especificar la semántica de la cadena de identificación
Delegados InvahdSignatureHandler Invocado cuando las firmas fallaron la venficacion de control
Transform InitializeEventHandler Método en el delegado para inicializar las transformaciones
Espacio de Nombre System Windows Automation Un espacio de nombre System Windows Automation contiene elementos utilizados para soportar la capacidad de acceso y la automatización de la interfase del usuario El sistema de capacidad de exceso incluye un lado del cliente y un lado del proveedor Un sistema de herramientas incluye herramientas de automatización del lado del cliente incluyendo la clase de automatización del cliente para buscar la información de la mterfase del usuario La clase de automatización del cliente incluye herramientas de registro de eventos y herramientas de descubrimiento de elementos lógicos El conjunto de herramientas incluye ademas las herramientas de automatización del lado del proveedor para proporcionar al cliente la información de la interfase del usuario Las herramientas de automatización del lado del proveedor incluyen una clase de automatización del proveedor que tiene herramientas para proporcionar al cliente la información de eventos La clase de automatización del cliente proporciona métodos de automatización Ul para uno o mas clientes La clase de automatización del cliente contiene métodos que no son específicos para cualquier elemento Ul La clase de automatización del cliente puede proporcionar un método para obtener un elemento natural o lógico desde un punto, un procesador de gestión de ventana, o el elemento raíz de la computadora de escritorio La clase de automatización del cliente puede proporcionar ademas métodos para encontrar un elemento lógico basados en los criterios de entrada Las clases de automatización del cliente de preferencia incluyen un método para registrar y eliminar del registro notificaciones de eventos La clase de automatización de preferencia proporciona funciones de un auxiliar para cargar DLLs de procuración, recuperar los nombres localizados de propiedades y patrones de control y realizar comparaciones de elementos La clase de automatización del cliente incluye también métodos para que los clientes escuchen los eventos Las tablas sig u ientes en u m era n el em entos d e ej em pl o expuestos por el espacio del n om bre
Clases System Wi ndows Autom ation Expone el comportamiento y la información generalmente asociada con una ventana de aplicación de nivel supenor Los clientes pueden utilizar esta clase para hacer mosaicos o cascadas de descendientes de interfase
ApplicationWindowPattern de documentos múltiples de la aplicación (MDI), encontrar su botón en la barra de tareas, y localizar las secciones bien conocidas de su interfase del usuario tales como las barras de herramientas y menus Expone la semántica y los metadatos para los elementos Ul que representan
Associated InformationPattern otros objetos Contiene los métodos de Automatización de la Interfase del Usuario (Ul) para los clientes (tecnología de asistencia o escritos de prueba
Automation automatizada) Estos métodos no son específicos para un elemento particular
AutomationEvent No utilizarlo Esta clase sera eliminada en versiones futuras
AutomationEventArgs La clase pattern o custom event args AutomationFocusChangedEventArgs La clase focus event args Clase básica para identificadores basados en la identidad de objetos Esta clase es efectivamente abstracta,
Automation Identifier solamente se ejemplifican las clases denvadas
Clase interna utilizada para des- senahzar los Automation Identifiers No
AutomationldentifierProxy debe ser utilizada directamente AutomationPattern No usarla Esta clase sera eliminada en versiones futuras
Proporciona un conjunto de permisos para tener acceso a los elementos Ul
AutomationPermission Esta clase no puede ser heredada Proporciona métodos y propiedades para AutomationPermissionAttnbute
AutomationPermissionAttribute Esta clase no puede ser heredada AutomationProperty No usarla Esta clase sera eliminada en versiones futuras
AutomationPropertyChangedEx La clase PropertyChanged event args AutomationTextAttnbute Identificador para los Automation Text Attnbutes
Representa la posición de un carácter dentro del texto El AutomationTextPointer proporciona
AutomationTextPomter métodos y propiedades para tener acceso al texto y la navegación de texto
AutomationTextRange Utilizarla para obtener, ajustar, agregar y eliminar selección
Proposito El objeto AutomationTextSelection maneja toda la administración de selección de textos La selección en la que esta encendida el señalador de inserción es la selección activa Usos de ejemplo Es utilizada
AutomationTextSelection cuando los clientes quieren agregar, eliminar, modificar o ajustar la selección También los clientes pueden descubnr lo que se ha seleccionado realmente a través del AutomationTextSelection
AutomationTextUnit Identificador para Automation Text Units
BasePattern Clase Interna Expone la capacidad del elemento para cambiar su condición conectada en el
DockPattern tiempo de ejecución Esta excepción es descartada cuando el código del cliente intenta manipular un
ElementNotEnabledException elemento o controlar lo que actualmente no esta habilitado El ElementPath proporciona cntenos necesarios para regresar posteriormente al elemento lógico anteriormente ElementPath grabado, modificado o totalmente creado por el proveedor de la aplicación
Expone una capacidad de los controles para expandir para desplegar en pantalla mas contenido o para colapsar el contenido oculto Los ejemplos
ExpandCollapsePattern incuyen botones de menú, el botón de Inicio, la partida de vista del árbol en el Windows Explorer y los combo boxes
Expone los elementos de una rejilla Permite que el cliente determine
GndltemPattern rápidamente las coordenadas de una partida de rejilla Expone la funcionalidad básica de la rejilla, el tamaño y la navegación a las
GndPattern celdas especificadas Expone la relación jerárquica entre los elementos de la interfase del usuano de
HierarchyltemPattern los controles independientes de su relación en el árbol lógico Input Proporciona métodos para enviar entradas del ratón y el teclado Implementado por los objetos (controles) que realizan una sola acción que no es ambigua La mayor parte de estos controles no mantienen la condición, invocándolos se inicia una acción en la aplicación Los ejemplos de los controles que implementan esta
InvokePattern mterfase incluyen los botones de contacto, los botones de la barra de herramientas, las partidas del menú, los hiperenlaces, los cuadros de venficacion, los botones de radio, el símbolo de mas en el control de vista del árbol, y las partidas de vista de lista en el Windows Explorer Representa un elemento Ul en el árbol lógico independientemente de la
LogicalElement implementacion ("Avalon", MicrosoftR Win32R) LogicalStructureChangedEventArgs Estructura lógica cambiada para las clases de eventos args
Expone la capacidad de los elementos para cambiar entre representaciones múltiples del mismo conjunto de información, datos, o descendientes Los ejemplos incluyen la Vista de Listas,
MultipleViewPattern Miniaturas, Mosaicos, Iconos, Listas, Detalles) Las gráficas de Excel (de Pastel, de Linea, de Barras, el Valor de las Celdas, con una formula), y un Calendario de Outlook (Año, Mes, Semana, Día) La excepción que es descartada cuando el valor de un argumento esta fuera del rango permisible de valores, tal y como lo define el GetClickablePoint Por ejemplo, cuando el rectángulo de limites
NoClickablePointException esta vacio, no tiene ancho o alto o el LogicalElement, que en ese punto no es el mismo que fue invocado Esta excepción es descartada cuando existe un problema para cargar un ensamble de mterfases de comunicaciones Esto puede suceder en respuesta a ProxyAssemblyMotLoadedException Automation RegisterProxyAssembly o cuando se cargan mterfases de comunicación por omisión con la primera base hwnd que es encontrado el elemento LogicalElement Expone una capacidad de control para manejar un valor dentro de un rango finito Translada los valores mínimos y
RangeValuePattern máximos validos del control y el valor actual RawElement Representa un elemento en el árbol de elemento natural
ScrollPattern Representa los elementos Ul que están expresando un valor
Representa las partidas individuales en los contenedores que manejan la selección La clase Ul Automation esta clase es utilizada por los clientes para obtener información acerca de o para manipular los elementos Ul que soportan el patrón de control SelectionltemPattern SelectionltemPattern Los ejemplos incluyen cualesquiera partidas que pueden ser seleccionadas en un control que soporta el patrón de control SelectionPattern tales como una partida en un cuadro de lista, o de una vista del árbol Representa contenedores que manejan la selección Utilizado por Ul Automation, para que los clientes obtengan información acerca de, o
SelectionPattern manipulen los elementos de la interfase del usuario que soportan el patrón de control SelectionPattern Expone un orden de clasificcion actual del contenedor y permite que el cliente
SortPattern vuelva a clasificar programáticamente los elementos Representa ventanas que se pueden copiar ellas mismas creando una
SplitPattem ventana adyacente TableltemPattern Representa partidas de rejilla con información del encabezado
TablePattern Representa una rejilla que tiene una información del encabezado
TextPattem Representa el texto tal como un control de edición
TopLevelWindowEventArgs La clase de argumentos del evento TopLevelWindowEventArgs
TreeLoadEventArgs La clase de argumentos del evento TreeLoadEventArgs
Expone los valores para los controles que no extienden un rango tales como los botones de radio botones de vasculamiento los cuadros de ValuePattern verificación los cuadros de edición los valores de color RGB y las partidas del menú que se pueden venficar Expone información acerca de una imagen o una animación que transporta información al usuano tal como el señalizador ondulante de Internet Explorer o un globo girando que indica
Visual I nf ormationPattem un documento en descarga o papeles volando en el Windows Explorer que indican que una copia está en progreso
Expone una capacidad del elemento para cambiar su posición o tamaño en la pantalla Los ejemplos incluyen las ventanas de aplicación de nivel supenor (Word o Windows Explorer) los cuadros
WindowPattern de ventana pnncipal de Outlook (carpetas mensajes de correo electrónico tareas) y las ventanas descendientes del MDI Expone el nivel de acercamiento actual en un control y permite que los clientes
ZoomPattem lo cambien de manera programática Enumeraciones AutomationPermissionFlag Contiene la señalización de acceso para un objeto AutomationPermission
ChildArrangement Las diferentes maneras en que pueden ser acomodados los descendientes
La orilla del contenedor al que se sujetara una ventana que se puede
DockPosition conectar Utilizado por el patrón ExpandCollapse para indicar una condición ExpandCollapseState expandida/colapsada GetDataOptions Opciones para GetData La enumeración que indica la condición de una partida jerárquica colapsada,
HierarchyltemState expandida o expandida parcialmente
Enumeración que indica la condición de los controles del cuadro de verificación,
ItemCheckState botones de radio y similares
LoadState Tres señalizaciones de condición Valores que indican si un nodo del árbol pnncipal sera desplegado en el árbol
LogicalMappmg lógico ProxyFlags Enum utilizado para indicar los resultados de solicitar una propiedad
RowOrColumnMajor Son los datos de esta tabla que se presentan mejor por filas o columnas
Señalizaciones utilizadas para definir la delimitación cuando se escuchan los ScopeFlags eventos Utilizado por el ScrollPattern para indicar la dirección (delantera o trasera) y la
ScrollAmount cantidad (pagina o linea) por la cual desplazarse Señalización para SendMouselnput Estas señalizaciones indican si tuvo
Send ouselnputFlags lugar el movimiento, o si los botones fueron oprimidos o liberados Señalización para las direcciones en las cuales se puede dividir una ventana
SplitStyles
Stru ctu reCh a n geTy pe Señalización que indica los cambios en la estructura del árbol lógico
La gravedad determina la colocación de un AutomationTextPointer cuando el texto es insertado en el AutomationTextPointer La gravedad siempre es a partir del punto de vista de los señaladores de texto, por ejemplo, Yo estoy antes de mi carácter o Estoy después de mi carácter Cuando el
TextPointerGravity usuario inserta un carácter en su localización del señalador de texto, Antes significa que su señalador sera colocado antes del nuevo carácter, Después significa que el señalador sera colocado Después del carácter nuevo
WindowChangeType Señalización que indica un cambio en las ventanas de nivel superior
WindowInteractionState La condición actual de la ventana para la interacción del usuario
Las condiciones utilizadas para describir la condición visual de la ventana
WindowVisualState WindowVisualState el Office y la definición del HTML, del WindowState Estructuras Especifica criterios para encontrar elementos que utilizan MatchCondition FindLogicalElement o FindRawEIement
NameAndData Contiene el nombre, datos como un objeto, y datos como una cadena
Estructura que contiene información acerca de una interfase de ProxyDescription comunicaciones Sortlnformation Información utilizada para clasificar
Delegados AutomationEventHandler Delegado para manejar AutomationEvents
AutomationFocusChangedEventHandler Delegado para manejar el enfoque de los eventos de cambio
AutomationPropertyChangedEvent Delegado para manejar los eventos de Handler cambio AutomationProperty
LogicalStructureChangedEventHandler Delegado para manejar los eventos de cambio de la estructura lógica
Implementado por los procesadores de gestión HWND, invocado por el sistema Ul Automation, para solicitar una interfase de comunicaciones para una
ProxyFactoryCalIback ventana especificada Debe de regresar una interfase de comunicaciones, si esta soportada, o cancelarse si no esta soportada TopLevelWindowEventHandler Delegado para manejar los eventos de ventana del nivel superior Espacio de Nombre System Windows I n k Un espacio de nombre System Windows Ink proporciona clases que soportan los sistemas de procesamiento de tinta electrónica Las técnicas del procesamiento de tinta electrónica son útiles para una variedad de aplicaciones de software Estas técnicas de procesamiento de tinta electrónica son particularmente aplicables al análisis de la tinta electrónica, incluyendo el análisis de la distribución, clasificación, y reconocimiento de la tinta electrónica Ciertas técnicas de procesamiento de tinta electrónica permiten que la tinta electrónica sea procesada de una manera asincrona con respecto a la operación del software que implementa las técnicas, de modo que la tinta electrónica puede ser procesada sin detener o demorar de manera importante la operación de la aplicación del software La aplicación del software aun puede continuar para aceptar una nueva entrada de tinta electrónica mientras que la entrada de tinta electrónica anterior esta siendo procesada Una interfase de programación de aplicación ejemplifica un objeto de analizador de tinta que recibe datos de un documento para un contenido de tinta electrónica que contiene el documento de una aplicación del software que aloja el documento, y opera en una primera serie de artículos en programación del procesamiento El objeto del analizador de tinta emplea posteriormente la primera serie de artículos en programación para hacer una copia de los datos del documento, proporciona la copia de los datos del documento a un proceso de análisis de tinta electrónica, y regresa el control de la primera serie de artículos en programación de procesamiento al proceso de análisis Después de que el proceso de análisis ha analizado la tinta electrónica, el objeto analizador de tinta concilla los resultados del proceso de análisis con los datos del documento actuales del documento En modalidades particulares, los elementos en un archivo o documento pueden ser descritos basados en una posición espacial en relación entre ellos Por ejemplo, tanto un golpe de tinta electrónica, como un texto tecleado, pueden ser descritos en términos de la misma coordenada espacial Utilizando la información espacial para describir los elementos de un documento, la aplicación del software que administra al documento puede mantener una estructura de datos que describe la relación entre sus elementos del documento En particular, la aplicación del software puede mantener una estructura de datos que describe la clase de los diferentes elementos del documento y también define las asociaciones entre los diferentes elementos del documento Estas asociaciones pueden ser definidas, por ejemplo, como información utilizada para enlazar los datos de golpe de tinta electrónica o recolecciones de los mismos a otros elementos en el documento electrónico (tales como palabras, lineas, párrafos, dibujos, celdas de tablas, etc ) Al describir los elementos de documento en un archivo o estructura de datos del documento basados en una posición espacial, los elementos del documento para una variedad de tipos de archivo pueden emplear técnicas comunes para identificar y manipular sus elementos del documento Mas particularmente, una variedad de aplicaciones del software puede describir los elementos del documento dentro de un documento basados en una posición espacial y emplear esta posición espacial haciendo referencia al uso de los métodos comunes de análisis de tinta electrónica Todavía adicionalmente, al especificar una región particular de un documento para el análisis, cada aplicación del software puede limitar el proceso de análisis a solamente los elementos deseados dentro del documento Con el fin de analizar la nueva entrada de tinta electrónica en un documento, la aplicación de software que administra el documento modifica una estructura de datos asociada con el documento para incluir la nueva tinta que va a ser analizada Entonces la aplicación del software proporciona esta estructura de datos (o las porciones importantes de la misma) a una herramienta de análisis de tinta, la cual copia algo o toda la estructura de datos para el análisis (y opera en esta copia de los datos que es independiente de la estructura de datos del documento del programa de aplicación) La herramienta de análisis de tinta pasa la copia a un proceso de análisis tal como un proceso de análisis (por ejemplo, el proceso de análisis de distribución y/o un proceso de clasi icación La aplicación del software puede volver a asumir su operación normal incluyendo la recepción de un nuevo ingreso de tinta electrónica y/u otros datos, mientras que el proceso de análisis de tinta esta siendo realizado Ademas de recibir una nueva tinta electrónica, se pueden recibir cualesquiera Otros datos a través del programa de aplicación, por ejemplo los datos que modifican un tamaño, localización o contenido de la tinta existente, texto, imágenes, gráficos, tablas, gráficas de flujo, diagramas y similares, datos que agregan texto adicional, imágenes, gráficos, tablas, gráficas de flujo, diagramas y similares, borrar datos existentes en el texto, imágenes, gráficos, tablas, gráficas de flujo, diagramas, y similares Después de que se han concretado todos los procesos de análisis deseados, los resultados del análisis son regresados a la herramienta de análisis de tinta La herramienta de análisis de tinta realiza una variedad de funciones para facilitar el procesamiento de la tinta electrónica La herramienta de análisis de tinta puede ser implementada como una interfase de programación, tal como un API Ademas, la herramienta de análisis de tinta puede ser implementada como un grupo de rutinas de objetos del software, e información relacionada que puede ser invocada por una aplicación del software según sea necesario para analizar la tinta en un documento En una modalidad, un API que incorpora una implementacion de una herramienta de análisis de tinta (al que nos referimos en lo sucesivo como un API de Análisis de Tinta), puede contener dos clases centrales La primera clase es a la que nos referimos como una clase de "Contexto de Análisis", y la segunda clase es la clase del "Analizador de Tinta" Los componentes de la clase de "Contexto de Análisis" son utilizados para crear un objeto de contexto de análisis Los componentes de la clase del "Analizador de Tinta" entonces es utilizado para crear y emplear un objeto que proporciona un documento independiente del objeto de contexto de análisis a un proceso de análisis, determinar cuando han sido generados los resultados del análisis, y conciliar los resultados del análisis con la condición actual de un documento La clase de Contexto de Análisis es implementada por una aplicación central para crear un objeto de contexto de análisis, el cual sirve como una visión de procuración en el árbol interno del documento de la aplicación del software Este objeto de contexto de análisis contiene todos los datos de tinta sin analizar, y el objeto de contexto de análisis es utilizado para identificar cuales datos de tinta sin analizar deberán ser analizados El objeto de contexto de análisis contiene también información acerca de la tinta previamente analizada La tinta previamente analizada puede ser utilizada para determinar como debe de ser analizada la tinta que actualmente no se ha analizado, y por si misma, ser modificada en el curso del análisis de la tinta sin analizar Ademas, el objeto de contenido del análisis contiene información acerca del contenido que no es de tinta del documento, el cual es utilizado para clasificar de manera correcta la tinta, en la forma de anotaciones al contenido que no tiene tinta La clase de contexto de análisis incluye un constructor, el cual, cuando es invocado por la aplicación del software, crea el objeto de contexto de análisis Esta clase puede también incluir varias propiedades para el objeto de contexto de análisis, incluyendo la propiedad titulada "Dirty Región {get } " La propiedad Dirty Región define la porción del documento (y por lo tanto la porción del objeto del contexto de análisis) que contiene los datos de tinta sin analizar La clase de Contexto de Análisis también puede incluir una propiedad titulada "Rootnode {get,}", la cual identifica el nodo de contexto raíz o el más alto en el objeto de contexto de análisis El nodo de contexto raíz contiene, como nodos de contexto descendientes, todos los otros objetos de nodos de contexto para un objeto de contexto de análisis determinado En modalidades particulares, el nodo de contexto raíz debe de ser del nodo de contexto tipo "Root" En las modalidades en donde la aplicación implementa su propio objeto de contexto de análisis, el objeto de contexto de análisis puede tener otros nodos de contexto tales como hermanos del nodo de contexto de raíz, pero los componentes de la clase del Analizador de Tinta pueden ser limitados para considerar los nodos de contexto contenidos por el nodo de contexto raíz La clase de Contexto de Análisis puede incluir adicionalmente la propiedad "Análisis Hints {get,}", la cual, regresa una adaptación de los objetos ocultos del análisis establecida por la aplicación del software Como se explicara con mayor detalle mas adelante, los objetos de ocultamiento de análisis pueden contener cualquier tipo de información que pueda ayudar al proceso de análisis Esta información puede incluir, por ejemplo, información no comprobada, guias, o una lista de palabras También puede incluir información que establece un lenguaje para ser utilizado para el análisis, información que designa la tinta sin analizar como un texto escrito en forma manual solamente, o un dibujo solamente, o proporcionar cualquier clase de guia al proceso de análisis, tal como la identificación de la tinta en la forma de listas, tablas, formas, gráficas de flujo, conectores, contenedores y similares Ademas de estas propiedades, la Clase de Análisis Context también puede incluir vanos métodos que pueden ser invocados, por ejemplo, por medio de la aplicación del software para hacer que un objeto de contexto de análisis ejecute una tarea Por ejemplo, la clase de Contexto de Análisis puede incluir un método titulado "FindNode (Guide id) " Cada nodo del objeto del contexto de análisis tiene un identif icador globalmente único (o GUID), y este método localizara el nodo especificado en la invocación en cualquier parte del objeto del contexto de análisis Igual que la clase de Contexto de Análisis, la clase del analizador de tinta define también un constructor publico que permite que la aplicación del software cree una instancia de clase (por ejemplo, un objeto de analizador de tinta), junto con varias propiedades Por ejemplo, puede contener una propiedad titulada "User Interface Context {get, set,}", la cual define la serie de artículos en programación de procesamiento a las cuales son regresados los resultados del proceso de análisis Esta propiedad permite que los resultados sean sincronizados con otro objeto Por ejemplo, si esto es ajustado a la forma principal, los resultados del analizador del analizador sera detonados en una serie de artículos en programación principal de la aplicación También puede contener la propiedad "AnalysisOptions AnalysisOptions {get, set,}", la cual especifica vanos criterios que pueden ser utilizados para el proceso de análisis Estos criterios pueden incluir, por ejemplo, habilitar el reconocimiento del texto, habilitar el uso de tablas, habilitar el uso de listas, habilitar el uso de anotaciones, y habilitar el uso de conectores y contenedores La clase de Analizador de Tinta incluirá varios métodos Por ejemplo, esta clase puede incluir un método titulado AnalysisRegion Analyze () Este método inicia un proceso de análisis sincrónico Los datos de elemento del documento son pasados dentro de este método, el cual describe la condición actual del documento, e indica que tinta del documento necesita ser analizada Con algunas modalidades, los datos del elemento del documento pueden ser proporcionados como un objeto de contexto de análisis (por ejemplo AnalysisRegion Analyze (Contexto de Análisis)), como se indico anteriormente Alternativamente, los golpes de tinta individuales pueden ser pasados al proceso de análisis, ya sea utilizando una referencia a los golpes (por ejemplo, AnalysisRegion Analyze (Golpes)) o ser indicados como una propiedad del objeto del Analizador de Tinta (por ejemplo, InkAnalyzer Strokes {get.set}) sin pasar propiedades al método para analizar Una vez que se ha terminado el proceso de análisis, este método regresara una referencia al documento independientemente del contexto de análisis que ha sido modificado para que contenga los resultados del proceso de análisis El método también regresa un valor AnalysisRegion que describe el área del documento en donde han sido calculados los resultados La clase del Analizador de Tinta también puede incluir un método titulado "AnalysisRegion Analyze( AnalysisContext, waitRegion) ' Este método es el mismo que el método Analysis Región Analyze () sincrónico descrito anteriormente, pero solamente tiene tinta analizada si son necesarios los resultados en el área waitRegion especificada Mas particularmente, se solicita que este método identifique el objeto del contexto de análisis del documento y la región del objeto del contexto de análisis (al que nos referimos como la "waitRegion") para lo cual, deberá analizar de manera sincrónica el proceso de análisis En ciertas modalidades, todas las otras regiones del objeto del contexto de análisis serán ignoradas, a menos que el proceso de análisis necesite analizar el contenido de esas regiones con el objeto de completar su análisis de la región waitRegion Como se explico anteriormente, el objeto del contexto de análisis pasado con este método contiene una propiedad denominada "DirtyRegion ' la cual describe las áreas del documento que necesitan análisis Al especificar una región waitRegion en particular, la aplicación del software puede obtener los resultados del análisis mas rápidamente para una región de ínteres especifica, en vez de tener todos los datos de la tinta analizada en el documento analizado Cuando se invoca cualquiera de estos métodos de Análisis, se ejecutara cualquier proceso de análisis disponible También debido a que este método de análisis invoca de manera sincrónica, no existe la necesidad de ejecutar el proceso de conciliación en sus conclusiones, ni se detonara un evento una vez que se haya terminado La clase del Analizador de Tinta también puede incluir un método titulado "BackgroundAnalyzer(AnalysisContext) " Este método inicia en la operación de análisis especificada, pero lo hace en una serie de artículos en programación de análisis de soporte separada Por lo tanto, este método regresara a controlar casi inmediatamente la serie de artículos en programación de procesamiento principal, mientras que la operación de análisis real se termina en el fondo En particular, este método regresara a un valor de "cierto" si el proceso del análisis fue iniciado exitosamente Nuevamente, el valor de AnalysisContext pasado al método identifica el objeto de contexto de análisis para el documento e indica cual es la tinta del documento que tiene que ser analizada Una vez que se ha completado la operación de análisis en la serie de artículos en programación del fondo, se origina un evento de Resultados para permitir que la aplicación del software tenga acceso a los resultados El evento contiene los resultados, y el método de conciliación el cual es utilizado para incorporar de nuevo los resultados en el objeto del contexto de análisis para la condición actual del documento cuando son regresados los resultados Cada uno de estos tres métodos de Análisis, invocan a la vez el método Clon' en una clase de 'Analysis Región Utilizando el método Clon' estos métodos de Análisis crean un objeto de contexto de análisis del documento independiente que es modificado posteriormente por el proceso de análisis para mostrar los resultados del análisis La clase del Analizador de Tinta también puede incluir un método titulado "Reconcile(AnalysisContext actual, AnalysisResultsEventArgs resultArgs) , el cual invoca la aplicación el software después de recibir los eventos de resultados que fueron ocasionados por la invocación del método BackgroundAnalyze(AnalysisContext) El método de conciliación compara los resultados del análisis contenidos en el objeto de contexto de análisis del documento independiente, con la versión actual del objeto del contexto de análisis mantenida por la aplicación del software Este método identifica los nodos que necesitan ser agregados y eliminados de la versión actual del objeto de contexto de análisis e identifica si cualquiera de las siguientes propiedades del nodo existente han cambiado sus resultados de reconocimiento, su localización, los golpes de tinta asociados con el nodo, o cualesquiera otros datos asociados con los resultados de la operación de análisis Este método también escribe estos cambios identificados a la versión actual del objeto de contexto de análisis Este método es sensible al ordenamiento del ordenamiento del nodo de contexto de modo que tales como el orden de los nodos de contexto de palabra en el nodo de contexto de linea Los resultados del análisis (es decir, el valor de la propiedad AnalysisResultsEventArgs) se vuelven a pasar dentro de este método, ya que ellos contienen una estructura publica de resultados y una estructura privada de resultados La estructura publica es regresada de modo que la aplicación del software pueda tener una vista previa de los cambios que ocurrirán en la etapa de conciliación La estructura privada se incluye para evitar que la aplicación del software cambie cualquiera de los resultados del análisis antes del proceso de conciliación La clase del Analizador de Tinta también puede incluir los métodos titulados RecognizersRecognizersPriontyO" y "SetHighestPriorityRecognizer(recogmzer) " Cuando necesita ser reconocida la tinta, se utilizara el reconocedor apropiado basado en el lenguaje y las capacidades Por consiguiente, el método Recognizers RecognizersPriority( ) regresa el proceso de reconocimiento con el objeto en el orden en el cual fueron evaluados por el objeto Analizador de Tinta El orden es determinado por el sistema dependiendo de los procesos de reconocimiento disponibles, pero puede ser sobre controlado por la aplicación del software, evocando el SetHighestPriorityRecognizer(reconocedor) en el objeto Analizador de Tinta El Analizador de tinta procederá a la enumeración a través de esta lista ordenada hasta que un reconocedor apropiado pueda ser encontrado El método SetHighestPriorityRecognizer(reconocedor) establece la prioridad de un proceso de reconocimiento Al establecer la prioridad de un proceso de reconocimiento en particular, se utilizara el proceso de reconocimiento si coincide con el lenguaje y las capacidades necesarias de la operación de reconocimiento actual En esencia, el
SetHighestPnontyRecognizer(reconocedor) impulsa al reconocimiento de si el proceso de reconocimiento designado a la parte superior de la lista regresada por el método La clase del Analizador de Tinta también puede contener un método titulado "AnalysisRegion Abort()", el cual puede utilizar un objeto de contexto de análisis como un parámetro Este método permite una operación de análisis del fondo o el frente para que se determine de manera temprana Este método regresa a una región de análisis que describe el área que esta siendo analizada antes del aborto Por lo tanto, si la aplicación del software pretende continuar la operación de análisis en un momento posterior, esta región puede ser fusionada en la región DirtyRegion del objeto del contexto de análisis de la condición actual del documento Todavía adicionalmente, la clase del analizador de tinta puede incluir un evento titulado AnalysisResultsEventHandler', el cual activa un objeto InkAnalyzer tan frecuentemente como sea practico Mas particularmente, este evento puede activarse entre los procesos de análisis, y por lo menos una vez cada cinco segundos Este evento puede ser utilizado para proporcionarle a la aplicación una actualización en lo que respecta a la condición del proceso de análisis asincrono en marcha (o proceso) La API del Ink Analysis también puede incluir clases ademas de la clase de Contexto de Análisis, y la clase el Analizador de Tinta Por ejemplo, el Ink Analysis API puede incluir la clase de Context Node Esta clase puede incluir vanos componentes relacionados con los nodos de contexto que forman el objeto de contexto de análisis, y el objeto de contexto de análisis del documento independiente tal como la propiedad titulada 'ContextNodeType Type {get,} " Cada nodo de contexto tiene un tipo, y existe un conjunto de reglas especificas a las que se debe de adherir cada uno de los tipos Estas incluyen reglas tales como los tipos de nodos de contexto de descendientes que son permitidos, o si pueden estar o no directamente asociados los golpes en el nodo de contexto o solamente por medio de sus nodos de contexto descendientes Los tipos posibles de nodos de contexto pueden ser definidos en una enumeración ContextNodeTypes y pueden incluir, por ejemplo, los siguientes tipos un nodo I nkAnnotation , el cual representa los datos de tinta que anotan los datos que no son de texto, un nodo InkDrawing el cual representa los datos de tinta que forman un dibujo, un nodo InkWord, el cual representa los datos de tinta que forman una palabra, un nodo de Linea, el cual contiene uno o mas nodos InkWord y/o TextWord para que formen palabras en una linea de texto, el nodo Listltem, el cual puede contener nodos de Párrafo, Imagen o similares que se esperan en una lista, un nodo de Lista, el cual contiene uno o mas nodos Listltem que describe cada uno una entrada en la lista Los tipos de nodos también pueden incluir un nodo NonlnkDrawing, que representa la imagen de dibujo que no tiene tinta, un nodo de objeto, que representa los datos no cubiertos por otros valores de la enumeración ContextNodeType, un nodo de Párrafo el cual contiene uno o mas nodos de Linea correspondientes a las lineas que forman un párrafo, un nodo de Foto o Imagen, que representa una imagen de foto, un nodo raíz el cual sirve como el nodo superior en un objeto de contexto de análisis, un nodo de Tabla, el cual contiene los nodos que representan las partidas que forman una tabla, un nodo TextBox que representa un cuadro de texto, un nodo TextWord, y un nodo Unclassifiedlnk, que corresponde a datos de tinta que todavía no han sido clasificados Los tipos de nodo también pueden incluir un nodo de grupo, para grupos de otros nodos, un nodo InkBullet para partidas de viñetas, un nodo de Filas para elementos del documento presentados en una filas de una tabla, un nodo de Celda para elementos del documento presentado en una celda de una tabla La clase Context Node también puede incluir la propiedad titulada "GUID Id {get,}", la cual es un identif icador globalmente único para el nodo de contexto actual Con el objeto de permitir el acceso a cualquier nodo de contexto deseado, cada nodo de contexto dentro de un solo objeto de contexto de análisis deberá tener un identificador único Esta clase también puede incluir un propiedad titulada "AnalysisRegion Location {get,}', la cual identifica la localización en el espacio de documento en donde esta realmente colocado el nodo de contexto importante Una AnalysisRegion es una estructura bi-dimensional que agrupa posiblemente uno o mas rectángulos de desunión similares a estructuras juntas Esta clase también puede incluir la propiedad titulada "StrokeCollection Strokes {get,}," la cual identifica los trazos de tinta asociados con el nodo de contexto relevante En algunas modalidades particulares, solo los nodos de contexto de hoja (tales como Palabra, Dibujo o Nodos de Viñetas) son permitidos por el Ink Analysis API para que tengan trazos La aplicación del software puede utilizar esta propiedad para hacer referencia a los trazos en el nivel de nodo de hoja a través de todos los nodos de contexto ancestros (por ejemplo, el nodo raíz contendría una referencia a trazos para todos los trazos en el objeto de contexto de análisis relevantes) Ademas, esta clase puede incluir la propiedad titulada "ContextNodeParentNode {get,}", lo cual identifica el nodo de contexto de origen que contiene el nodo de contexto relevante En modalidades particulares, los nodos de contexto siempre son creados dependientes de un nodo de contexto de origen, siendo el nodo de contexto raíz un elemento estático de un objeto de contexto de análisis Esta clase también puede incluir la propiedad "ContextNode[] SubNodes {get,}" la cual identifica todos los nodos de contexto que son descendientes directos del nodo de contexto relevante Es decir, esta propiedad solamente identificará aquellos nodos de contexto descendientes que estén debajo de un nivel en el objeto de contexto de análisis Por ejemplo, el valor de esta propiedad para un nodo de contexto de párrafo solamente identificará los nodos de contexto de linea contenidos por el nodo de párrafo, y no los nodos de contexto de palabra que son descendientes del nodo de contexto de linea Esta clase también puede incluir la propiedad titulada "RecognitionResult RecognitionResult {get }", la cual proporciona los resultados del reconocimiento según fueron calculados por el proceso o procesos de análisis de reconocimiento relevante, ya que el RecognitionResult puede representar mas de una linea de texto desde mas de un lenguaje El Recognition Result esta disponible en cada nodo de contexto en el objeto de contexto de análisis independiente del documento, aunque la propiedad RecognitionData la cual es establecida por el proceso de análisis de reconocimiento y es utilizada para crear el objeto RecognitionResult podría solamente ser establecida en un nivel del árbol del nodo de contexto para evitar la duplicación de datos Si el nodo no tiene un RecognitionData asociado con el mismo, ya sea unirá los resultados de reconocimiento de todos sus subnodos o extraerá los resultados de reconocimiento de su origen Esta clase también puede incluir la propiedad titulada "Stream RecognitionData {get, set,}", la cual es la forma persistente del valor RecognitionResult Nuevamente, el proceso de análisis de reconocimiento produce el valor Stream RecognitionData que es establecido en el nodo de contexto relevante El objeto RecognitionResult se construye posteriormente con base en este valor La clase Context Node puede incluir ademas una propiedad titulada "ContextLink[] Links {get,}", la cual proporciona una matriz de objetos ContextLink El objeto ContextLink describe una relación alternativa entre dos nodos de contexto Aunque los nodos de contexto generalmente tienen una relación de origen-descendiente con otros nodos de contexto, un ContextLink permite una relación alternativa entre los nodos de contexto Por ejemplo, un ContextLink puede permitir la conexión entre dos nodos de contexto, sujetando un nodo de contexto a otro, siendo la contención de un nodo de contexto por otro nodo de contexto, o un tipo deseado de enlace definido por la aplicación del software Se pueden agregar ContextLmks a esta matriz invocando el método AddLink De un modo similar, los ContextLmks pueden ser removidos de esta matriz invocando el método DeleteLink Todavía adicionalmente, esta clase puede incluir las propiedades "IsContainer {get,}" y "IsInkLeaf {get,}" La propiedad IsContainer {get,}, tiene el valor de cierto" si el nodo de contexto relevante no es un nodo de contexto de hoja (es decir, si el nodo de contexto relevante contiene nodos de contexto descendientes y por lo tanto es considerado como un nodo de contexto contenedor), y de lo contrario, tiene el valor de 'falso" La propiedad IsInkLeaf {get,} tiene el valor de "cierto" si el nodo de contexto actual no es un nodo de contexto de contenedor y de lo contrario tiene el valor de "falso" Es decir, si el nodo de contexto actual no contiene nodos de contexto descendientes algunos, es considerado un nodo de contexto de hoja En ciertas modalidades, se espera que el nodo de contexto InkLeaf contenga referencias a los datos de trazos, mientras que los nodos de contexto de contenedor no tienen esta restricción Los nodos de contexto de contenedor pueden o no tener referencia a datos de trazos, según sea designado por la aplicación del software La clase Context Node también puede contener la propiedad "RectRotatedBoundingBox {get, set,}' El valor de esta propiedad es calculado por un proceso de análisis de distribución y clasificación Si los datos de tinta asociados con el nodo de contexto relevante son escritos en un ángulo, entonces los limites del nodo de contexto todavía serán alineados horizontalmente Sin embargo, el valor de la propiedad RotatedBoundingBox, sera alineado al ángulo en el cual fueron escritos los datos de tinta asociados con el nodo de contexto relevante Todavía adicionalmente, esta clase puede incluir la propiedad "ReClassifiable {get }", la cual informa al InkAnalyzer si se permite modificar los valores del nodo de contexto relevante Ademas de estas propiedades, la clase de Context Node también puede incluir varios métodos Por ejemplo, esta clase puede incluir un método titulado "ContextNode CreateSubNode(ContextNodeType type)" Este método permite la creación de nodos de contexto descendientes de un tipo particular En una modalidad, este método puede permitir solamente tipos de descendientes validos del nodo de contexto relevante para ser creados, evitando de este modo que sean creadas estructuras de datos mal formadas Por ejemplo, este método solamente puede permitir un nodo de contexto de Linea para crear los nodos de contexto descendientes InkWord y TextWord Esta clase también puede contener un método titulado "void DeleteSubNode(ContextNode node)", el cual borra el nodo de contexto descendiente al que se hace referencia desde el objeto de contexto de análisis relevante Sin embargo, en ciertas modalidades, si el nodo de contexto al que se ha hecho referencia, todavía contiene trazos, o nodos de contexto descendientes, entonces fallara este método También, si el nodo de contexto de referencia no es un descendiente directo del nodo de contexto relevante, entonces este método fallara Si una aplicación de software implementa su propio objeto de contexto de análisis y a la vez emplea este método, no borra los nodos de contexto que no están vacíos, o los nodos de contexto que no son descendientes directos del nodo de contexto relevante para evitar estructuras de datos mal formadas en el objeto de contexto de análisis Adicionalmente, esta clase puede incluir el método "ContextNodef] HitTestSubNodes(AnalysisRegion región) , el cual regresa a una matriz de nodo de contacto que están localizadas en la región especificada Sin embargo solamente los nodos descendientes inmediatos de este elemento son regresados, no todos los descendientes La región es definida por el objeto AnalysisRegion, el cual puede ser una colección de uno o mas rectángulos En modalidades particulares, si cualquier parte de una localización del nodo de contexto se cruza con la región especificada, entonces el nodo de contexto sera regresado en la matriz Este método es empleado, por ejemplo, para crear el objeto de contexto de análisis de documento independiente y conciliar los resultados del análisis con el objeto de contexto del análisis correspondiente a la condición actual del documento Por lo tanto, este método es invocado frecuentemente, y debe ser optimizado para un acceso repetido rápido por el objeto InkAnalyzer La clase Context Node también puede contener un método titulado "MoveStroke(Stroke stroke, Contextnode destination) ' Este método mueve la asociación de un trazo de un nodo de contexto de hoja a otro En ciertas modalidades, este método es utilizado solamente entre nodos de contexto de hoja También puede incluir un método titulado "MoveSubNodeToPosition(int Oldlndex, int Newlndex)", el cual reordena el nodo de contexto relevante con respecto a sus nodos de contexto hermanos Por ejemplo, si el documento tiene tres palabras en una linea, es decir, la palabra 1, palabra 2, y palabra 3, entonces su orden es implicado por la matriz de subnodos regresada al nodo de contexto de origen Este método permite que sea cambiado su orden de modo que, en relación con el nodo de contexto de origen relevante, la palabra 1 es especificada como la ultima palabra en la linea, moviendo el nodo de contexto para la palabra 1 de la posición 1 a la posición tres Todavía adicionalmente, esta clase puede incluir el método titulado Addl_ink(Contextl_ink hnk) , el cual agrega un nuevo objeto ContextLink al nodo de contexto actual En las modalidades preferidas, el objeto ContextLink debe contener una referencia al nodo de contexto relevante con el objeto de que el ContextLink sea agregado exitosamente a la matriz de ContextLinks asociados con el nodo de contexto relevante También puede contener el método titulado "Deletel_ink(ContextLink hnk)" Este método borra o elimina el objeto ContextLink especificado de la matriz de ContextLinks para el nodo de contexto relevante En esta modalidad, las invocaciones de este método casi siempre se completan exitosamente, aun si no existe el ContextLink en la matriz de los ContextLinks asociados con el nodo de contexto relevante La API del Ink Analysis también puede incluir una clase Analysis Hint Igual que con muchas de las clases anteriormente descritas, la clase Analysis Hint puede incluir un constructor, titulado AnalysisHintQ", el cual iniciahza un objeto Analysis Hint para una condición vacia Esta clase también puede incluir un numero de propiedades, incluyendo una propiedad titulada "AnalysisRegion Location {get,} Esta propiedad especifica la localización en el documento (como una AnalysisRegion) a la cual es aplicable el AnalysisHint Por ejemplo, si el documento es una nota en forma de árbol con una sección de titulo en la parte superior de la pagina, entonces la aplicación podría ajustar un AnalysisHint para la región del titulo para especificar que se espera una linea horizontal de tinta en esa región Este Analysis Hint ayudara a aumentar la exactitud de un proceso de análisis Esta clase también puede incluir una propiedad titulada
"string Factoid {get, set,}", la cual especifica una "información no confirmada' particular que va a ser utilizada para la localización en el documento en la cual es aplicable el AnalysisHint Las informaciones no comprobadas proporcionan sugerencias para un proceso de reconocimiento con respecto al uso esperado de datos de tinta (por ejemplo como texto regular, dígitos, códigos postales, nombres de archivos y URLs de la web) Esta clase también puede incluir las propiedades tituladas RecognizerGuide Guide {get, set,} y 'OverrideLanguageld {get, set,}' La propiedad RecognizerGuide Guide {get, set,} especifica la guia de escritura que va a ser aplicada a la localización en el documento a la cual es aplicable el AnalysisHint Las guias de escritura pueden, por ejemplo, ayudar a mejorar la exactitud del proceso del análisis del reconocedor especificando al usuario e informando al proceso de análisis del reconocedor en donde escribirá el usuario lineas o caracteres La propiedad OverrideLanguageld {get, set, } especifica un Language Hint para el documento al cual es aplicable el AnalysisHint El ajuste del Language Hint ocasiona que el objeto InkAnalyzer utilice el lenguaje designado en vez del lenguaje especificado en el nodo de contexto Esta clase puede incluir también una propiedad titulada "PrefixText {get, set }", la cual especifica el texto que es escrito o mecanografiado antes de una linea de tinta que va a ser reconocida Todavía adicionalmente, esta clase puede incluir una propiedad titulada "Recognizer odes Recognition Flags {get, set,}', la cual especifica el tipo particular de modo que debe respetar un proceso de reconocimiento en la localización del documento a la cual es aplicable el AnalysisHint Adicionalmente, esta clase puede incluir una propiedad titulada"SuffixText {get, set }", la cual especifica el texto que esta escrito o mecanografiado después de una linea de tinta que va a ser reconocida, y una propiedad titulada 'SuffixText {get, set,} , la cual especifica un conjunto de palabras particular que debe de ser utilizado por un proceso de análisis de reconocimiento Se pueden utilizar listas de palabras cuando se espera que los resultados del reconocimiento sean conocidos antes de que el usuario haya escrito realmente los datos de entrada, tales como una lista de términos médicos que se espera que sean escritos dentro de una forma medica Todavía adicionalmente, esta clase puede incluir una propiedad titulada "WordMode {get, set} Si este valor es "cierto , entonces el proceso del análisis se inclinara por si mismo a regresar una sola palabra para la región de análisis completa También puede incluir una propiedad titulada "Coerce {get, set} , la cual si es "cierta" forzara al proceso de análisis a confinar su resultado a cualquier valor de información no comprobada o lista de palabras establecida en el relevant hint Esta clase también puede incluir una propiedad titulada "AllowPartialDictionaryTerms {get, set}" Si este valor de propiedad es 'cierto', entonces se permitirá que el proceso de análisis de reconocimiento regrese palabras parciales de su diccionario de reconocimiento En modalidades particulares, el Ink Analysis API puede incluir ademas una clase Analysis Región Esta clase puede incluir, por ejemplo, constructores múltiples para construir un objeto Por ejemplo puede contener un primer constructor para construir un objeto AnalysisRegion que tiene cualquier región, un segundo constructor para construir un objeto AnalysisRegion basado en los parámetros para un rectángulo bi-dimensional , y un tercer constructor para construir un objeto AnalysisRegion basado en cuatro coordenadas espaciales El constructor por omisión (default) puede, por ejemplo, crear una región vacia Esta clase puede incluir también un numero de propiedades Por ejemplo, esta clase puede incluir una propiedad titulada Rectangle Bounds {get,}", la cual recupera los rectángulos del limite para la AnalysisRegion, una propiedad titulada "IsEmpty {get,}", la cual indica si el objeto AnalysisRegion relevante tiene un interior vacio y una propiedad titulada Islnfinite {get,}", la cual indica si la AnalysisRegion relevante es ajustada para ser infinita o no Esta clase también puede incluir un numero de métodos, tales como un método titulado AnalysisRegion Clone()' , el cual copia el objeto importante AnalysisRegion Esta clase también puede incluir un método titulado "Equals(AnalysisRegion otherRegion)", el cual prueba si el objeto AnalysisRegion especificado (al que nos referimos como el otherRegion) es idéntico al objeto relevante AnalysisRegion Este método regresa un valor de "cierto", si el interior del objeto Analysis Región especificado es idéntico al interior del objeto Analysis Región relevante, y de otro modo regresa a un valor de "falso" Esta clase puede incluir ademas un método "lntersect(AnalysisRegion regionTolntersect)", el cual recorta el objeto AnalysisRegion relevante para la región de análisis especificada Por lo tanto, el objeto AnalysisRegion resultante solamente incluirá las áreas que se traslaparon o cruzaron en la región de análisis especificada Esta clase también puede incluir el método titulado "lntersect(Rectangle rectangle)", el cual corta el objeto AnalysisRegion relevante para el rectángulo especificado Nuevamente, el objeto AnalysisRegion resultante solamente incluirá las áreas que se traslaparon o cruzaron el rectángulo especificado También puede incluir el método titulado "MakeEmptyQ", el cual inicializa el objeto AnalysisRegion relevante a un interior vacio, y el método titulado "Makelnf inite()", el cual establece el área ocupada por la AnalysisRegion relevante que va a ser infinita Puede incluir ademas varios métodos para unir o separar áreas definidas de manera diferente, tales como el método titulado Union( AnalysisRegion regionToUmon)", el cual especifica un objeto AnalysisRegion para unir o agregarlo al objeto AnalysisRegion relevante y el método titulado "Union(Rectangle rectangle)", el cual une un rectángulo especificado al objeto AnalysisRegion relevante Con este método, el rectángulo puede ser especificado en términos del espacio de las coordenadas para el objeto AnalysisRegion relevante Por supuesto, esta clase puede incluir numerosos otros métodos para combinar áreas o extraer un área de la otra, basado en cualquier definición deseada para las áreas La API del Ink Analysis también puede tener una clase
Recognition Result Igual que con muchas de las clases explicadas anteriormente, la clase Recognition Result puede incluir uno o mas constructores Por ejemplo, esta clase puede incluir un constructor titulado "RecognitionResult(Stream lattice)', el cual construye un objeto Recognition Results de una cuadricula de reconocimiento determinada En modalidades particulares, una cuadricula de reconocimiento es una forma señalizada de los resultados de un proceso de reconocimiento Por ejemplo, este método puede especificar una cuadricula de reconocimiento como una matriz de byte para ser utilizada para la construcción del objeto RecognitionResult relevante También puede incluir un constructor titulado "RecognitionResult(ContextNode node)", el cual construye un objeto RecognitionResults, de un nodo de contexto determinado También puede incluir un constructor titulado "RecognitionResult(stnng Text, int StrokeCount) , el cual construye un objeto Recognition Results de un valor de texto especificado, el cual a su vez esta asociado con un numero especificado de trazos y podría ser utilizado para la corrección si el proceso de reconocimiento no llega con un valor de reconocimiento alterno correspondiente a los datos de tinta reales escritos a mano Todavía adicionalmente, esta clase puede incluir un constructor titulado "RecognitionResult(RecognitionResult leftRecognitionResult, RecognitionResult rightRecognitionResult)", el cual construye un objeto RecognitionResults uniendo dos objetos Recognition Results La clase Recognition Result puede incluir también una o mas propiedades, tales como una propiedad titulada StrokeCollection StrokeCollection {get,} , la cual proporciona una matriz de indicaciones de trazos que representa una colección de trazos que están contenidos en un solo objeto de tinta, y una propiedad titulada RecognitionAlternate TopAlternate {get,}", la cual proporciona la mejor alternativa de los resultados de reconocimiento Esta clase puede incluir la propiedad titulada RecognitionConfidence
RecognitionConfidence {get,}", la cual proporciona el nivel de confianza (por ejemplo, fuerte, intermedia o deficiente) de la sección superior alternativa para los resultados actuales de un proceso de análisis de reconocimiento y una propiedad titulada "stnng TopStrmg {get,}', la cual regresa la mejor cadena de resultados de los resultados del análisis de un proceso de análisis de reconocimiento La clase Recognition Results también puede incluir un numero de métodos, tales como un método titulado "public RecognitionAlternateCollection GetAlternateCollectionFromSelection (selectionStart, selectionLenght, maximumAlternates)", el cual especifica una colección de alternativas de una selección dentro de la cadena de mejores resultados de los resultados del análisis de un proceso de análisis de reconocimiento, en donde cada alternativa corresponde solamente a un segmento de tinta Los parámetros de entrada para este método pueden incluir, por ejemplo, un valor el cual especifica el inicio de la selección de texto desde la cual es regresada la colección de alternativas, un valor que especifica la longitud de la selección de texto desde la cual es regresada la colección de alternativas, y un valor que especifica el numero máximo de alternativas para regresar Este método puede entonces regresar la colección RecognitionAlternateCollection de las alternativas de una selección dentro de la cadena de mejores resultados del resultado de reconocimiento La clase Recognition Results puede incluir ademas un método titulado Recognition Result erge(RecognitionResult left, string separator, RecognitionResult right)" Este método puede ser utilizado para crear un nuevo objeto Recognition Result de una sola cadena, dando como resultado una cuadricula plana, la cual esta unida a una sola cadena al inicio o final de un objeto RecognitionResult existente, o concatenar una sola cadena entre dos objetos RecognitionResult existentes Esta clase puede incluir también un método titulado
"ModifyTopAlternate(RecognitionAlternate altérnate) , el cual especifica el resultado de reconocimiento que va a ser modificado con una alternativa conocida Con algunas modalidades por omisión, la mejor cadena de resultados de los resultados de un proceso de análisis de reconocimiento corresponde a la alternativa superior Sin embargo, este método puede ser utilizado para especificar cuales alternativas que no sean la alternativa superior, son utilizadas en los resultados del proceso de análisis de reconocimiento Si resulta la alternativa superior nueva en una segmentación diferente que la anterior, el método ModifyTopAltenate actualizara automáticamente los nodos de contexto para reflejar los cambios Para recuperar las alternativas que pueden ser utilizadas para modificar el resultado de reconocimiento, este método invoca el método GetAlternatesFrom Selection Esta clase también puede tener un método titulado Stream SaveQ", el cual mantiene persistentemente el objeto RecognitionResults relevante en la forma de una cuadricula de reconocimiento Una cuadricula de reconocimiento es un formato señalizado utilizado para expresar los resultados de un proceso de reconocimiento La API del Ink Analysis también puede tener un tipo de enumeración Analysis Options Este tipo puede contener uno o mas campos que especifican la forma en que los datos de tinta serán analizados por un proceso de análisis, tal como el campo titulado "const AnalysisOptions Default", el cual hace posible todas las opciones disponibles para el proceso de análisis Por ejemplo, este campo puede hacer posible el reconocimiento de texto, el uso de tablas, el uso de listas, el uso de anotaciones, el uso de conectores y contenedores y el uso de resultados intermedios Este tipo también puede incluir un campo titulado "const AnalysisOptions EnableAnnotations", el cual habilita y deshabihta la detección de anotaciones, un campo titulado "const AnalysisOptions EnableConnectorsAndContainers", el cual habilita y deshabihta la detección de conectores y contenedores y un campo titulado "const AnalysisOptions
Enablel ntermediateResults", el cual habilita y deshabihta el regreso de los resultados de análisis a la aplicación de software entre el uso de procesos de análisis diferentes, secuenciales (por ejemplo, entre un proceso de análisis y un proceso de reconocimiento posterior) Este tipo puede también tener un campo titulado "const AnalysisOptions EnableLists", el cual habilita y deshabihta la detección de listas, y un campo titulado "const AnalysisOptions EnableTables' , el cual habilita y deshabihta la detección de tablas Este tipo enumeración puede incluir ademas un campo titulado "const AnalysisOptions
EnableTextRecongnition", el cual habilita y deshabilita un proceso de análisis de reconocimiento de texto Sin embargo, si están disponibles procesos de análisis adicionales (o versiones diferentes del mismo proceso de análisis), entonces este tipo puede incluir, por consiguiente, un AnalysisOptions adicional Todavía adicionalmente, la API del Ink Analysis puede incluir una clase AnalysisResultsEventArgs Esta clase puede tener un constructor titulado "pubhc
AnalysisResultsEventArgs()", el cual crea una estructura de datos que contiene los resultados del análisis y es regresada la aplicación del software cuando se ha originado un evento AnalysisResults- Esta clase también puede incluir una propiedad titulada "InkAnalyzer InkAnalyzer {get,}", el cual identifica el objeto InkAnalyzer que realizó el proceso de análisis La API puede tener también una clase de Linea, la cual puede ser util con algunos tipos de sistemas operativos que reconocen el uso de un objeto "Linea" que representa una linea geométrica Esta clase puede incluir un constructor, tal como un constructor titulado "pubhc Line(Point beginPoint, PointendPoint)", el cual crea un objeto de Linea Esta clase puede incluir varias propiedades, tales como una propiedad titulada "pubhc PomtBeginPoint {get, set,}\ la cual representa el punto de inicio del objeto de linea, y una propiedad titulada 'pubhc Point EndPoint {get, set,} , la cual representa el punto final del objeto de linea Ademas de estas clases, La API del Ink Analysis puede contener también una clase Recognition Altérnate Esta clase puede incluir elementos que representan los pares de palabras posibles para los segmentos de tinta que son comparados con un diccionario del reconocedor Por ejemplo, esta clase puede incluir una propiedad titulada "Line Ascender {get,}", la cual proporciona una linea ascendente de un objeto RecognitionAlternate que existe en una sola linea (siendo representada una linea como dos puntos), una propiedad titulada "pub c Line Baseline {get,}", la cual proporciona la linea de base de un objeto Recognition Altérnate que existe en una sola linea y una propiedad titulada "Line Descender {get,} , la cual proporciona la linea descendente de un objeto Recognition Altérnate que existe en una sola linea Esta clase también puede incluir una propiedad titulada 'RecognitionResult Extract {get,}", la cual proporciona un objeto Recognition Results para el objeto RecognitionAlternate actual Esta propiedad puede se utilizada, por ejemplo, para extraer el objeto RecognitionResult para una palabra del objeto RecognitionResult para una linea que contiene esa palabra También puede incluir la propiedad titulada "Line Midhne {get,}", la cual proporciona una linea media para un objeto RecognitionAlternate que existe en una sola linea, una propiedad titulada "StrokeCollection Strokes {get,}", la cual proporciona la colección de trazos que están contenidos en un objeto de tinta (es decir, proporciona un StrokeCollection que representa los trazos que están asociados con el RecognitionResult) y una propiedad titulada "StrokeCollection[] StrokesArray {get,}", la cual proporciona una colección de trazos que están contenidos en uno o mas objetos de tinta, representando los trazos que están asociados con el RecognitionResult Esta Clase puede incluir también una propiedad titulada RecognitionConfidence RecognitionConfidence {get,}", la cual proporciona el nivel de confianza (por ejemplo, fuerte, intermedia o poca) que ha determinado un proceso de análisis de reconocimiento en el reconocimiento de un objeto RecognitionAlternate, o de un movimiento Para los nodos que no son de linea, la RecognitionConfidence inferior del descendiente de los nodos de contexto relevantes serán regresados También puede contener una propiedad titulada ""string RecognizedString {get,}", la cual especifica la cadena de resultados de la alternativa De este modo, en cada nodo de contexto arriba de un nodo de contexto de palabra, la cadena de resultados es concatenada junto con este método Por ejemplo, un nodo de linea contendrá una cadena de resultados que a la vez contiene los resultados de todos sus descendientes o nodos de palabra Un nodo de párrafo entonces contendrá una cadena de resultados que contiene los resultados de todos sus descendientes o nodos de linea La clase Recognition Altérnate también puede contener uno o mas métodos que incluyen, por ejemplo, un método titulado "StrokeCollection[] GetStrokesArrayFromTextRange(int selectionstart, int selectionlength)", el cual especifica un StrokeCollection de cada objeto de tinta que corresponde a un rango de texto conocido Esta clase también puede contener un método titulado "StrokeCollection[]GetStrokesFromStrokesArrayRange(Stroke Collection[] strokesArray)", el cual especifica la colección mas pequeña de trazos que contiene una colección de trazos de entrada conocida y para el cual puede proporcionar alternativas el reconocedor Mas particularmente, los trazos son regresados por una matriz de objetos de tinta conteniendo cada uno una matriz de indicaciones de trazos para la colección La colección de trazos de tinta regresado por este método puede coincidir con la colección de entrada, o puede ser mas grande, si la colección de entrada coincide solamente con parte del resultado de reconocimiento mas pequeño que incluye todos los movimientos de entrada Esta clase puede incluir ademas un método titulado "StrokeCollectionGetStrokesFromStrokesRanges(StrokeCollec tion strokes)", el cual especifica la colección mas pequeña de trazos que contiene una colección de entrada conocida de trazos y para la cual el reconocedor puede proporcionar alternativas, y un método titulado "StrokeCollection GetStrokeFromTextRange(int selectionstart, int selectionlength) , el cual especifica el StrokeCollection que corresponde al rango de texto conocido Esta clase puede incluir ademas un método titulado uvoidGetTextRangeFromStrokes(ref int selectionstart, ref int selectionend , StrokeCollection strokes)", el cual especifica el rango mas pequeño del texto reconocido para el cual el reconocedor puede regresar una alternativa que contiene un conjunto conocido de trazos, y un método titulado "void GetTextRangeFromStrokesArray(ref int selectionstart, ref int selectionend , StrokeCollection[] strokesarray)" , el cual especifica el rango mas pequeño de texto reconocido por el cual el reconocedor puede regresar una alternativa que contiene un conjunto de trazos conocidos También puede tener un método titulado "RecognitionAltenateCollection SphtWithConstantPropertyValue(G U I D propertyType)" , el cual regresa una colección de alternativas, las cuales son una división de la alternativa sobre la cual es invocado este método Cada alternativa de la colección contiene segmentos de reconocimiento adyacentes los cuales tendrán el mismo valor de propiedad para la propiedad pasada en el método Por ejemplo, este método puede ser utilizado para obtener alternativas que dividen una alternativa original por nivel de limites de confianza (fuerte, intermedia o poca) en el resultado o reconocimiento, los limites de la linea o los limites del segmento Puede incluir ademas un método titulado "byte[]GetPropertyValue(G Ul D propertyType)", el cual especifica el valor de una propiedad conocida de la alternativa, tal como la confianza del reconocedor en la alternativa No todos los procesos de análisis de reconocimiento proporcionaran un valor para todos los tipos de propiedad Sin embargo, este método proporciona los datos, por lo tanto, para los tipos soportados por el proceso de análisis de reconocimiento relevante La API del Ink Analysis puede incluir también una clase Recognition Altérnate Collection Como muchas de las clases explicadas anteriormente, esta clase puede incluir un constructor, titulado 'RecognitionAlternateCollection()", para crear un objeto RecognitionAlternateCollection Esta clase puede incluir un numero de propiedades, tales como una propiedad titulada 'Count {get,}", la cual proporciona el numero de objetos o colecciones contenidas en una colección de valores de reconocimiento alternativos, una propiedad titulada "IsSynchronized {get,}", el cual proporciona un valor que indica si el acceso a la colección de los valores de reconocimiento alternativos está sincronizado con la aplicación del software (por ejemplo, "series de artículos en programación seguros") y una propiedad titulada "SyncRoot {get,}", la cual proporciona el objeto que puede ser utilizado para sincronizar el acceso a la colección de valores de reconocimiento alternativos Esta clase puede contener también uno o mas métodos, tales como un método titulado "virtual void CopyTo(Array array, int índex)", el cual copia todos los elementos de la colección de valores de reconocimiento alternativos actuales a la matriz unidimensional especificada, iniciando en el índice de la matriz de destino especificado y un método titulado "lEnumerator Innumerable GetEnumeratorQ", el cual es una implementacion estándar de Inumerable que hace posible que los que los invocan utilicen cada uno de los constructores para enumerar a través de cada uno de los RecognitionAlternate en la colección de valores de reconocimiento alternativos Esta clase también puede incluir un método titulado "RecognitionAlternateCollectionEnumerator GetEnumeratorO", el cual retorna un
RecognitionAlternateCollectionEnumerator que contiene todos los objetos dentro de la colección de valores de reconocimiento alternativos Este método puede ser utilizado, por ejemplo, para recuperar cada objeto de la colección de valores de reconocimiento alternativos La API del I n k Analysis puede incluir adicionalm ente una enumeración Recognition Confidence y una enumeración Recognition Mode, y cada una de las mismas puede contener uno o mas campos relacionados con un proceso de análisis de reconocimiento Por ejemplo, la clase Recognition
Confidence puede contener campos múltiples, tales como un campo titulado "Intermedíate", que indica que el proceso de análisis de reconocimiento esta confiado en que el resultado correcto se encuentra en la lista de valores de reconocimiento alternativos proporcionada, un campo titulado Poor el cual indica que el análisis de reconocimiento no tiene confianza en que el resultado se encuentre en la lista de los valores de reconocimiento alternativos proporcionados y un campo titulado "Strong', el cual indica que el proceso de análisis de reconocimiento que esta confiado que la mejor alternativa de los valores de reconocimiento alternativos es correcta De un modo similar, la clase Recognition Mode puede incluir campos que especifican la forma en que el proceso de análisis de reconocimiento interpreta los datos de tinta electrónica y por lo tanto, determina una cadena de resultados de reconocimiento Por ejemplo, esta clase puede incluir un campo titulado Coerce el cual especifica que el proceso de análisis de reconocimiento co-acciona un resultado de reconocimiento basado en una información no confirmada que fue especificada por el contexto, y un campo titulado "Line", el cual especifica que el proceso de análisis de reconocimiento que trata los datos de tinta electrónica como una sola linea Esta clase también puede incluir un campo titulado "None', el cual especifica que el proceso de análisis de reconocimiento no aplica modos de reconocimiento y un campo titulado 'Segment", el cual especifica que el proceso de análisis de reconocimiento trata los datos de tinta electrónica como si formaran una sola palabra o carácter Todavía adicionalmente, esta clase puede contener un campo titulado Topl nkBreaksOnly ', el cual deshabilita la segmentación múltiple Todavía adicionalmente, La API del Ink Analysis puede incluir una clase Context Lmk, la cual define la forma en que pueden estar enlazados dos nodos de contexto El objeto ContextLink por si mismo representa cuales dos nodos de contexto están enlazados, la dirección de la tinta y el tipo de enlace Esta clase puede incluir una propiedad titulada 'ContextNode SourceNode{get,} , la cual especifica el nodo de contexto fuente que esta siendo enlazado desde otro nodo de contexto, una propiedad titulada "ContextünkType LinkType{get,}", la cual especifica el tipo de relación de enlace que existe entre la fuente y los nodos de contexto de destino, y una propiedad titulada uCustomLinkType{get,}", que especifica que esta siendo utilizado un enlace personalizado Esta situación ocurriría cuando una aplicación decide utilizar un sistema de enlace de la API del Ink Analyzer para representar enlaces específicos de la aplicación mas alia de los que puede reconocer la API Esta clase puede incluir también una propiedad titulada
'ContextNode DestinationNode {get,} , la cual especifica el nodo de contexto de destino que esta siendo enlazado desde otro nodo de contexto Pueden existir dos constructores disponibles para esta clase, los cuales crean una relación entre la fuente y los nodos de contexto de destino existentes Esta clase puede incluir también una enumeración titulada "ContextLmkType enum", la cual define el tipo de relación compartida por los dos nodos de contexto Estos diferentes tipos de enlace pueden incluir, por ejemplo, un tipo "AnchorsTo", el cual describe que un nodo esta fijado al otro nodo Ambos nodos pueden utilizar la propiedad SourceNode o DestinationNode basados en la situación del análisis Los tipos de enlace también pueden incluir el tipo "Contains , el cual describe que un nodo contiene el otro nodo Con esta relación, nos podríamos referir al nodo contenedor como el SourceNode, mientras que al nodo contenido nos referiríamos como el DestinationNode Los tipos de enlace pueden incluir ademas un tipo PointsTo', el cual describe que un nodo esta señalando a otro nodo Para esta relación, no podríamos referir al nodo que hace el señalamiento como el SourceNode, mientras que el nodo que esta siendo señalado es al que nos podríamos referir como el DestinationNode Todavía adicionalmente, los tipos de enlace pueden tener un tipo "PointsFrom , el cual describe que un nodo esta señalando desde otro nodo En esta relación, al nodo que esta señalando lejos del otro nodo nos podríamos referir como el SourceNode, mientras que al nodo que esta siendo señalado nos podríamos referir como el DestinationNode Los tipos de enlace pueden incluir adicionalmente un tipo "SpansMonzontally" el cual describe que un nodo opera horizontalmente en la longitud de otro nodo y un tipo "SpansVertically", el cual describe que un nodo opera verticalmente la longitud de otro nodo Para estos tipos, el nodo que cubre (borrado, subrayado, barra de margen) al otro nodo, generalmente escrito después, es al que nos podríamos referir como el SourceNode, mientras que el nodo que esta siendo expandido es al que nos podríamos referir como el DestinationNode Los tipos de enlace también pueden incluir un tipo "Custom", el cual describe que ha sido utilizado un tipo de enlace de personalización Cuando es utilizado este valor, la propiedad CustomLinkType" en el objeto ContextLink podría proporcionar mas detalles con respecto al proposito de este enlace Modelo de Aplicación Un Cliente Windows integra características de la Web con características de las aplicaciones tradicionales de las computadoras de escritorio Este Modelo de Aplicación proporciona un sistema para las aplicaciones seguras y simplifica el desarrollo, despliega en pantalla y mantenimiento de las aplicaciones del cliente Esta metodología proporciona una experiencia simple y consistente al usuario Por ejemplo, las aplicaciones locales pueden apalancar características similares al buscador familiar, independientemente de si la aplicación esta alojada en el buscador o es una aplicación independiente, mientras retiene los beneficios de ejecución en el cliente local Esta metodología permite que los usuarios apalanquen su familiaridad con la Web, aumentando de este modo, el nivel de comodidad del usuario y reduciendo el tiempo requerido para aprender a usar una nueva aplicación El Modelo de Aplicación es parte del espacio de nombre System Windows Las aplicaciones que utilizan el Modelo de Aplicación operan de una manera similar a las paginas Web Cuando un usuario busca una aplicación, la aplicación es instalada automáticamente sin requerir la confirmación de instalación por parte del usuario, volver a inicializar el sistema de cliente, o arriesgarse a un mal funcionamiento de otras aplicaciones En una modalidad, las aplicaciones se descargan progresivamente proporcionando, de este modo, un nivel inicial de interactividad antes de que la aplicación este completamente descargada Las actualizaciones de la aplicación son manejadas automáticamente y de una manera que es transparente para el usuario Por lo tanto, el usuario siempre tiene acceso a la ultima versión de la aplicación, sin tener que realizar explícitamente una actualización de la aplicación Las aplicaciones que utilizan el modelo de aplicación se ejecutan localmente en el sistema del cliente, independientemente de si el sistema del cliente esta en linea (por ejemplo, conectado activamente a la Web) o fuera de linea (por ejemplo, no esta conectado activamente a la Web) Esto permite que una aplicación proporcione un mejor funcionamiento que una aplicación basada en el servidor que necesita la conexión activa de la Web e intercambio de datos continuamente con el servidor por parte de la Web Después de que es instalada una aplicación en un sistema del cliente, se puede tener acceso a la aplicación desde el menú "Inicio" (igual que en una aplicación tradicional de una computadora de escritorio) o navegando a la aplicación (igual que una aplicación Web) El Modelo de Aplicación contiene tres partes principales La administración del ciclo de vida de la aplicación, una metodología de la aplicación y una metodología de navegación Dos tipos diferentes de aplicaciones son soportados por el Modelo de Aplicación una "aplicación en linea", y una "aplicación administrada" Las aplicaciones que utilizan el Modelo de Aplicación se pueden ejecutar en el buscador o en una ventana de nivel superior independiente Una "aplicación en linea" es una aplicación que se ejecuta desde un servidor y esta alojada en un buscador La aplicación puede ser guardada en la memoria inmediata para el acceso fuera de linea o la aplicación puede requerir ciertos recursos en linea para ejecutarse apropiadamente Una "aplicación administrada esta disponible fuera de linea y es instalada en el cliente El sistema operativo da servicio a la aplicación administrada Se puede agregar una entrada para la aplicación administrada en el menú de "Inicio" del cliente Las aplicaciones pueden ser descargadas progresivamente para permitir que el usuario comience a interactuar con la aplicación conforme esta siendo descargada, en vez de demorar la interacción hasta que haya terminado el proceso de instalación Las aplicaciones tienen un manifiesto de aplicación asociado que describe las dependencias de la aplicación, tales como las librerías y recursos necesarios para ejecutar la aplicación Un instalador utiliza el manifiesto de la aplicación para controlar la descarga e instalación de la aplicación Se invoca un "trust manager" como parte del proceso de instalación El administrador de confianza utiliza el manifiesto de aplicación para determinar que permisos son necesarios para que se ejecute la aplicación El manifiesto de aplicación también especifica la información del interprete de ordenes del sistema operativo (shell), tales como asociaciones de archivos y si se agrega una entrada al menú de Inicio, asi como el icono y el texto para la entrada Las aplicaciones que utilizan el Modelo de Aplicación incluyen marcador, código, recursos y un manifiesto Una aplicación es definida y delimitada por su objeto de aplicación, el cual es un objeto global que persiste en la memoria por el periodo de vida de cada sesión de la aplicación El objeto de aplicación tiene conocimiento de todos los recursos que pertenecen a la aplicación y proporciona un limite entre la misma y otras aplicaciones o recursos externos El sistema de aplicación utiliza el objeto de aplicación para identificar, hacer referencia y comunicarse con la aplicación El objeto de aplicación también es utilizado dentro de la aplicación para administrar las ventanas y recursos, especificar el comportamiento de arranque y cierre, manejar ajustes de configuración, estilos específicos visuales para la aplicación, compartir códigos, manifestar la navegación por los recursos y manejar los eventos amplios de la aplicación El sistema de navegación soporta las aplicaciones basadas en la navegación que apalancan la familiaridad del usuario con la navegación y las actividades de sus navegaciones en la Web para proporcionar una experiencia del usuario mas consistente y familiar en el sistema de cliente, independientemente de si la aplicación esta alojada en el buscador del sistema o en una ventana de nivel superior independiente El diario es un proceso utilizado por el sistema de navegación para rastrear la historia de navegación El diario permite que los usuarios vuelvan a trazar sus pasos hacia atrás y hacia delante en una secuencia lineal de navegación Si una experiencia de navegación esta alojada en el buscador o en una ventana independiente de navegación, cada navegación persiste en el diario y puede ser visitada nuevamente en una secuencia lineal, utilizando los botones de "avance y "retroceso', o invocando los métodos "ir hacia delante" y "retroceder" Cada ventana de navegación tiene su diario asociado La clase Aplicación de Navegación simplifica la tarea de crear aplicaciones basadas en la navegación proporcionando propiedades y eventos relacionados con la navegación La clase Na vigationApphcation incluye una propiedad de inicio que especifica la pagina o elemento hacia el cual navega el sistema cuando la aplicación es lanzada por primera vez Esta clase también tiene una colección de propiedades que permiten que un desarrollador de la aplicación comparta la información de condición global en las paginas, sin tener que subclasi icar la aplicación y soporta el enlace de datos a estas propiedades SISTEMA DE CÓMPUTO Y AMBIENTE DE EJEMPLO La figura 4 ilustra un ejemplo de un ambiente de computo adecuado 400 dentro del cual puede ser implementado el sistema de programación 132 (ya sea completa o parcialmente) El ambiente de computo 400 puede ser utilizado en las arquitecturas de computadora y redes aquí descritas El ambiente de computo de ejemplo 400 es solamente un ejemplo de un ambiente de computo y no pretende sugerir cualquier limitación en lo que se refiere al alcance del uso o funcionalidad de las arquitecturas de las computadoras y las redes Ni deben de ser interpretados los ambientes de computo 400 como que tienen dependencia alguna o requerimientos relacionados con cualquiera o una combinación de componentes ilustrados en el ambiente de computo de ejemplo 400 El sistema 132 puede ser implementado con otros numerosos ambientes del sistema de computo de uso general o para propósitos especiales o configuraciones Los ejemplos de los sistemas, ambientes y/o configuraciones de computo bien conocidos que pueden ser adecuados para utilizarlos incluyen, pero no están limitados a, computadoras personales, computadoras de servidor, sistemas de multiprocesador, sistemas basados en microprocesadores, PCs de redes, mmicomputadoras, computadoras de estructura principal, ambientes de computo distribuidos que incluyen cualquiera de los sistemas o aparatos anteriores, y asi sucesivamente Las versiones compactas o subconjuntos del trabajo de estructura también pueden ser implementados en los clientes de recursos limitados, tales como telefonos celulares, asistentes personales digitales, computadoras portátiles, y otros aparatos de comunicación/computo El sistema 132 puede ser descrito en el contexto general de las instrucciones ejecutables por computadora, tales como módulos de software, siendo ejecutados por una o mas computadoras o aparatos Generalmente, los módulos de software incluyen rutinas, softwares, objetos, componentes, estructuras de datos, etc , que realizan tareas particulares o implementan tipos de datos abstractos particulares El trabajo de estructura 132 también puede ser practicado en los ambientes de computo distribuidos, en donde las tareas son realizadas por aparatos de procesamiento remotos que están enlazados a través de redes de comunicaciones En un ambiente de computo distribuido, los módulos del software pueden estar localizados, tanto en los medios de almacenamiento de la computadora locales como remotos incluyendo los aparatos de almacenamiento de memoria El ambiente de computo 400 incluye un aparato de computo de uso general en la forma de una computadora 402 Los componentes de la computadora 402 pueden incluir, pero no están limitados a, uno o mas procesadores o unidades de procesamiento 404, una memoria del sistema 406, un bus del sistema 408 que conecta varios componentes del sistema incluyendo el procesador 404 a la memoria del sistema 406 El bus del sistema 408 representa uno o mas de varios tipos posibles de estructuras del bus, incluyendo un bus de memoria o un controlador de memoria, un bus periférico, un puerto de gráficos acelerado y un procesador o bus local que utiliza cualquiera de una variedad de arquitecturas del bus A modo de ejemplo, dichas arquitecturas pueden incluir un bus de Arquitectura Estándar de la Industria (ISA), un bus de la Arquitectura de icrocanal (MCA), un bus ISA Mejorado (EISA), un bus local de la Asociación de Estándares de Componentes Electrónicos de Video (VESA) y un bus de Interconexión de Componentes Periféricos (PCI), conocido como un bus Mezzanine La computadora 402 generalmente incluye una variedad de medios legibles por computadora Dichos medios pueden ser cualquier medio disponible al que se pueda acceder por medio de la computadora 402 e incluye, tanto medios volátiles como no volátiles y tanto medios removibles como no removibles La memoria del sistema 406, incluye una memoria legible por computadora en la forma de una memoria volátil, tal como una memoria de acceso aleatorio (RAM) 410, y/o, una memoria no volátil (tal como una memoria solo de lectura (ROM) 412 Un sistema básico de entrada/salida (BIOS) 414, contiene las rutinas básicas para ayudar a transferir información entre los elementos dentro de la computadora 402, tal como durante el arranque, y es almacenado en la memoria ROM 412 La memoria RAM 410 contiene generalmente módulos de datos y/o software a los que se puede acceder inmediatamente y/o que son operados actualmente sobre una unidad de procesamiento 404 La computadora 402 también puede incluir otros medios de almacenamiento de computadora removibles/no removibles, volatiles/no volátiles A modo de ejemplo, la figura 4 ilustra una unidad un disco duro 416 para leer y escribir en un medio magnético no removible, no volátil (no mostrado), una unidad de disco magnético 418 para leer y escribir en un disco magnético removible, no volátil 420 (por ejemplo, un "diskette"), y una unidad de disco óptico 422 para leer y/o escribir en un disco óptico removible no volátil 424, tal como un CD-ROM, DVD-ROM, u otro medio óptico La unidad del disco duro 416, la unidad del disco magnético 418, y la unidad del disco óptico 422 son conectadas cada una al bus del sistema 408 por una o mas interfases de medios de datos 426 Alternativamente, la unidad del disco duro 416, la unidad del disco magnético 418 y la unidad del disco óptico 422 pueden ser conectadas al bus del sistema 408 por medio de una o mas interfases (no mostradas) Las unidades de discos y sus medios legibles por computadora asociados proporcionan el almacenamiento no volátil de las instrucciones legibles por computadora, estructuras de datos, módulos de software y otros datos para la computadora 402 Aunque el ejemplo ilustra un disco duro 416, un disco magnético removible 420 y discos ópticos removibles 424, se puede apreciar que también pueden ser utilizados otros discos magnéticos de los medios legibles por computadora que pueden almacenar datos a los que se puede acceder por una computadora, tales como los cassettes magnéticos o los aparatos de almacenamiento magnético, las tarjetas de memoria instantánea, el CD-ROM, los discos digitales versátiles (DVD), u otros almacenamientos ópticos, las memorias de acceso aleatorio (RAM), las memorias solo de lectura (ROM), las memorias solo de lectura que se pueden programar y que se borran eléctricamente (EEPROM), y similares, para implementar los sistemas y ambientes de computo de ejemplo Cualquier numero de módulos de software puede ser almacenado en el disco duro 416, el disco magnético 420, el disco óptico 424, el ROM 412, y/o RAM 410, incluyendo a modo de ejemplo, un sistema operativo 426, uno o mas softwares de aplicación 428, otros módulos de software 430 y los datos del software 432 Cada uno del sistema operativo 426, uno o mas softwares de aplicación 428, otros módulos de software 430 y datos del software 432 (o alguna combinación de los mismos) puede incluir elementos de trabajo del sistema de programación 132 Un usuario puede ingresar comandos e información en la computadora 402 por medio de aparatos de entrada, tales como el teclado 434 o un aparato de señalamiento 436 (por ejemplo, un "ratón") Otros aparatos de entrada 438 (no mostrados específicamente) pueden incluir un micrófono, una palanca, una almohadilla de juegos, un plato de satélite, un puerto de serie, un escáner o similares Estos y otros aparatos de entrada son conectados a la unidad de procesamiento 404, por medio de las interfases de entrada/salida 440 que están conectadas al bus del sistema 408, pero pueden ser conectadas por otra interfase y estructuras de bus, tales como un puerto paralelo, un puerto de juego, o un bus de serie universal (USB) También pueden ser conectados un monitor 442 u otro tipo de aparato de pantalla al bus del sistema 408 por medio de una interfase, tal como un adaptador de video 444 Además del monitor 442, otros aparatos periféricos de salida pueden incluir componentes tales como bocinas (no mostradas) y una impresora 446, la cual puede ser conectada a la computadora 402 por medio de interfases de entrada/salida 440 La computadora 402 puede operar en un ambiente de red utilizando conexiones lógicas a una o mas computadoras remotas, tales como un aparato de computo remoto 448 A modo de ejemplo, el aparato remoto 448 puede ser una computadora personal, una computadora portátil, un servidor, un enrutador, una computadora de red, un aparato semejante, u otros nodos de red común y asi sucesivamente El aparato computo remoto 448 esta ilustrado como una computadora portátil que puede incluir muchos o todos los elementos y características aquí descritos en relación con la computadora 402 Las conexiones lógicas entre la computadora 402 y la computadora remota 448 se ilustran como una red de área local (LAN) 450, y una red de área ancha general (WAN) 452 Dichos ambientes de red son un lugar común en las oficinas, las redes de computo anchas de empresa, intranets y la Internet Cuando es implementada en un ambiente de red LAN, la computadora 402 es conectada a una red local 450 por medio de una interfase de red o adaptador 454 Cuando es implementada en un ambiente de red WAN, la computadora 402 generalmente incluye un modem 456 u otros medios para establecer comunicaciones por una red ancha 452 El modem 456, el cual puede ser interno o externo a la computadora 402, puede ser conectado al bus del sistema 408 por medio de interfases de entrada/salida 440 u otros mecanismos apropiados Deberá apreciarse que las condiciones de red ilustradas son de ejemplo, y que se pueden emplear otros medios para establecer enlaces de comunicación entre las computadoras 402 y 448 En un ambiente de red, tal como la que se ilustro con el ambiente de computo 400, los módulos del software ilustrados en relación con la computadora 402, o porciones de los mismos, pueden ser almacenados en un aparato de almacenamiento de memoria remoto A modo de ejemplo, los softwares de aplicación remota 458 residen en un aparato de memoria de la computadora remota 448 Para propósitos de ilustración, los softwares de aplicación y otros componentes del software que se pueden ejecutar, tales como el sistema operativo aquí se ilustran como bloques separados, aunque deberá reconocerse que dichos softwares y componentes residen varias veces en componentes de almacenamiento diferentes del aparato de computo 402 y son ejecutados por el procesador de datos de la computadora Una implementacion del trabajo de estructura 132, y particularmente, el API 142 o las llamadas hechas al API 142, pueden ser almacenados o transmitidos por alguna forma de medios legibles por computadora Los medios legibles por computadora pueden ser cualesquiera medios disponibles a los que se puede acceder por la computadora A modo de ejemplo, y no de limitación, el medio legible por computadora puede comprender, el "medio de almacenamiento de computadora", y medio de comunicaciones" El medio de almacenamiento de computadora incluye medios volátiles y no volátiles, removibles y no removibles, im plementados en cualquier método o tecnología para el almacenamiento de información, tal como las instrucciones legibles por computadora, las estructuras de datos, módulos de software, u otros datos Los medios de almacenamiento de computadora incluyen, pero no están limitados a memorias RAM, ROM, EEPROM, memoria instantánea, u otra tecnología de memoria, CD-ROM, discos digitales versátiles (DVD), u otro almacenamiento óptico, cassettes magnéticos, cintas magnéticas, almacenamiento de disco magnético u otros aparatos de almacenamiento magnéticos, o cualquier otro medio el cual puede ser utilizado para almacenar la información deseada y al cual se puede acceder por medio de una computadora Los "medios de comunicación" generalmente incorporan instrucciones legibles por computadora, estructuras de datos, módulos de software u otros datos en una señal de datos modulada, tal como una onda portadora u otro mecanismo de transporte Los medios de comunicación también incluyen cualquier medio de entrega de información El termino "señal de datos modulada" significa una señal que tiene una o mas de sus características ajustadas o cambiadas de un modo tal como para codificar la información en la señal A modo de ejemplo, y no de limitación, los medios de comunicación incluyen medios cableados, tales como redes cableadas o conexiones de cable directo, y medios inalámbricos, tales como acústicos, RF, infrarrojos y otros medios inalámbricos También están incluidas las combinaciones de cualquiera de las anteriores dentro del alcance de los medios legibles por com putadora Alternativamente, pueden ser implementadas porciones del trabajo de estructura en el hardware o en una combinación de hardware, software y/o firmware Por ejemplo, uno o mas circuitos integrados específicos de aplicación (ASICs), o aparatos lógicos programables (PLDs), podrían ser diseñados o programados para implementar una o mas porciones del trabajo del sistema Una interfase de programación (o mas simplemente, interfase) puede ser vista como cualquier mecanismo, proceso, protocolo para posibilitar uno o mas segmentos de código para que se comuniquen con o tengan acceso con la funcionalidad proporcionada por uno o mas de otros segmentos de códigos Alternativamente, una interfase de programación puede ser vista como uno o mas mecanismos, métodos, llamadas de función, módulos, objetos, etc , de un componente de un sistema con capacidad para la conexión de comunicación con uno o mas mecanismos, métodos, llamadas de función, módulos, etc , de otros componentes El termino "segmento de código" en la oración anterior pretende incluir una o mas instrucciones o lineas de códigos, e incluye, por ejemplo, módulos de código, objetos, subrutinas, funciones, y asi sucesivamente, independientemente de la terminología aplicada o de si los segmentos de código son recolectados por separado, o si los segmentos de código están proporcionados por una fuente, intermediario o código de objeto, si los segmentos de código son utilizados en un sistema de tiempo de ejecución o proceso, o si ellos están localizados en la misma o maquinas diferentes o distribuidos en maquinas múltiples o si la funcionalidad representada por los segmentos de código son implementados en su totalidad en el software, en su totalidad en el hardware o una combinación del hardware y el software Como una noción, una interfase de programación puede ser vista genéricamente, tal y como se muestra en la figura 5 o en la figura 6 La figura 5 ilustra una inferíase Interfasel como un conducto a través del cual se comuniquen el primer y segundo segmentos de código La figura 6 ilustra una interfase como que comprende los objetos de mterfase 11 y 12 (los cuales pueden o no ser parte del primer y segundo segmentos de códigos), los cuales hacen posible que el primer y segundo segmentos de código de un sistema se comuniquen por el medio En la vista de la figura 6, se puede considerar como objetos de interfase 11 y 12 como interfases separadas del mismo sistema y uno puede también considerar que los objetos 11 y 12 mas el medio M comprende la interfase Aunque las figuras 5 y 6 muestran un flujo bidireccional e interfase en cada lado del flujo, ciertas implementaciones pueden tener solamente flujo de información en una dirección (o no tener flujo de información tal y como se describirá mas adelante) o pueden solamente tener un objeto de interfase por un lado A modo de ejemplo, y no de limitación, términos tales como la programación de aplicación o interfase de software (API), punto de entrada, método, función, subrutina, llamado de procedimiento remoto, interfase de modelo de objeto del componente (COM), están comprendidos dentro de la definición de interfase de programación Los aspectos de dicha mterfase de programación pueden incluir el método por medio del cual el primer segmento de códigos transmite la información (en donde 'información" es utilizado en su sentido mas amplio e incluye datos, comandos, solicitudes, etc ) con el segundo segmento de código, por medio de dicho método el segundo segmento de código recibe la información y la estructura, secuencia, sintaxis, organización, esquema, programación y contenido de la información En este aspecto, el medio de transporte subyacente por si mismo puede no ser importante para la operación de la interfase, si el medio es cableado o inalámbrico, o una combinación de ambos, siempre que la información sea transmitida de la manera definida por la interfase En ciertas situaciones, la información puede no ser pasada en una o ambas direcciones en el sentido convencional, ya que una transferencia de información puede, ser ya sea por medio de otro mecanismo (por ejemplo, la información colocada en una memoria intermedia, archivo, etc , separado del flujo de información entre los segmentos de código), o no existente, tal como cuando un segmento de código simplemente tiene acceso a la funcionalidad realizada por el segundo segmento de código Cualquiera o todos de estos aspectos pueden ser importantes en una situación determinada, por ejemplo, dependiendo de si los segmentos de código son parte de un sistema en una configuración conectada estrechamente o conectada de manera suelta y de este modo, esta lista debe ser considerada como ilustrativa y no limitativa Esta noción de una interfase de programación es conocida por aquellos expertos en la técnica, y es clara a partir de la descripción detallada anterior de la presente invención Sin embargo, existen otros medios para implementar una interfase de programación, y a menos que estén incluidos expresamente, estos también deben estar comprendidos por las reivindicaciones que se establecen al final de la presente descripción Dichos otros medios pueden parecer mas sofisticados o complejos de la vista simplificada de las figuras 5 y 6, pero sin embargo, ellos realizan una función similar para realizar el mismo resultado general Ahora describiremos brevemente algunas implementaciones alternativas de ilustración de una interfase de programación
A FACTORIZACIÓN Una comunicación de un segmento de código a otro puede ser realizada indirectamente, dividiendo la comunicación en múltiples comunicaciones separadas Esto es ilustrado esquemáticamente en las figuras 7 y 8 Tal y como se muestra, algunas interfases pueden ser descritas en términos de conjuntos visibles de funcionalidad Por lo tanto, la funcionalidad de la interfase de las figuras 5 y 6 puede ser factorizada para lograr el mismo resultado, justamente como uno podría proporcionarle matemáticamente 24, o 2 por 2 por 3 por 2 Por consiguiente, tal y como se ilustro en la figura 7, la función proporcionada por la Interfasel puede ser subdividida para convertir las comunicaciones de la interfase en interfases múltiples InterfaselA, InterfaselB, InterfaselC, etc , aunque se logra el mismo resultado Tal y como se ilustro en la figura 8, la función proporcionada por la mterfase 11 puede ser subdividida en las interfases múltiples 11a, 11b, 11c, etc , mientras se logra el mismo resultado De un modo similar, la mterfase 12 del segundo segmento de códigos, el cual recibe la información del primer segmento de códigos puede ser factorizada en interfases múltiples I2a, 12 b , I2c, etcétera Cuando se hace la factorizacion, el numero de interfases incluidas con el primer segmento de código no necesita coincidir con el numero de interfases incluidas con el segundo segmento de códigos En cualquiera de los casos de las figuras 7 y 8, el espíritu funcional de las interfases Interfasel e 11, permanecen iguales que en las figuras 5 y 6, respectivamente La factorizacion de las interfases también puede seguir propiedades asociativas, conmutativas u otras matemáticas, de modo que la factorizacion pueda ser difícil de reconocer Por ejemplo, la ordenación de operaciones puede no ser importante, y por consiguiente, una función llevada a cabo por una mterfase puede ser llevada a cabo, bien por anticipado antes de alcanzar la mterfase, por otra pieza de código o mterfase, o realizada por un componente separado del sistema Ademas, un experto en la técnica del arte de programación puede apreciar que existe una variedad de medios para hacer diferentes llamadas de función para lograr el mismo resultado B REDEFINICION En algunos casos, puede ser posible ignorar, agregar, o volver a definir ciertos aspectos (por ejemplo, parámetros) de una interfase de programación mientras que todavía se logra el resultado pretendido Esto se ilustra en las figuras 9 y 10 Por ejemplo, supongamos que la Interfasel de la figura 5 incluye una función de elevación al cuadrado de llamada (entrada, precisión, salida), una llamada que incluye tres parámetros, entrada, precisión y salida, y la cual es emitida desde el primer segmento de código al segundo segmento de código Si el parámetro medio de precisión no es preocupante para un escenario determinado, tal y como se muestra en la figura 9, este podría también ser ignorado y aun reemplazado por un parámetro sin importancia (en esta situación) También se pueden agregar un parámetro adicional que no es de importancia En cualquier caso, se puede lograr la funcionalidad de elevación al cuadrado, siempre y cuando la salida sea regresada después de que la entrada sea elevada al cuadrado por el segundo segmento de código La precisión puede muy bien ser un parámetro importante para alguna porción descendente o de otro tipo, del sistema de computo sin embargo, una vez que se ha reconocido que la precisión no es necesaria para el proposito estrecho de calcular el cuadrado, esta puede ser reemplazada o ignorada Por ejemplo, en vez de pasar un valor valido de precisión, se podría pasar un valor menos importante, tal como la fecha de nacimiento, sin afectar de manera adversa el resultado De un modo similar, y tal como se muestra en la figura 10, la interfase 11 es reemplazada por la interfase 11', definida nuevamente para ignorar o agregar parámetros a la interfase La interfase 12 puede ser redefinida de un modo similar con la interfase 12', redefinida para ignorar los parámetros innecesarios, o los parámetros que pueden ser procesados en alguna otra parte Aquí, el punto es que en algunos casos, una mterfase de programación puede incluir aspectos, tales como parámetros que no son necesarios para algún proposito, y de este modo, ellos pueden ignorados o redefmidos, o procesados en alguna otra parte para otros propósitos
C CODIFICACION EN LINEA También puede ser factible unir algunas y todas las funcionalidades de dos módulos de código separados, de modo que la "mterfase" entre ellos cambie de forma Por ejemplo, la funcionalidad de las figuras 5 y 6 puede ser convertida en la funcionalidad de las figuras 11 y 12, respectivamente En la figura 11, el primer y segundo segmentos de códigos previos de la figura 5, son unidos en un modulo que contiene ambos de ellos En este caso, los segmentos de código todavía pueden estarse comunicando entre ellos, pero la interfase puede estar adaptada a una forma la cual es mas adecuada para un solo modulo Por lo tanto, y por ejemplo, las declaraciones de llamada y regreso formales pueden no ser necesarias ya, pero todavía pueden estar en efecto los procesamientos o respuestas similares siguiendo la Interfasel De un modo similar y como se muestra en la figura 12, parte de (o toda) la interfase 12 de la figura 6 puede ser escrita en linea dentro de la interfase 11 para formar la interfase 11" Tal y como se ilustro, la interfase 12 es dividida en 12a e 12b, y la porción de la interfase 12a ha sido codificada en linea con la interfase 11 para formar la interfase 11" Para un ejemplo concreto, considerar que la interfase 11 de la figura 6 realiza una elevación al cuadrado de llamada de función (entrada, salida), la cual es recibida por la interfase 12, la cual después del procesamiento del valor pasado por la entrada (para elevarlo al cuadrado) por el segundo segmento de código, vuelve a pasar el resultado de la elevación al cuadrado con la salida En dicho caso, el procesamiento realizado por el segundo segmento de códigos (elevado al cuadrado a la entrada) puede ser realizado por el primer segmento de código sin una llamada a la interfase
D SEPARACION Una comunicación de un segmento de código a otro puede ser llevada a cabo indirectamente, dividiendo la comunicación en comunicaciones múltiples separadas Esto es ilustrado esquemáticamente en las figuras 13 y 14 Tal y como se muestra en la figura 13, se proporcionan una o mas piezas de middleware (Interfase de Separación, ya que separa las funciones de funcionalidad y/o interfase de la interfase original) para convertir las comunicaciones de la primera interfase, Interfasel, para volverlas a formar en una interfase diferente, en este caso las interfases lnterfase2A lnterfase2B, e lnterfase2C Esto se podría hacer, por ejemplo, en los casos en que existe una base instalada de aplicaciones diseñada para comunicarse con digamos un sistema operativo de acuerdo con un protocolo de la Interfasel, pero entonces el sistema operativo es cambiado para utilizar una interfase diferente, en este caso, las interfases lnterfase2A, lnterfase2B, e lnterfase2C El punto es que la interfase original utilizada por el segundo segmento de códigos es cambiada, de modo que ya no es compatible con la interfase utilizada por el primer segmento de códigos, y de este modo, se utiliza un intermediario para hacer que las interfases vieja y nueva sean compatibles De un modo similar, tal y como se muestra en la figura 14, un tercer segmento de código puede ser introducido con la interfase de separación DI1 para recibir las comunicaciones de la interfase 11 y separarlas de la interfase DI2, para transmitir la funcionalidad de interfase a, por ejemplo, las interfases I2a, e 12 b , rediseñadas para funcionar con el D 12 , pero proporcionan el mismo resultado funcional De un modo similar, las interfases DI1 y DI2 pueden funcionar juntas para traducir la funcionalidad de las interfases 11 e 12, de la figura 6, a un nuevo sistema operativo mientras que se proporciona un resultado funcional igual o similar
E SOBREESCRITURA Todavía otra vanante posible es volver a escribir dinámicamente el código para reemplazar la funcionalidad de la interfase con algo mas pero lo cual logra el mismo resultado general Por ejemplo, puede existir un sistema en el cual el segmento de código presentado en un lenguaje intermedio (por ejemplo, Microsoft IL, Java ByteCode, etc ) es proporcionado en un recopilador o interpretador Justo-a-Tiempo (JIT), en un ambiente de ejecución (tal como el que se proporciona por la metodología Net, el ambiente de tiempo de ejecución Java u otros ambientes de tiempo de ejecución similares) El recolector JIT puede ser escrito de modo que convierta dinámicamente las comunicaciones del primer segmento de código al segundo segmento de código, por ejemplo, que los conforme a una inferíase diferente como puede ser requerido por el segundo segmento de código (ya sea el segundo segmento de código original o uno diferente) Esto se ilustra en las figuras 15 y 16 Como se puede apreciar en la figura 15, este método es similar al escenario de Separación descrito anteriormente Se podría hacer, por ejemplo, en los casos en que la base de aplicaciones instaladas están diseñadas para comunicarse con un sistema operativo de acuerdo con un protocolo de Interfasel, pero entonces el sistema operativo es cambiado para utilizar una interfase diferente El Recolector J IT podría ser usado para darle forma a las comunicaciones al vuelo de las aplicaciones básicas instaladas a la interfase nueva del sistema operativo Tal y como se ilustra en la figura 16, este método para volver a escribir dinámicamente la interfase(s) puede ser aplicado para factorizar dinámicamente, o también alterar de otro modo la interfase También deberá observarse que los escenarios anteriormente descritos para lograr el mismo resultado o un resultado similar como una mterfase por medio de modalidades alternativas, puede ser combinado de diferentes maneras, en serie y/o en paralelo, o con otros códigos de intervención Por lo tanto, las modalidades alternativas presentadas anteriormente, todas se incluyen mutuamente y pueden ser mezcladas, emparejadas y combinadas para producir el mismo escenario o escenarios equivalentes a los escenarios genéricos presentados en las figuras 5 y 6 También deberá observar que, igual que con la mayoría de las construcciones de programación, existen otros medios similares para lograr la misma funcionalidad o una funcionalidad similar de una interfase, la cual puede no haber estado descrita en el presente documento, pero sin embargo, están representados por el espíritu y alcance de la presente invención, es decir, deberá observarse que la funcionalidad esta por lo menos representada parcialmente por, y que los resultados ventajosos los hace posible una interfase que subyace al valor de una interfase
Conclusión Aunque la presente invención ha sido descrita en un lenguaje especifico para características estructurales y/o las acciones metodológicas, deberá quedar entendido que la presente invención definida en las reivindicaciones adjuntas, no esta necesariamente limitada a las características y acciones especificas descritas En vez de ello, las características y acciones especificas se describen como formas de ejemplo para implementar la invención reclamada