Agradecimientos de Ian
Agradecimientos de Chris
Sobre los autores
Prólogos
Introducción
Para quién es este libro
Cómo está organizado este libro
Qué necesita para utilizar este libro
Convenciones
Código fuente
Sobre la imagen de cubierta
Capítulo 1. Hola WPF
WPF desde el principio
Crear aplicaciones
Aplicaciones WPF
XAML
Editar XAML
Aplicaciones de navegador XAML (XBAP)
Modelos de contenido
Sintaxis del elemento de propiedad XAML
Diseño
Diseño de cuadrícula
Sintaxis de propiedad adjunta XAML
Controles
Vinculación de datos
Extensiones de marcado XAML
Plantillas de datos
Propiedades de dependencia
Recursos
La sintaxis de mapeado del espacio de nombres XAML
Estilos
Animación
Plantillas de control
Gráficos
3D
Documentos e impresión
¿Dónde estamos?
Capítulo 2. Aplicaciones y parámetros
Vida útil de la aplicación
Creación explícita de aplicación
Acceso a la aplicación
Creación implícita de la aplicación
Ventanas de nivel superior
Modos de cierre de la aplicación
Eventos de aplicación
Instanciar aplicación
Otros servicios de aplicación
Implementación de aplicación
Publicación sencilla
La experiencia de usuario
Detalles específicos de ClickOnce WPF
Configuración
Diseñador de parámetros
Utilizar parámetros
Integrar parámetros en WPF
¿Dónde estamos?
Capítulo 3. Diseño
Fundamentos del diseño
StackPanel
WrapPanel
DockPanel
Grid
Anchos de columna y alturas de fila
Ocupar múltiples filas y columnas
Consistencia entre múltiples cuadrículas
UniformGrid
Canvas
Viewbox
Propiedades comunes de diseño
Width y Height
MinWidth, MaxWidth, MinHeight y MaxHeight
HorizontalAlignment y VerticalAlignment
Margin
Padding
Visibility
FlowDirection
Panel.ZIndex
RenderTransform y LayoutTransform
Cuando el contenido no se ajusta
ScrollViewer
Región desplazable e IScrollInfo
Diseño personalizado
¿Dónde estamos?
Capítulo 4. Entrada de datos
Eventos enrutados
Detener enrutamiento de eventos
Determinar el objetivo
Eventos enrutados y eventos normales
Eventos adjuntos
Entrada de datos del ratón
Entrada de datos del ratón y detección de elementos
Estado del ratón
Entrada de datos del teclado
Estado del teclado
Entrada de tinta
Comandos
Objetos de comando
Vinculaciones de entrada
Fuente de comando
Vinculaciones de comando
Gestión de entrada basada en código frente a activadores
¿Dónde estamos?
Capítulo 5. Controles
¿Qué son los controles?
Botones
Controles Slider y ScrollBar
ProgressBar
Controles de texto
Label
ToolTip
GroupBox y Expander
Controles de lista
ListView
TreeView
Menús
Barras de herramientas
GridSplitter
¿Dónde estamos?
Capítulo 6. Vinculación sencilla de datos
Sin vinculación de datos
Cambios de objeto
Cambios en la interfaz de usuario
Vinculación de datos
Vinculaciones
Fuente de datos implícita
Islas de datos
Fuente de datos explícita
Vincular a otros controles
Conversión de valor
Conversión de valor editable
Validación
Sintaxis de Path
Fuentes relativas
UpdateSourceTrigger
Depurar vinculación de datos
¿Dónde estamos?
Capítulo 7. Vincular a datos de lista
Vincular a datos de lista
Elemento actual
Objetivos de datos de lista
Mostrar miembros, miembros de valor y vinculaciones de consulta
Plantillas de datos
Listar cambios
Ordenar
Vistas de colección predeterminadas
Filtrar
Agrupar
Ordenación y agrupación declarativa
Proveedores de fuente de datos
Proveedor de datos de objeto
Vincular a datos relacionales
Proveedor de fuente de datos XML
Vinculación maestro-detalle
Vinculación jerárquica
¿Dónde estamos?
Capítulo 8. Estilos
Sin estilos
Estilos en línea
Estilos con nombre
El atributo TargetType
Reutilizar estilos
Sobrescribir propiedades de estilo
Ampliar estilos
Establecer estilos con programación
Estilos de tipo elemento
Estilos de tipo elemento y tipos derivados
Plantillas de datos y estilos
Plantillas de datos de nuevo
Plantillas de datos con estilo
Activadores
Activadores de propiedad
Múltiples activadores
Activadores de propiedad multicondición
Activadores de datos
Activadores de datos de condición múltiple
Activadores de evento
¿Dónde estamos?
Capítulo 9. Plantillas de control
Más allá de los estilos
Plantillas de control y estilos
Vinculación de plantilla
Presentadores de contenido
Activadores de plantilla
Ampliar plantillas
El contrato de la plantilla de control
Elementos de aplicación específica
Examinar las plantillas incorporadas
Árboles lógicos y visuales
Interfaz de usuario basada en datos
¿Dónde estamos?
Capítulo 10. Ventanas y cuadros de diálogo
Ventana
Aspecto de la ventana
Tiempo de vida de la ventana
Posición y tamaño de ventana
Propietarios de ventana
Visibilidad y estado de la ventana
Cuadros de diálogo
Cuadros de diálogo comunes
Cuadros de diálogo personalizados
¿Dónde estamos?
Capítulo 11. Navegación
NavigationWindow
Páginas
XAML
Navegación de fragmento
Tiempo de vida de la página
Pasar datos entre páginas
Funciones de página
Marcos
XBAP
Publicación e implementación XBAP
Navegación a HTML
¿Dónde estamos?
Capítulo 12. Recursos
Crear y utilizar recursos
Ámbito del recurso
Referencias de recurso
Reutilizar dibujos
Recursos y estilos
Carátulas y temas
Recursos binarios
Recursos binarios y clase Application
URI de paquete
Aplicaciones globales
Crear aplicaciones localizables con XAML
¿Dónde estamos?
Capítulo 13. Gráficos
Fundamentos básicos de gráficos
Integración
Modelo de objeto de dibujo
Independiente de la resolución
Formas, pinceles y lápices
Composición
Formas
Clase Shape base
Rectangle
Ellipse
Line
Polyline
Polygon
Path
Mapas de bits
Imagen
ImageSource
Crear mapas de bits
Codificadores y decodificadores de mapa de bits
Efectos de mapa de bits
Pinceles y lápices
Color
SolidColorBrush
LinearGradientBrush
RadialGradientBrush
ImageBrush, DrawingBrush y VisualBrush
Lápiz
Transformaciones
Programación de capa visual
Renderizar bajo demanda
¿Dónde estamos?
Capítulo 14. Documentos de texto y de flujo
Estilos de fuente y texto
Propiedades comunes de texto
Fuentes y familias de fuente
FontSize
Estiramiento
Estilo
Peso
Decoraciones
Recorte de texto
Ajuste de texto y uso de guiones
Alineación de texto
Texto y la interfaz de usuario
TextBlock
Documentos de flujo y controles de visor
Texto de capa visual
Glyphs
Modelo de objeto de texto
En línea
Block
Paragraph
Figure y Floater
Imágenes
Texto y vinculación de datos
Codificar con el modelo de objeto de texto
Tipografía
¿Dónde estamos?
Capítulo 15. Impresión y XPS
XPS
Open Packaging Conventions
Clases de documento XPS
FixedDocumentSequence
FixedDocument
FixedPage
Generar salida XPS
Imprimir documentos fijos
Imprimir elementos visuales
Imprimir con paginadores de documento
Impresión asíncrona
Características de generación del archivo XPS
API de XPS a nivel de paquete
Propiedades principales del documento
Imágenes en miniatura
Hipervínculos
Compresión
System.Printing
PrintQueue
PrintServer
PrintSystemJobInfo
PrintTicket y PrintCapabilities
PrintDialog
Descripción de medios
Mostrar documentos fijos
¿Dónde estamos?
Capítulo 16. Animación y medios
Fundamentos de animación
Tipos de animación
IAnimatable
Activadores
Líneas de tiempo
Jerarquía
Duración
Repetición
Relleno
Velocidad
Animaciones de fotograma clave
Animaciones de ruta
Relojes y control
Controlar animaciones con storyboard
Controlar animaciones con relojes
Animaciones de transición
Audio y vídeo
Reproducción sencilla de medios
Utilizar MediaElement en modo reloj
¿Dónde estamos?
Capítulo 17. Gráficos 3D
Contenido 3D y un mundo 2D
Cámaras
Modelos
Geometry3D
Materiales
ModelVisual3D
Luces
AmbientLight
DirectionalLight
PointLight
SportLight
Texturas
Transformaciones
TranslateTransform3D
ScaleTransform3D
RotateTransform3D
Tarnsform3DGroup
MatrixTransform3D
Visualización de datos 3D
Detención de elementos
¿Dónde estamos?
Capítulo 18. Controles personalizados
Fundamentos del control personalizado
Elegir una clase base
Funcionalidad personalizada
Propiedades
Eventos
Comandos
Soportar plantillas en controles personalizados
Vinculación de propiedad
Partes con nombre
Marcadores de posición de contenido
Marcadores de posición indicados por propiedades
Estilos predeterminados
UserControl
Adornos
AdornerDecorator
¿Dónde estamos?
Apéndice A. XAML
Fundamentos XAML
Propiedades
Extensiones de marcado
Code-behind
Cargar XAML
Apéndice B. Interoperabilidad
WPF y HWND
Albergar un control Windows Form en WPF
Albergar un control WPF en Windows Forms
Albergar WPF en aplicaciones HWND nativas
WPF y controles ActiveX
WPF y HTML
Limitaciones de la interoperabilidad WPF/HWND
Apéndice C. Programación WPF asíncrona y multihilo
Modelo de hilo de ejecución WPF
El despachador
El patrón asíncrono basado en evento
Apéndice D. Tipos base WPF
DispatcherObject
DependencyObject
Visual
Visual3D
UIElement
FrameworkElement
Decorator
Panel
Shape
Control
ContentControl
HeaderedContentControl
UserControl
ItemsControl
HeaderedItemsControl
Selector
ContentElement
FrameworkContentElement
Freezable
Animatable
Apéndice E. Silverlight
¿Por qué Silverlight?
¿Qué es Silverlight?
XAML Silverlight
Silverlight y WPF
Modelo de desarrollo
ASP.NET y Silverlight
Un poco de Silverlight 1.1
Soporte de herramienta
Ejemplos del mundo
¿Dónde estamos?
Índice alfabético
Windows Presentation Foundation es una de las novedosas tecnologías de Microsoft, que permite construir aplicaciones con una potente e interactiva interfaz de usuario. Sus capacidades son extraordinarias y reducen la complejidad en la programación. Incluye un nuevo motor gráfico que soporta imágenes en 3D y animaciones, un lenguaje basado en XML llamado XAML, y una arquitectura Modelo Vista Controlador para el desarrollo de las aplicaciones.
Este libro, totalmente actualizado a .NET 3.0, le enseña cómo progresar rápidamente en la programación de aplicaciones WPF. Contiene múltiples ejemplos en C# y XAML con los que aprenderá desde el básico Hola Mundo hasta aplicaciones más complejas. WPF aúna lo mejor de las interfaces basadas en controles (al estilo de Windows) y de las basadas en contenido (al estilo de la Web).