Taller de Sistemas de Información 1
|
|
- Santiago Parra Cano
- hace 8 años
- Vistas:
Transcripción
1 Taller de Sistemas de Información 1 Clase 4 WPF Lifecycle, Layouts, Controles, DataBinding
2 Application lifecycle INCO - Facultad de Ingeniería Montevideo, Uruguay 2
3 Application Una aplicación WPF es un proceso Windows, Este tiene una instancia del objeto Application Este provee servicios de ciclo de vida Una aplicación es una instancia de la clase System.Windows.Application INCO - Facultad de Ingeniería Montevideo, Uruguay 3
4 Application using System; using System.Windows; class Program { [STAThread] static void Main( ) { Application app = new System.Windows.Application(); Window1 window = new Window1( ); window.show( ); app.run(); } } INCO - Facultad de Ingeniería Montevideo, Uruguay 4
5 Creación explicita Cuando la aplicación esta ejecutando, WPF procesa los mensajes de Windows y rutea los eventos a los controles de UI de WPF, según sea necesario INCO - Facultad de Ingeniería Montevideo, Uruguay 5
6 Acceso a Application using System; using System.Windows; class Program { [STAThread] static void Main( ) { Application app = new System.Windows.Application(); Window1 window = new Window1( ); window.show( ); Application.Current.Run(); } } INCO - Facultad de Ingeniería Montevideo, Uruguay 6
7 Creación implícita Debido a que crear un Main como entry point de la aplicación, es de lo mas común, WPF puede proveernos un entry point por nosotros En general los proyectos WPF definen un XAML que define el objeto Application INCO - Facultad de Ingeniería Montevideo, Uruguay 7
8 <!-- App.xaml --> <Application Creación implícita x:class="implicitappsample.app" xmlns= " xmlns:x=" /> // App.xaml.cs using System; using System.Windows; namespace ImplicitAppSample { public partial class App : System.Windows.Application { protected override void OnStartup(StartupEventArgs e) { base.onstartup(e); Window1 window = new Window1( ); window.show( ); } } } INCO - Facultad de Ingeniería Montevideo, Uruguay 8
9 Creación implícita El propio WPF provee el Main Este main se encarga de crear el objeto Application e invocar el método Run() Todo lo que hay que hacer es crear una ventana y mostrarla, generalmente en el handler del evento Startup INCO - Facultad de Ingeniería Montevideo, Uruguay 9
10 INCO - Facultad de Ingeniería Montevideo, Uruguay 10
11 Con lo que WPF genera namespace ImplicitAppSample { public partial class App : Application { [System.STAThreadAttribute( )] [DebuggerNonUserCodeAttribute( )] public static void Main() { ImplicitAppSample.App app = new ImplicitAppSample.App(); app.run(); } } } INCO - Facultad de Ingeniería Montevideo, Uruguay 11
12 Creación implícita Si nuestra ventana esta definida en un archivo XAML (como seguramente lo este), podemos obviar el override del método OnStartup Para esto, establecemos la propiedad StartupUri en el XAML del objeto Application INCO - Facultad de Ingeniería Montevideo, Uruguay 12
13 Creación implícita <!-- App.xaml --> <Application x:class="implicitappsample.app" xmlns=" winfx/2006/xaml/presentation" xmlns:x=" winfx/2006/xaml" StartupUri="Window1.xaml" /> INCO - Facultad de Ingeniería Montevideo, Uruguay 13
14 Top-level Windows Es una ventana que no esta contenida ni pertenece a otra ventana La main Window de una aplicación WPF es la top-level Window que se encuentra cargada en la propiedad MainWindow del objeto Application Se carga cuando la primer instancia de Window es creada INCO - Facultad de Ingeniería Montevideo, Uruguay 14
15 Top-level Windows INCO - Facultad de Ingeniería Montevideo, Uruguay 15
16 Application shutdown Algunas aplicaciones trabajan naturalmente con la idea de una única ventana principal o Notepad, IDEs, Paintbrush, etc. Esta controla el ciclo de vida de la aplicación. Otras aplicaciones tienen múltiples ventanas top-level o incluso un ciclo de vida independiente de la ventana principal INCO - Facultad de Ingeniería Montevideo, Uruguay 16
17 Shutdown modes Podemos especificar en WPF cuando queremos que nuestra aplicación finalice, a través de la propiedad ShutdownMode en el objeto Application ShutdownMode o OnLastWindowClose = 0 (valor por defecto) o OnMainWindowClose = 1 o OnExplicitShutdown = 2 INCO - Facultad de Ingeniería Montevideo, Uruguay 17
18 Shutdown modes En el caso del shutdown explicito, la única forma de finalizar la ejecución de la aplicación es invocando el método Shutdown de la instancia de Application con la que estamos trabajando o Application.Current.Shutdown() INCO - Facultad de Ingeniería Montevideo, Uruguay 18
19 Shutdown modes Este modo puede alterarse en código cuando lo deseemos También puede configurarse en el XAML del objeto Application <Application x:class="appwindowssample.app" xmlns=" xmlns:x=" StartupUri="Window1.xaml" ShutdownMode="OnExplicitShutdown" /> INCO - Facultad de Ingeniería Montevideo, Uruguay 19
20 Shutdown Estas no son las únicas formas de finalizar una aplicación WPF (un proceso de Windows) Application.Shutdown() es una forma amigable de finalizar una aplicación, cerrar las top-level Windows, y finalizar el método Run() Esto permite que las ventanas involucradas puedan procesar sus notificaciones de Closing y Closed INCO - Facultad de Ingeniería Montevideo, Uruguay 20
21 Application Events Startup Activated Deactivated DispatcherUnhandledException SessionEnding Exit INCO - Facultad de Ingeniería Montevideo, Uruguay 21
22 Layouts INCO - Facultad de Ingeniería Montevideo, Uruguay 22
23 Layouts WPF provee una serie de herramientas flexibles para manipular la distribución de componentes en la interfaz de usuario Un buen sistema de layout balancea entre el control que brinda al desarrollador y el hecho de tener que hacer todo el trabajo INCO - Facultad de Ingeniería Montevideo, Uruguay 23
24 Las básicas WPF provee una serie de elementos denominados paneles Un panel tiene la función especifica de contener otros componentes los cuales debe distribuir apropiadamente Como cualquier componente WPF, los paneles tienen una serie de propiedades simples, que pueden componerse entre si para formar objetos complejos INCO - Facultad de Ingeniería Montevideo, Uruguay 24
25 Paneles Tenemos disponibles los siguientes paneles o o o o o o StackPanel WrapPanel DockPanel Grid Canvas UniformGrid INCO - Facultad de Ingeniería Montevideo, Uruguay 25
26 StackPanel Es el panel mas sencillo Acomoda sus hijos en una columna o en una fila En general no es muy usado para definir la totalidad de una interfaz de usuario Es mas útil para definir pequeñas subsecciones de una interfaz de usuario INCO - Facultad de Ingeniería Montevideo, Uruguay 26
27 StackPanel <StackPanel Background="#ECE9D8"> <TextBlock Margin="3">Look for:</textblock> <ComboBox Margin="3"/> <TextBlock Margin="3">Filtered by:</textblock> <ComboBox Margin="3"/> <Button Margin="3,5">Search</Button> <CheckBox Margin="3">Search in titles only</checkbox> <CheckBox Margin="3">Match related words</checkbox> <CheckBox Margin="3">Search in previous results </CheckBox> <CheckBox Margin="3"> Highlight search hits (in topics) </CheckBox> </StackPanel> INCO - Facultad de Ingeniería Montevideo, Uruguay 27
28 StackPanel Poco acomodo grafico Solamente el margen permite distribuir un poco mejor los componentes INCO - Facultad de Ingeniería Montevideo, Uruguay 28
29 WrapPanel Es una mejora sobre el StackPanel Cuando la cantidad de componentes supera el tope soportado en una línea Si agregamos un nuevo componente, el panel lo colocara en la próxima línea o Funciona como un procesador de texto INCO - Facultad de Ingeniería Montevideo, Uruguay 29
30 WrapPanel <WrapPanel Background="Beige"> <Button>One</Button> <Button>Two</Button> <Button>Three</Button> <Button>Four</Button> <Button>Five</Button> <Button>Six</Button> <Button>Seven</Button> <Button>Eight</Button> </WrapPanel> INCO - Facultad de Ingeniería Montevideo, Uruguay 30
31 DockPanel Organiza los componentes hijos, de forma tal de ocupar un borde determinado del panel Si múltiples hijos se colocan en el mismo borde, estos se apilan como si estuvieran en un StackPanel Por defecto el ultimo hijo llena el espacio no ocupado por los demás bordes INCO - Facultad de Ingeniería Montevideo, Uruguay 31
32 DockPanel <DockPanel> <Button DockPanel.Dock="Top"> Top </Button> <Button DockPanel.Dock="Bottom"> Bottom </Button> <Button DockPanel.Dock="Left">Left</Button> <Button DockPanel.Dock="Right">Right</Button> <Button>Fill</Button> </DockPanel> INCO - Facultad de Ingeniería Montevideo, Uruguay 32
33 DockPanel INCO - Facultad de Ingeniería Montevideo, Uruguay 33
34 Grid Por ejemplo, esta pantalla de propiedades del Internet Explorer, tiene una distribución típica tabular INCO - Facultad de Ingeniería Montevideo, Uruguay 34
35 Grid <Grid Background="Beige ShowGridLines="True"> <Grid.ColumnDefinitions> <ColumnDefinition /> <ColumnDefinition /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition /> <RowDefinition /> <RowDefinition /> </Grid.RowDefinitions> <TextBlock Grid.Column="0" Grid.Row="0">Protocol:</TextBlock> <TextBlock Grid.Column="1" Grid.Row="0"> HyperText Transfer Protocol</TextBlock> <TextBlock Grid.Column="0" Grid.Row="1">Type:</TextBlock> <TextBlock Grid.Column="1" Grid.Row="1">HTML Document</TextBlock> <TextBlock Grid.Column="0" Grid.Row="2">Connection:</TextBlock> <TextBlock Grid.Column="1" Grid.Row="2">Not encrypted</textblock> </Grid> INCO - Facultad de Ingeniería Montevideo, Uruguay 35
36 Grid La grilla necesita saber cuantas filas y columnas manejamos Para esto definimos las propiedades ColumnDefinition y RowDefinition La localización de cada elemento se hace a través de attached properties, indicando la fila y la columna o o Las grillas usan un esquema de 0-based index Esto permite tener celdas vacías INCO - Facultad de Ingeniería Montevideo, Uruguay 36
37 Grid Las celdas pueden contener múltiples elementos El orden en el que aparecen en el XAML determina quien aparece arriba de quien o o o Los que aparecen luego en el documento, se dibujan encima de los que aparecen antes Este orden se denomina Z order Podemos hacer un override de esta propiedad, con Panel.Zindex INCO - Facultad de Ingeniería Montevideo, Uruguay 37
38 UniformGrid A pesar de ser poderosa, a veces la grilla es un poco pesada de utilizar Existe un versión simplificada, denominada UniformGrid Las celdas tienen todas el mismo tamaño, por lo que no es necesario indicar colecciones de filas y columnas para indicar las dimensiones INCO - Facultad de Ingeniería Montevideo, Uruguay 38
39 UniformGrid Siempre se crean las filas y columnas según se necesitan, manteniendo el mismo numero según se agregan componentes Cada celda contiene a lo sumo un componente, por lo que no tenemos porque indicarlo explícitamente INCO - Facultad de Ingeniería Montevideo, Uruguay 39
40 UniformGrid <UniformGrid TextBlock.TextAlignment="Center"> <TextBlock Text="X" /> <TextBlock Text="O"/> <TextBlock Text="X"/> <TextBlock Text="X"/> <TextBlock Text="X"/> <TextBlock Text="O"/> <TextBlock Text="O"/> <TextBlock Text="O"/> <TextBlock Text="X"/> </UniformGrid> INCO - Facultad de Ingeniería Montevideo, Uruguay 40
41 Canvas Existen situaciones en las que necesitamos un completo control de la posición de cada componente Esto suele suceder si queremos construir una imagen a partir de componentes gráficos En estos casos, no aplican las reglas de layout antes descriptas INCO - Facultad de Ingeniería Montevideo, Uruguay 41
42 Canvas Es el mas simple de los paneles, ya que solo indicamos donde van los componentes, relativo a los bordes del Canvas En realidad, el Canvas no hace ningún layout, simplemente coloca las cosas donde le decimos que las coloque Tampoco ajusta el tamaño de los elementos dentro del Canvas, dejándolos con el tamaño que estos tengan por defecto INCO - Facultad de Ingeniería Montevideo, Uruguay 42
43 Canvas Al colocar los elementos hijos, debemos especificar la posición relativa a los bordes superiores (top / left) Si no lo hacemos todo quedara colocado en esa esquina También podemos colocar los elementos relativos al borde inferior derecho (bottom / right) INCO - Facultad de Ingeniería Montevideo, Uruguay 43
44 Canvas <Canvas Background="Yellow" Width="150" Height="100"> <TextBlock Canvas.Left="10" Canvas.Top="20"> Hello </TextBlock> <TextBlock Canvas.Right="10" Canvas.Bottom="20"> world! </TextBlock> </Canvas> INCO - Facultad de Ingeniería Montevideo, Uruguay 44
45 Propiedades comunes Width Height MinWidth MaxWidth MinHeight MaxHeight HorizontalAlignment INCO - Facultad de Ingeniería Montevideo, Uruguay 45
46 Propiedades comunes VerticalAlignment Margin Padding Visibility FlowDirection Panel.Zindex RenderTransform LayoutTransform INCO - Facultad de Ingeniería Montevideo, Uruguay 46
47 Input INCO - Facultad de Ingeniería Montevideo, Uruguay 47
48 Input Tenemos tres tipos de entrada de usuario o o o Mouse Teclado Ink (Tablet pc, Hand held, Stylus, etc) La entrada no procesada de un usuario es enviada al código a través de un mecanismo de WPF, conocido como routed event También existe una variante de mas alto nivel, denominada Command INCO - Facultad de Ingeniería Montevideo, Uruguay 48
49 Routed Events WPF define el siguiente mecanismo general para tratar eventos o o o Una clase expone múltiples eventos Un evento puede tener una cantidad arbitraria de subscriptores Si un evento no tiene handlers registrados, es ignorado INCO - Facultad de Ingeniería Montevideo, Uruguay 49
50 Routed Events WPF utiliza routed events En vez de llamar a un handler asociado al evento que un control disparo, WPF hace una recorrida de un árbol de elementos de interfaz de usuario, llamando a todos los handlers para el routed event que este asociado a cualquier nodo al cual lleguemos desde la raíz del árbol INCO - Facultad de Ingeniería Montevideo, Uruguay 50
51 Routed Events INCO - Facultad de Ingeniería Montevideo, Uruguay 51
52 <Button PreviewMouseDown="PreviewMouseDownButton" MouseDown="MouseDownButton"> <Grid PreviewMouseDown="PreviewMouseDownGrid" MouseDown="MouseDownGrid"> <Grid.ColumnDefinitions> <ColumnDefinition /> <ColumnDefinition /> </Grid.ColumnDefinitions> <Canvas PreviewMouseDown="PreviewMouseDownCanvas" MouseDown="MouseDownCanvas" Width="20" Height="18" VerticalAlignment="Center"> <Ellipse PreviewMouseDown="PreviewMouseDownEllipse" MouseDown="MouseDownEllipse" x:name="myellipse" Canvas.Left="1" Canvas.Top="1" Width="16" Height="16" Fill="Yellow" Stroke="Black" /> <Ellipse Canvas.Left="4.5" Canvas.Top="5" Width="2.5" Height="3" Fill="Black" /> <Ellipse Canvas.Left="11" Canvas.Top="5" Width="2.5" Height="3" Fill="Black" /> <Path Data="M 5,10 A 3, ,10" Stroke="Black" /> </Canvas> <TextBlock Grid.Column="1">Click!</TextBlock> </Grid> </Button> INCO - Facultad de Ingeniería Montevideo, Uruguay 52
53 Routed Events Si uno de los elementos Elipse del ejemplo anterior recibe una entrada, el routing de eventos habilitaría el Button, Grid, Canvas y Ellipse a recibir el evento Un Routed Event puede ser bubbling, tunneling o direct INCO - Facultad de Ingeniería Montevideo, Uruguay 53
54 Que significa esto? Por ejemplo, un botón no esta restringido a tener solo un textblock dentro Por ejemplo, este botón, tiene SEIS elementos gráficos dentro Adjuntar un handler para cada elemento grafico puede ser bastante pesado y poco eficiente INCO - Facultad de Ingeniería Montevideo, Uruguay 54
55 Bubbling routed events Comienza buscando handlers para el evento, en el componente que disparo el evento Luego, busca en su padre, en el padre de su padre, y así sucesivamente Este proceso se repite hasta llegar a la raíz del árbol de componentes INCO - Facultad de Ingeniería Montevideo, Uruguay 55
56 Tunneling routed events Es similar al anterior, pero comienza la búsqueda en la raíz, hasta el componente que origino el evento Trabaja en orden reverso al anterior INCO - Facultad de Ingeniería Montevideo, Uruguay 56
57 Direct events Este caso es similar a como funcionan los eventos tradicionales en.net Solo los handlers directamente attacheados al elemento originarte son notificados o No ocurre ningún routing Esto es útil para casos en los que el evento tiene sentido en el contexto del elemento originanente o Por ejemplo, MouseEnter / MouseLeave no tendría sentido en el ejemplo anterior INCO - Facultad de Ingeniería Montevideo, Uruguay 57
58 Handling del evento Con la excepción de los direct events, WPF define la mayoría de los routed events en parejas o Un bubbling y un tunneling INCO - Facultad de Ingeniería Montevideo, Uruguay 58
59 Handling del evento El tunneling event siempre comienza con Preview, y es lanzado antes o Esto da la chance de que el padre vea el evento ANTES de que llegue a los hijos (de ahí el Preview) INCO - Facultad de Ingeniería Montevideo, Uruguay 59
60 Handling del evento El evento de preview, es seguido de un evento de bubbling o En general, solo interesa manejar este ultimo El Preview suele usarse si queremos bloquear el evento o si queremos hacer algo antes que llegue al hijo INCO - Facultad de Ingeniería Montevideo, Uruguay 60
61 using System; using System.Windows; using System.Diagnostics; namespace EventRouting { public partial class Window1 : Window { public Window1( ) { InitializeComponent( ); } void PreviewMouseDownButton(object sender, RoutedEventArgs e) { Debug.WriteLine("PreviewMouseDownButton"); } void MouseDownButton(object sender, RoutedEventArgs e) { Debug.WriteLine("MouseDownButton"); } void PreviewMouseDownGrid(object sender, RoutedEventArgs e) { Debug.WriteLine("PreviewMouseDownGrid"); } void MouseDownGrid(object sender, RoutedEventArgs e) { Debug.WriteLine("MouseDownGrid"); } void PreviewMouseDownCanvas(object sender, RoutedEventArgs e) { Debug.WriteLine("PreviewMouseDownCanvas"); } void MouseDownCanvas(object sender, RoutedEventArgs e) { Debug.WriteLine("MouseDownCanvas"); } void PreviewMouseDownEllipse(object sender, RoutedEventArgs e) { Debug.WriteLine("PreviewMouseDownEllipse"); } void MouseDownEllipse(object sender, RoutedEventArgs e) { Debug.WriteLine("MouseDownEllipse"); } } } INCO - Facultad de Ingeniería Montevideo, Uruguay 61
62 Handling del evento Al ejecutar lo anterior, obtenemos en la salida esto: o o o o o o o PreviewMouseDownButton PreviewMouseDownGrid PreviewMouseDownCanvas PreviewMouseDownEllipse MouseDownEllipse MouseDownCanvas MouseDownGrid INCO - Facultad de Ingeniería Montevideo, Uruguay 62
63 Controles INCO - Facultad de Ingeniería Montevideo, Uruguay 63
64 Controles Un control es un componente de interfaz de usuario, que provee una interacción particular con el usuario En Windows tenemos muchos ejemplos de controles o TextBoxes, TextEditor, RadioButtons, etc. Los controles son los bloques constructores de cualquier interfaz WPF INCO - Facultad de Ingeniería Montevideo, Uruguay 64
65 Controles A pesar de que solemos asociare una determinada apariencia a un control, WPF provee la capacidad de alterar el look & feel de los controles Podemos alterar aspectos simples como el color de fondo o el tipo de letra, o podemos hacer cambios mas profundos, como la forma y el dibujo que presentan al usuario En cualquier caso, la escencia y funcionalidad básica del control no se altera INCO - Facultad de Ingeniería Montevideo, Uruguay 65
66 Que es un control? En WPF, los controles son todo comportamiento Delegan a los templates el trabajo de definir como será su apariencia Muchos frameworks requieren que construyamos un custom control cuando queremos customizar la apariencia, pero en WPF esto no es necesario o Los nested contents y los templates ofrecen una solución elegante y sencilla al problema INCO - Facultad de Ingeniería Montevideo, Uruguay 66
67 Que es un control? No precisamos escribir un custom control, A MENOS que precisemos un comportamiento interactivo diferente del brindado por los controles built-in INCO - Facultad de Ingeniería Montevideo, Uruguay 67
68 Que es un control? En WPF muchos elementos de interfaz grafica no son controles, como ser Ellipse y Rectangle o o No tienen un comportamiento intrínseco Son solo apariencia Estos elementos de bajo nivel no extienden a Control, sino que heredan de FrameworkElement INCO - Facultad de Ingeniería Montevideo, Uruguay 68
69 INCO - Facultad de Ingeniería Montevideo, Uruguay 69
70 Como encaja en un programa? Las partes visibles del control son provistas por el template, en vez del control mismo No esta completamente desconectado, ya que las usa para presentar la información Estos aspectos visuales son los que utiliza el usuario para interactuar con el componente INCO - Facultad de Ingeniería Montevideo, Uruguay 70
71 Como encaja en un programa? Lo anterior implica que si bien la parte visual puede ser reemplazada, este reemplazo debe cumplir con ciertas responsabilidades Existe un contrato entre el control y su parte visual En cierta forma (inusual), el control tiene un diseño basado en el patrón model-viewcontroller INCO - Facultad de Ingeniería Montevideo, Uruguay 71
72 Como encaja en un programa? A pesar de que el control se hace visible a través de un template, brinda sus servicios al desarrollador a través de un API Los controles puede usar commands para representar operaciones soportadas o Textbox soporta copy, cut, paste, etc. Los controles puede proveer propiedades para modificar la forma en como se ven y como funcionan, así como la información asociada al control (texto en un textbox, por ejemplo) INCO - Facultad de Ingeniería Montevideo, Uruguay 72
73 Como encaja en un programa? Pueden disparar eventos cuando algo importante o que deba ser atendido suceda También provee una serie de métodos, a ser usados desde el código de la aplicación, cuando la interacción deba seguir mas bien un estilo programático INCO - Facultad de Ingeniería Montevideo, Uruguay 73
74 Controles built-in WPF provee una variedad bastante amplia de controles Muchos de ellos corresponden a los controles típicos de Windows, aunque NO son wrappers sobre los controles Win32 o Son todos controles WPF nativos, soportando todas las características que estamos viendo de WPF INCO - Facultad de Ingeniería Montevideo, Uruguay 74
75 Button Es un control en el que el usuario puede hacer click El resultado del click, depende del desarrollador de la aplicación Sin embargo, en cualquier caso existen ciertas expectativas relacionadas con dicho click INCO - Facultad de Ingeniería Montevideo, Uruguay 75
76 Button Por ejemplo, clickear en un radio Button o un CheckBox, suele alterar el aspecto grafico del componente, debido a un cambio en su estado Sin embargo, clickear en un botón, debería producir un resultado Utilizar un botón es sencillo, basta agregar en el XAML o <Button Click="ButtonClicked">Button</Button> INCO - Facultad de Ingeniería Montevideo, Uruguay 76
77 Button El contenido del elemento XML (texto Button ) es utilizado en este caso como el Caption del botón El handler del evento es especificado a traves de la propiedad Click o El code behind debe contener un método con el mismo nombre que el especificado en el handler void ButtonClicked(object sender, RoutedEventArgs e) { MessageBox.Show("Button was clicked"); } INCO - Facultad de Ingeniería Montevideo, Uruguay 77
78 Button WPF provee los tres tipos estándar de botón INCO - Facultad de Ingeniería Montevideo, Uruguay 78
79 Button Podemos utilizar control templates para customizar la forma completa en como se ve un botón INCO - Facultad de Ingeniería Montevideo, Uruguay 79
80 Slider y Scrollbar Son controles que permite seleccionar un valor de un rango determinado de valores La apariencia es siempre la misma o o Una línea, en la cual tenemos una escala y un selector movible Este ultimo es el que permite ajustar el valor INCO - Facultad de Ingeniería Montevideo, Uruguay 80
81 Slider y Scrollbar Ambos controles son similares, la diferencia esta mas bien en el uso Scrollbar o Slider Se utiliza junto con un área scrolleable o Se utiliza para seleccionar un valor especifico de un rango de valores INCO - Facultad de Ingeniería Montevideo, Uruguay 81
82 Slider y Scrollbar INCO - Facultad de Ingeniería Montevideo, Uruguay 82
83 ProgressBar Indica cuanto de un proceso largo, una aplicación ha completado Provee feedback al usuario de cómo ha progresado el trabajo, junto con una idea general de cuanto falta por terminar INCO - Facultad de Ingeniería Montevideo, Uruguay 83
84 Controles de texto WPF provee controles para editar y desplegar texto, siendo el mas simple de ellos el TextBox Este provee una línea simple de texto, que puede ser desplegada y editada o Si colocamos AcceptsReturn en true, entonces podemos hacer que sea multilinea INCO - Facultad de Ingeniería Montevideo, Uruguay 84
85 Controles de texto El textbox provee facilidades de procesamiento de texto simples, como ser o o o Funciones de clipboard (cut, copy, paste) Selección de texto Undo y Redo Algunos ejemplos INCO - Facultad de Ingeniería Montevideo, Uruguay 85
86 Controles de texto INCO - Facultad de Ingeniería Montevideo, Uruguay 86
87 Controles de texto TextBox y PasswordBox proveen propiedades Text y Password respectivamente para obtener el valor ingresado en ellos o Ambas propiedades son de tipo String Para situaciones en donde precisamos texto con contenido mas allá del texto plano, tenemos el RichTextBox INCO - Facultad de Ingeniería Montevideo, Uruguay 87
88 Controles de texto RichTextBox soporta los comandos definidos por la clase EditingCommands Esto incluye las opciones clásicas de formateo como bold, italic, plain, etc, y los shortcuts de teclas tradicionales, como CTRL+B, etc INCO - Facultad de Ingeniería Montevideo, Uruguay 88
89 Controles de texto RichTextBox reconoce también texto RTF o Podemos pastear de Word y de Internet Explorer INCO - Facultad de Ingeniería Montevideo, Uruguay 89
90 Controles de texto Tanto TextBox como RichTextBox ofrecen funcionalidades de spelling Solo tenemos que establecer la propiedad attached SpellChecking.IsEnabled en true INCO - Facultad de Ingeniería Montevideo, Uruguay 90
91 Controles de texto El diccionario utilizado para realizar el spelling cumple con el atributo xml:lang INCO - Facultad de Ingeniería Montevideo, Uruguay 91
92 ToolTip Permite que un Label flotante sea desplegado sobre alguna sección de la interfaz de usuario Solo podemos utilizarlo en conjunto con otro componente de la interfaz de usuario Se vuelve visible cuando el puntero del mouse se mueve (hover) encima del target INCO - Facultad de Ingeniería Montevideo, Uruguay 92
93 ToolTip Utilizamos la propiedad ToolTip del control para asociarlo al target <TextBox Width="100" ToolTip="Type something here" /> <TextBox Width="100"> <TextBox.ToolTip> <ToolTip Content="Type something here" /> </TextBox.ToolTip> </TextBox> INCO - Facultad de Ingeniería Montevideo, Uruguay 93
94 ToolTip O podemos elaborar un poco mas el tooltip <TextBox Width="100"> <TextBox.ToolTip> <TextBlock FontSize="25"> <Ellipse Fill="Orange" Width="20" Height="20" /> Plain text is <Italic>so</Italic> <Span FontFamily="Old English Text MT">last century</span> <Ellipse Fill="Orange" Width="20" Height="20" /> </TextBlock> </TextBox.ToolTip> </TextBox> INCO - Facultad de Ingeniería Montevideo, Uruguay 94
95 GroupBox y Expander Son muy similares entre si Proveen un container para contenido arbitrario, y lugar para un header Son muy similares, pero o o el Expander puede ser expandido y colapsado, el GroupBox siempre muestra su contenido Ambos derivan de HeaderedContentControl INCO - Facultad de Ingeniería Montevideo, Uruguay 95
96 GroupBox y Expander INCO - Facultad de Ingeniería Montevideo, Uruguay 96
97 <StackPanel Orientation="Horizontal"> <GroupBox Header="Glass"> <Border Margin="2" Background="White" Padding="3"> <StackPanel> <RadioButton Content="Half-full" IsChecked="True" /> <RadioButton Content="Half-empty" /> </StackPanel> </Border> </GroupBox> <Expander Header="Glass" IsExpanded="True" Background="#def" VerticalAlignment="Center" MinWidth="90 Margin="10,0"> <Border Margin="2" Background="White" Padding="3"> <StackPanel> <RadioButton Content="Half-full" IsChecked="True" /> <RadioButton Content="Half-empty" /> </StackPanel> </Border> </Expander> </StackPanel> INCO - Facultad de Ingeniería Montevideo, Uruguay 97
98 GroupBox y Expander No solo el área de contenido puede ser cualquier cosa, sino que en el header podemos colocar contenido arbitrario Utiliza una forma dual de content model INCO - Facultad de Ingeniería Montevideo, Uruguay 98
99 <GroupBox> <GroupBox.Header> <StackPanel Orientation="Horizontal"> <TextBlock Text="Slightly" FontStyle="Italic" VerticalAlignment="Center" /> <MediaElement Source="C:\Videos\Butterfly.wmv" Width="80" /> <TextBlock Text=" more " VerticalAlignment="Center" /> <Ellipse Fill="Red" Width="20" Height="60" /> <TextBlock Text=" interesting " VerticalAlignment="Center" FontWeight="Bold" /> <Button Content="_header" VerticalAlignment="Center" /> </StackPanel> </GroupBox.Header> <TextBlock Text="Boring content" /> </GroupBox> INCO - Facultad de Ingeniería Montevideo, Uruguay 99
100 List Controls WPF ofrece varios controles que pueden presentar múltiples elementos o o o ListBox, ComboBox y ListView presentan una lista de elementos TreeView presenta una jerarquía de elementos TabControl presenta una lista de items (los tabs) Todos heredan de ItemsControl INCO - Facultad de Ingeniería Montevideo, Uruguay 100
101 List Controls La forma mas fácil de usarlos, es agregar controles a su propiedad Items <ComboBox> <Button>Click!</Button> <TextBlock>Hello, world</textblock> <StackPanel Orientation="Horizontal"> <TextBlock>Ellipse:</TextBlock> <Ellipse Fill="Blue" Width="100" /> </StackPanel> </ComboBox> INCO - Facultad de Ingeniería Montevideo, Uruguay 101
102 List Controls INCO - Facultad de Ingeniería Montevideo, Uruguay 102
103 List Controls Cada control que se agrega a uno de estos list controls, es colocado automaticamente en un contenedor para que pueda ser colocado en el control Cada control tiene su item container apropiado o ComboBoxItem, ListBoxItem, TabItem, ListViewItem y TreeViewItem INCO - Facultad de Ingeniería Montevideo, Uruguay 103
104 List Controls En el ejemplo anterior, este container es generado automáticamente Este proceso se denomina Item Container Generation Es conveniente, pero a veces necesitamos mas control INCO - Facultad de Ingeniería Montevideo, Uruguay 104
105 <TabControl> <TabItem Header="_Button"> <Button>Click!</Button> </TabItem> <TabItem> <TabItem.Header> <TextBlock FontSize="18" FontFamily="Palatino Linotype"> <AccessText>_Text</AccessText> </TextBlock> </TabItem.Header> <TextBlock>Hello, world</textblock> </TabItem> <TabItem> <TabItem.Header> <Ellipse Fill="Blue" Width="30" Height="20" /> </TabItem.Header> <StackPanel Orientation="Horizontal"> <TextBlock>Ellipse:</TextBlock> <Ellipse Fill="Blue" Width="100" /> </StackPanel> </TabItem> </TabControl> INCO - Facultad de Ingeniería Montevideo, Uruguay 105
106 ListView ListView deriva de ListBox, dando la posibilidad de ver los datos estilo grilla Debemos describir las columnas de dicha grilla <ListView> <ListView.View> <GridView AllowsColumnReorder="true"> <GridViewColumn Header="Name" /> <GridViewColumn Header="Line Spacing" /> <GridViewColumn Header="Sample" /> </GridView> </ListView.View> </ListView> INCO - Facultad de Ingeniería Montevideo, Uruguay 106
107 <ListView ItemsSource="{x:Static Fonts.SystemFontFamilies}"> <ListView.View> <GridView> <GridViewColumn Header="Name" DisplayMemberBinding="{Binding Source}" /> <GridViewColumn Header="Line Spacing" DisplayMemberBinding="{Binding LineSpacing}" /> <GridViewColumn Header="Sample"> <GridViewColumn.CellTemplate> <DataTemplate> <TextBlock FontFamily="{Binding}" FontSize="20" Text="ABCDEFGabcdefg" /> </DataTemplate> </GridViewColumn.CellTemplate> </GridViewColumn> </GridView> </ListView.View> </ListView> INCO - Facultad de Ingeniería Montevideo, Uruguay 107
108 TreeView Presenta una visión jerárquica de los datos en vez de una lista secuencial Esto implica que los elementos TreeViewItem deben estar anidados entre si INCO - Facultad de Ingeniería Montevideo, Uruguay 108
109 <TreeView> <TreeViewItem Header="First top-level item" IsExpanded="True"> <TreeViewItem Header="Child" /> <TreeViewItem Header="Another child" IsExpanded="True"> <TreeViewItem Header="Grandchild" /> <TreeViewItem Header="Grandchild 2" /> </TreeViewItem> <TreeViewItem Header="A third child" /> </TreeViewItem> <TreeViewItem Header="Second top-level item"> <TreeViewItem Header="Child a" /> <TreeViewItem Header="Child b" /> <TreeViewItem Header="Child c" /> </TreeViewItem> <TreeViewItem IsExpanded="True"> <TreeViewItem.Header> <StackPanel Orientation="Horizontal"> <Ellipse Fill="Blue" Width="15" Height="15" /> <TextBlock Text="Third top-level item" /> <Ellipse Fill="Blue" Width="15" Height="15" /> </StackPanel> </TreeViewItem.Header> <TreeViewItem Header="Child a" /> <TreeViewItem Header="Child b" /> <TreeViewItem Header="Child c" /> </TreeViewItem> </TreeView> INCO - Facultad de Ingeniería Montevideo, Uruguay 109
110 Menues Permite definir los clásicos menues de las ventanas y/o los menús emergentes de las aplicaciones INCO - Facultad de Ingeniería Montevideo, Uruguay 110
111 <Menu> <MenuItem Header="_File"> <MenuItem Header="_New" /> <MenuItem Header="_Open..." /> <MenuItem Header="_Save" /> <MenuItem Header="Sa_ve As..." /> <Separator /> <MenuItem Header="Page Se_tup..." /> <MenuItem Header="_Print..." /> <Separator /> <MenuItem Header="E_xit" /> </MenuItem> <MenuItem Header="_Edit"> <MenuItem Header="_Undo" /> <MenuItem Header="_Redo" /> <Separator /> <MenuItem Header="Cu_t" /> <MenuItem Header="_Copy" /> <MenuItem Header="_Paste" /> <MenuItem Header="_Delete" /> <Separator /> <MenuItem Header="Select _All" /> </MenuItem> <MenuItem Header="_Help"> <MenuItem Header="Help _Topics" /> <MenuItem Header="_About..." /> </MenuItem> </Menu> INCO - Facultad de Ingeniería Montevideo, Uruguay 111
112 ContextMenu <Grid Background="Transparent"> <Grid.ContextMenu> <ContextMenu> <MenuItem Header="Foo" /> <MenuItem Header="Bar" /> </ContextMenu> </Grid.ContextMenu>... </Grid> INCO - Facultad de Ingeniería Montevideo, Uruguay 112
113 Toolbars La mayoría de las aplicaciones de Windows proveen toolbars, como medio de acceso rápido a un grupo de funcionalidades INCO - Facultad de Ingeniería Montevideo, Uruguay 113
114 Toolbars WPF provee los controles ToolbarTray y Toolbar ToolbarTray provee un container en el cual podemos agregar multiples controles Toolbar INCO - Facultad de Ingeniería Montevideo, Uruguay 114
115 <ToolBarTray> <ToolBar> <Button> <Canvas Width="16" Height="16" SnapsToDevicePixels="True"> <Polygon Stroke="Black" StrokeThickness="0.5" Points="2.5, , , ,15 2.5,15"> <Polygon.Fill> <LinearGradientBrush StartPoint="1,1" EndPoint="0.2,0.7"> <GradientStop Offset="0" Color="#AAA" /> <GradientStop Offset="1" Color="White" /> </LinearGradientBrush> </Polygon.Fill> </Polygon> <Polygon Stroke="Black" Fill="DarkGray" StrokeThickness="0.5" StrokeLineJoin="Bevel" Points="9.5, , ,4.5" /> </Canvas> </Button> <Button> <Canvas Width="16" Height="16" > <Polygon Stroke="Black" StrokeThickness="0.5" Fill="Khaki" SnapsToDevicePixels="True" Points="0.5, , , , , , ,14.5" /> <Polygon Stroke="Black" SnapsToDevicePixels="True" StrokeThickness="0.5" Points="1.5, , , ,14.5" > <Polygon.Fill> <LinearGradientBrush StartPoint="0.25,0" EndPoint="0.5,1"> <GradientStop Offset="0" Color="#FF4" /> <GradientStop Offset="1" Color="#CA7" /> </LinearGradientBrush> </Polygon.Fill> </Polygon> <Path Stroke="Blue" StrokeThickness="1" Data="M 8,2 C 9,1 12,1 14,3" /> <Polygon Fill="Blue" Points="15,1 15.5,4.5 12,4" /> </Canvas> </Button> </ToolBar> <ToolBar> <Button>Second toolbar</button> <CheckBox IsChecked="True">Choice</CheckBox> </ToolBar> </ToolBarTray> INCO - Facultad de Ingeniería Montevideo, Uruguay 115
116 GridSplitter Permite ajustar las dimensiones del layout de la aplicación, ajustando los tamaños una columna o fila de una grilla <Grid Height="100" Width="400"> <Grid.ColumnDefinitions> <ColumnDefinition Width="1*" /> <ColumnDefinition Width="6" /> <ColumnDefinition Width="2*" /> </Grid.ColumnDefinitions> <Ellipse Grid.Column="0" Fill="Red" /> <GridSplitter Grid.Column="1" HorizontalAlignment="Stretch" /> <Ellipse Grid.Column="2" Fill="Blue" /> </Grid> INCO - Facultad de Ingeniería Montevideo, Uruguay 116
117 GridSplitter INCO - Facultad de Ingeniería Montevideo, Uruguay 117
118 Data Binding INCO - Facultad de Ingeniería Montevideo, Uruguay 118
119 Data Binding El propósito de la gran mayoría de las aplicaciones que tienen interacción con el usuario, es presentar datos, y permitir que los usuarios modifiquen dichos datos Algunas tareas que tendremos que realizar con los datos: o Mostrarlos, convertirlos, ordenarlos, filtrarlos, relacionarlos, y editarlos INCO - Facultad de Ingeniería Montevideo, Uruguay 119
120 Data Binding WPF incorpora un motor de data binding, que permite realizar muchas de las tareas anteriores, con menos código No quita que las tareas puedan hacerse sin este motor, solo que quedan mas complejas Por ejemplo INCO - Facultad de Ingeniería Montevideo, Uruguay 120
121 Sin Data Binding INCO - Facultad de Ingeniería Montevideo, Uruguay 121
122 Sin Data Binding Podemos implementar lo anterior con un simple XAML <!-- Window1.xaml --> <Window...> <Grid>... <TextBlock...>Name:</TextBlock> <TextBox Name="nameTextBox"... /> <TextBlock...>Age:</TextBlock> <TextBox Name="ageTextBox"... /> <Button Name="birthdayButton"...>Birthday</Button> </Grid> </Window> INCO - Facultad de Ingeniería Montevideo, Uruguay 122
123 Sin Data Binding public class Person { string name; public string Name { get { return this.name; } set { this.name = value; } } int age; public int Age { get { return this.age; } set { this.age = value; } } public Person( ) {} public Person(string name, int age) { this.name = name; this.age = age; } } INCO - Facultad de Ingeniería Montevideo, Uruguay 123
124 // Window1.xaml.cs... public class Person {...} public partial class Window1 : Window { Person person = new Person("Tom", 11); public Window1( ) { InitializeComponent( ); // Fill initial person fields this.nametextbox.text = person.name; this.agetextbox.text = person.age.tostring(); // Handle the birthday button click event this.birthdaybutton.click += birthdaybutton_click; } void birthdaybutton_click(object sender, RoutedEventArgs e) { ++person.age; MessageBox.Show(string.Format( "Happy Birthday, {0}, age {1}!", person.name, person.age), "Birthday"); } } INCO - Facultad de Ingeniería Montevideo, Uruguay 124
125 Sin Data Binding El código crea un objeto persona, y lo usa para inicializar los campos de la ventana Cuando se presiona el botón del cumpleaños, la persona se modifica, y los datos se muestran en un message box INCO - Facultad de Ingeniería Montevideo, Uruguay 125
126 Sin Data Binding INCO - Facultad de Ingeniería Montevideo, Uruguay 126
127 Sin Data Binding El ejemplo es bastante sencillo Los cambios en el objeto se reflejan en un MessageBox Podríamos mejorarlo para que los cambios afecten la ventana principal INCO - Facultad de Ingeniería Montevideo, Uruguay 127
128 Sin Data Binding void birthdaybutton_click(object sender, RoutedEventArgs e) { ++person.age; // Manually update the UI this.agetextbox.text = person.age.tostring(); } MessageBox.Show(string.Format( "Happy Birthday, {0}, age {1}!", person.name, person.age), "Birthday"); INCO - Facultad de Ingeniería Montevideo, Uruguay 128
129 Sin Data Binding La forma de hacer mas dinámica nuestra aplicación, agregamos una línea de código Parece una forma sencilla de mejorarla, pero tiene un problema No escala bien a medida que la aplicación se hace mas complicada, requiriendo cada vez mas de estas líneas de código INCO - Facultad de Ingeniería Montevideo, Uruguay 129
130 Cambios en los objetos Una forma mas robusta para que la UI lleve registro de los cambios, es que el objeto avise cuando una propiedad cambia, por ejemplo, lanzando un evento La forma correcta de hacer esto, es que el objeto implemente INotifyPropertyChanged INCO - Facultad de Ingeniería Montevideo, Uruguay 130
131 using System.ComponentModel; // INotifyPropertyChanged... public class Person : INotifyPropertyChanged { // INotifyPropertyChanged Members public event PropertyChangedEventHandler PropertyChanged; protected void Notify(string propname) { if( this.propertychanged!= null ) { PropertyChanged( this, new PropertyChangedEventArgs(propName)); } }... INCO - Facultad de Ingeniería Montevideo, Uruguay 131
132 } string name; public string Name { get { return this.name; } set { if( this.name == value ) { return; } this.name = value; Notify("Name"); } } int age; public int Age { get { return this.age; } set { if(this.age == value ) { return; } this.age = value; Notify("Age"); } } public Person( ) {} public Person(string name, int age) { this.name = name; this.age = age; } INCO - Facultad de Ingeniería Montevideo, Uruguay 132
133 Notificación de cambios Cuando la propiedad Age de la persona cambia, debida a la acción del handler de la ventana, el objeto persona hace un raise del evento PropertyChanged Podríamos manualmente capturar este evento, colocar un handler y reaccionar ante el mismo, como hacemos con cualquier otro handler INCO - Facultad de Ingeniería Montevideo, Uruguay 133
134 Notificación // Window1.xaml.cs de cambios... public class Person : INotifyPropertyChanged {...} public partial class Window1 : Window { Person person = new Person("Tom", 11); public Window1( ) { InitializeComponent( ); // Fill initial person fields this.nametextbox.text = person.name; this.agetextbox.text = person.age.tostring( ); // Watch for changes in Tom's properties person.propertychanged += person_propertychanged; } // Handle the birthday button click event this.birthdaybutton.click += birthdaybutton_click; INCO - Facultad de Ingeniería Montevideo, Uruguay 134
135 Notificación de cambios void person_propertychanged( object sender, PropertyChangedEventArgs e) { switch( e.propertyname ) { case "Name": this.nametextbox.text = person.name; break; case "Age": this.agetextbox.text = person.age.tostring(); break; } } INCO - Facultad de Ingeniería Montevideo, Uruguay 135
136 Notificación de cambios } void birthdaybutton_click(object sender, RoutedEventArgs e) { ++person.age; // person_propertychanged will update agetextbox MessageBox.Show( string.format( "Happy Birthday, {0}, age {1}!", person.name, person.age), "Birthday"); } INCO - Facultad de Ingeniería Montevideo, Uruguay 136
137 Notificación de cambios Con el código anterior, ocurre una cascada de eventos que hacen que el handler del botón del cumpleaños, no tenga que actualizar la UI Gráficamente, se puede apreciar en el siguiente diagrama este flujo de eventos INCO - Facultad de Ingeniería Montevideo, Uruguay 137
138 INCO - Facultad de Ingeniería Montevideo, Uruguay 138
139 Notificación de cambios Sin embargo, hemos resuelto parte del problema Aun tenemos que actualizar manualmente en el handler del cambio de propiedad, la interfaz grafica Pero tenemos otro problema INCO - Facultad de Ingeniería Montevideo, Uruguay 139
140 Cambios en la UI Necesitamos también un mecanismo que detecte los cambios en la interfaz grafica, y los propague hacia el objeto En ejemplo anterior, si cambiamos el nombre y presionamos el botón Birthday, puede pasarnos esto INCO - Facultad de Ingeniería Montevideo, Uruguay 140
141 Cambios en la UI INCO - Facultad de Ingeniería Montevideo, Uruguay 141
142 Cambios en la UI Necesitamos monitorear la propiedad Text del textbox, actualizando en caso afirmativo la propiedad INCO - Facultad de Ingeniería Montevideo, Uruguay 142
143 Cambios en la UI public partial class Window1 : Window { Person person = new Person("Tom", 11); public Window1( ) { InitializeComponent( ); // Fill initial person fields this.nametextbox.text = person.name; this.agetextbox.text = person.age.tostring( ); // Watch for changes in Tom's properties person.propertychanged += person_propertychanged; // Watch for changes in the controls this.nametextbox.textchanged += nametextbox_textchanged; this.agetextbox.textchanged += agetextbox_textchanged; // Handle the birthday button click event this.birthdaybutton.click += birthdaybutton_click; }... INCO - Facultad de Ingeniería Montevideo, Uruguay 143
144 Cambios en la UI } void nametextbox_textchanged(object sender, TextChangedEventArgs e) { person.name = nametextbox.text; } void agetextbox_textchanged(object sender, TextChangedEventArgs e) { int age = 0; if( int.tryparse(agetextbox.text, out age) ) { person.age = age; } } void birthdaybutton_click(object sender, RoutedEventArgs e) { ++person.age; MessageBox.Show(string.Format( "Happy Birthday, {0}, age {1}!", person.name, person.age), "Birthday ); } INCO - Facultad de Ingeniería Montevideo, Uruguay 144
145 Cambios en la UI INCO - Facultad de Ingeniería Montevideo, Uruguay 145
146 Sincronización Sin importar entonces en donde se de el cambio (objeto,ui), ambos elementos se mantienen sincronizados Sin embargo, a pesar de que tenemos lo que buscábamos, tuvimos que escribir bastante código INCO - Facultad de Ingeniería Montevideo, Uruguay 146
147 Sincronización El constructor de Window1 tuvo que inicializar los datos en los controles, convirtiendo según necesidad a String El constructor Window1 tuvo que enganchar los handlers de los eventos PropertyChanged del objeto Person INCO - Facultad de Ingeniería Montevideo, Uruguay 147
148 Sincronización El evento PropertyChanged, para tomar los nuevos datos de la persona, convirtiendo a String según sea necesario El constructor de Window1 debe enganchar el handler de TextChanged Handler de TextChanged para propagar cambios en la UI a la persona, convirtiendo de String según sea necesario INCO - Facultad de Ingeniería Montevideo, Uruguay 148
149 Sincronización Claramente, la cantidad de código a escribir se nos va de las manos, si la cantidad de objetos, propiedades de los objetos y eventos aumenta Además, este tipo de tareas parecen bastante repetitivas De ahí que WPF las abstrae en funcionalidades del framework, dándole el nombre de Data Binding INCO - Facultad de Ingeniería Montevideo, Uruguay 149
150 WPF Data Binding Consiste en registrar un par de propiedades, una de ellas en un objeto (Person.Name), la otra en la interfaz grafica (Textbox.Text), con el motor de Data Binding Este motor es el que se encarga de mantener ambas sincronizadas, convirtiendo los tipos de datos según sea necesario INCO - Facultad de Ingeniería Montevideo, Uruguay 150
151 WPF Data Binding INCO - Facultad de Ingeniería Montevideo, Uruguay 151
152 Bindings Para registrar ambas propiedades, utilizamos el objeto Binding Todas las siguientes son equivalentes <TextBox...> <TextBox.Text> <Binding Path="Age" /> </TextBox.Text> </TextBox> <TextBox Text="{Binding Path=Age}" /> <TextBox Text="{Binding Age}" /> INCO - Facultad de Ingeniería Montevideo, Uruguay 152
153 Bindings Algo un poco mas elaborado <TextBox...> <TextBox.Foreground> <Binding Path="Age" Mode="OneWay" Source="{StaticResource Tom}" Converter="{StaticResource ageconverter}" /> </TextBox.Foreground> </TextBox> INCO - Facultad de Ingeniería Montevideo, Uruguay 153
154 Bindings Volviendo a este ejemplo, <TextBox Text="{Binding Path=Name}" /> es equivalente a INCO - Facultad de Ingeniería Montevideo, Uruguay 154
155 Bindings En general, podemos pensar que Path es la ruta para acceder a una propiedad dentro del objeto fuente de la información En el caso anterior, el binding se da entre el TextBox (propiedad Text) y la propiedad Age de un objeto que será determinado luego INCO - Facultad de Ingeniería Montevideo, Uruguay 155
156 Bindings En el caso anterior, el textbox actúa como el binding target, consumiendo los cambios del binding source El binding target puede ser cualquier elemento WPF, pero solo podemos bindear contra las dependency properties El binding source puede ser cualquier propiedad de cualquier elemento WPF INCO - Facultad de Ingeniería Montevideo, Uruguay 156
157 Bindings En este caso, el binding source puede especificarse en runtime Sin embargo, en general, el binding source provendrá de un Data Context INCO - Facultad de Ingeniería Montevideo, Uruguay 157
158 Data source implícitos Un Data Context es el lugar en el que los bindings buscan por su data source si no se les ha dado ninguna instrucción especial En WPF todo FrameworkElement y todo FrameworkContentElement tienen una propiedad DataContext INCO - Facultad de Ingeniería Montevideo, Uruguay 158
159 Data source implícitos Esta es de tipo Object, por lo que podemos colocar cualquier cosa que deseemos INCO - Facultad de Ingeniería Montevideo, Uruguay 159
160 Data source implícitos Cuando se busca un objeto para utilizar como data source de un binding, se recorre el árbol de componentes en forma inversa, partiendo del componente en cuestión Esto es bastante útil cuando queremos que dos componentes compartan el mismo data source INCO - Facultad de Ingeniería Montevideo, Uruguay 160
161 Data source implícitos INCO - Facultad de Ingeniería Montevideo, Uruguay 161
162 Data source implícitos Esto funciona así o o o El binding busca un DataContext en el propio TextBox El binding busca un DataContext en la Grid El binding busca un DataContext en el Window Hacer que ambos textbox compartan el mismo objeto Person, es cuestión de colocarlo en el DataContext de la grilla INCO - Facultad de Ingeniería Montevideo, Uruguay 162
163 // Window1.xaml.cs using System; using System.Windows; using System.Windows.Controls; namespace WithBinding { public partial class Window1 : Window { Person person = new Person("Tom", 11); public Window1( ) { InitializeComponent( ); grid.datacontext = person; this.birthdaybutton.click += birthdaybutton_click; } void birthdaybutton_click(object sender, RoutedEventArgs e) { ++person.age; MessageBox.Show(string.Format( "Happy Birthday, {0}, age {1}!", person.name, person.age), "Birthday"); } } } INCO - Facultad de Ingeniería Montevideo, Uruguay 163
164 Data source implícitos Entonces, si bien la funcionalidad es la misma, el código de sincronización se ha reducido enormemente INCO - Facultad de Ingeniería Montevideo, Uruguay 164
165 Data Islands Una de las catacteristicas especiales de WPF, es que permiten la creacion de casi cualquier tipo de objeto dentro del XAML Por ejemplo, si queremos trabajar con el objeto Person anterior, podemos hacer INCO - Facultad de Ingeniería Montevideo, Uruguay 165
Temario 23/09/2008. UNIVERSIDAD ABIERTA INTERAMERICANA Facultad de Tecnología Informática. Luis Perdomo Rocio Gimenez
UNIVERSIDAD ABIERTA INTERAMERICANA Facultad de Tecnología Informática Luis Perdomo Rocio Gimenez Temario 1. Qué es WPF? 2. Objetivo de WPF 3. Funcionalidades Básicas 4. Presentación de un problema 5. Principales
Más detallesSistema de Gestión Portuaria Sistema de Gestión Portuaria Uso General del Sistema
Sistema de Gestión Portuaria Uso General del Sistema Uso General del Sistema Página 1 de 21 Contenido Contenido... 2 1.Ingreso al Sistema... 3 2.Uso del Menú... 6 3.Visualizar Novedades del Sistema...
Más detallesPara ingresar a la aplicación Microsoft PowerPoint 97, los pasos que se deben seguir pueden ser los siguientes:
Descripción del ambiente de trabajo Entrar y salir de la aplicación Para ingresar a la aplicación Microsoft PowerPoint 97, los pasos que se deben seguir pueden ser los siguientes: A través del botón :
Más detallesLa ventana de Microsoft Excel
Actividad N 1 Conceptos básicos de Planilla de Cálculo La ventana del Microsoft Excel y sus partes. Movimiento del cursor. Tipos de datos. Metodología de trabajo con planillas. La ventana de Microsoft
Más detallesPowerPoint 2010 Modificar el diseño de las diapositivas
PowerPoint 2010 Modificar el diseño de las diapositivas Contenido CONTENIDO... 1 MODIFICAR EL DISEÑO DE LAS DIAPOSITIVAS... 2 DISEÑO DE DIAPOSITIVAS EN POWERPOINT WEB APP... 13 1 Modificar el diseño de
Más detallesAGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7
Tutoriales de ayuda e información para todos los niveles AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7 Como agregar a una red existente un equipo con Windows 7 y compartir sus archivos
Más detallesWINDOWS. Iniciando Windows. El mouse
Windows es un sistema operativo, cuyo nombre lo debe al principal elemento de trabajo, la ventana - en inglés window -. Este tiene características como: Multitarea: durante una sesión de trabajo, es posible
Más detallesOperación Microsoft Access 97
Trabajar con Controles Características de los controles Un control es un objeto gráfico, como por ejemplo un cuadro de texto, un botón de comando o un rectángulo que se coloca en un formulario o informe
Más detallesPrimeros Pasos INTRODUCCIÓN A APLICACIONES WINDOWS. Introducción
INTRODUCCIÓN A APLICACIONES WINDOWS Introducción Hasta el momento y como lo mencionamos antes, solo hemos utilizado la consola para el desarrollo de aplicaciones, pero es monto de dar un vistazo a aplicaciones
Más detallesQUERCUS PRESUPUESTOS MANUAL DEL USO
QUERCUS PRESUPUESTOS MANUAL DEL USO 2 Tabla de Contenido 1 Introducción 1 1.1 General 1 1.1.1 Que es Quercus Presupuestos? 1 1.1.2 Interfaz 1 1.1.3 Árbol de Navegación 2 1.1.4 Estructura de Datos de un
Más detallesCATÁLOGO CATÁLOGO CATÁLOGO CATÁLOGO CATÁLOGO
CATÁLOGO MANUAL DE USUARIO CATÁLOGO MANUAL DE USUARIO CATÁLOGO MANUAL DE USUARIO 1. CATÁLOGO MANUAL DE USUARIO CATÁLOGO AHORA CATÁLOGO MANUAL DE USUARIO 1 1. Introducción AHORA Catálogo es una aplicación
Más detallesCentro de Capacitación en Informática
Fórmulas y Funciones Las fórmulas constituyen el núcleo de cualquier hoja de cálculo, y por tanto de Excel. Mediante fórmulas, se llevan a cabo todos los cálculos que se necesitan en una hoja de cálculo.
Más detallesPrograma diseñado y creado por 2014 - Art-Tronic Promotora Audiovisual, S.L.
Manual de Usuario Programa diseñado y creado por Contenido 1. Acceso al programa... 3 2. Opciones del programa... 3 3. Inicio... 4 4. Empresa... 4 4.2. Impuestos... 5 4.3. Series de facturación... 5 4.4.
Más detallesG R U P O S INDICE Cómo crear una cuenta en ARQA? Cómo tener un grupo en ARQA? Secciones y funcionalidades de los grupos Configuración del grupo
INDICE Cómo crear una cuenta en ARQA? 4 Cómo tener un grupo en ARQA? 5 Secciones y funcionalidades de los grupos 6 Muro del Grupo 6 Compartir Textos 8 Compartir Imágenes 9 Compartir videos 10 Compartir
Más detallesAccede a su DISCO Virtual del mismo modo como lo Hace a su disco duro, a través de:
Gemelo Backup Online DESKTOP Manual DISCO VIRTUAL Es un Disco que se encuentra en su PC junto a las unidades de discos locales. La información aquí existente es la misma que usted ha respaldado con su
Más detallesSincronización del Servidor.
Sincronización del Servidor. Versión 1.0 03/05/05 Fecha Jose Autor Manuel Viejo Lobato http://ars.viejolobato.com Página 1 de 5 Índice. 1. Introducción... 3 2. Búsqueda de elementos de workflow por nombre....
Más detallesBases de datos en Excel
Universidad Complutense de Madrid CURSOS DE FORMACIÓN EN INFORMÁTICA Bases de datos en Excel Hojas de cálculo Tema 5 Bases de datos en Excel Hasta ahora hemos usado Excel básicamente para realizar cálculos
Más detallesManual CMS Mobincube
Manual CMS Mobincube CMS Mobincube Qué es? El CMS (Sistema de Gestión de Contenidos) es un completo website que permite la creación y actualización de contenido remoto. De esta forma, una vez creada una
Más detallesEdición de Ofertas Excel Manual de Usuario
Edición de Ofertas Excel Manual de Usuario Alfonso XI, 6 28014 Madrid F(+34) 91 524 03 96 www.omie.es Ref. MU_OfertasExcel.docx Versión 4.0 Fecha: 2012-11-26 ÍNDICE 1 INTRODUCCIÓN 3 2 CONSIDERACIONES DE
Más detallesInternet Information Server
Internet Information Server Internet Information Server (IIS) es el servidor de páginas web avanzado de la plataforma Windows. Se distribuye gratuitamente junto con las versiones de Windows basadas en
Más detallesTutorial: Primeros Pasos con Subversion
Tutorial: Primeros Pasos con Subversion Introducción Subversion es un sistema de control de versiones open source. Corre en distintos sistemas operativos y su principal interfaz con el usuario es a través
Más detallesElementos requeridos para crearlos (ejemplo: el compilador)
Generalidades A lo largo del ciclo de vida del proceso de software, los productos de software evolucionan. Desde la concepción del producto y la captura de requisitos inicial hasta la puesta en producción
Más detallesMANUAL DE LA APLICACIÓN HELP DESK
CASAMOTOR MANUAL DE LA APLICACIÓN HELP DESK Desarrollado por: NOVIEMBRE, 2012 BOGOTÁ D.C. - COLOMBIA INTRODUCCIÓN Este documento es el manual de la aplicación de Help Desk de Casamotor, producto desarrollado
Más detallesPlataforma e-ducativa Aragonesa. Manual de Administración. Bitácora
Plataforma e-ducativa Aragonesa Manual de Administración Bitácora ÍNDICE Acceso a la administración de la Bitácora...3 Interfaz Gráfica...3 Publicaciones...4 Cómo Agregar una Publicación...4 Cómo Modificar
Más detallesWorkflows? Sí, cuántos quiere?
Workflows? Sí, cuántos quiere? 12.11.2006 Servicios Profesionales Danysoft Son notables los beneficios que una organización puede obtener gracias al soporte de procesos de negocios que requieran la intervención
Más detallesEn términos generales, un foro es un espacio de debate donde pueden expresarse ideas o comentarios sobre uno o varios temas.
1 de 18 Inicio Qué es un foro En términos generales, un foro es un espacio de debate donde pueden expresarse ideas o comentarios sobre uno o varios temas. En el campus virtual, el foro es una herramienta
Más detallesMANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD
MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD Fecha última revisión: Diciembre 2010 Tareas Programadas TAREAS PROGRAMADAS... 3 LAS TAREAS PROGRAMADAS EN GOTELGEST.NET... 4 A) DAR DE ALTA UN USUARIO...
Más detallesTPVFÁCIL. Caja Real. Definiciones.
TPVFÁCIL. Caja Real. TPVFÁCIL incluye desde la versión 3.3.2 la posibilidad de manejar dos cajas, la Caja Real y la Caja normal. La idea es esconder los datos de caja que pueden alcanzar los usuarios no
Más detallesMANUAL DE USUARIO CMS- PLONE www.trabajo.gob.hn
MANUAL DE USUARIO CMS- PLONE www.trabajo.gob.hn Tegucigalpa M. D. C., Junio de 2009 Que es un CMS Un sistema de administración de contenido (CMS por sus siglas en ingles) es un programa para organizar
Más detallesPresentaciones. Con el estudio de esta Unidad pretendemos alcanzar los siguientes objetivos:
UNIDAD 8 Presentaciones Reunión. (ITE. Banco de imágenes) as presentaciones son documentos formados por una sucesión de páginas, llamadas diapositivas, que transmiten información estructurada de manera
Más detallesMANUAL DE AYUDA HERRAMIENTA DE APROVISIONAMIENTO
MANUAL DE AYUDA HERRAMIENTA DE APROVISIONAMIENTO Fecha última revisión: Junio 2011 INDICE DE CONTENIDOS HERRAMIENTA DE APROVISIONAMIENTO... 3 1. QUÉ ES LA HERRAMIENTA DE APROVISIONAMIENTO... 3 HERRAMIENTA
Más detallesMANUAL DE AYUDA MODULO TALLAS Y COLORES
MANUAL DE AYUDA MODULO TALLAS Y COLORES Fecha última revisión: Enero 2010 Índice TALLAS Y COLORES... 3 1. Introducción... 3 CONFIGURACIÓN PARÁMETROS TC (Tallas y Colores)... 3 2. Módulos Visibles... 3
Más detallesCrear presentaciones con Impress de OpenOffice
Pintura de Acción. Expresionismo abstracto: Resinas acrílicas y píxeles en la Web 2.0. Aprender y compartir con blogs, podcasts, videos, en la Red como plataforma Crear presentaciones con Impress de OpenOffice
Más detallesPara crear formularios se utiliza la barra de herramientas Formulario, que se activa a través del comando Ver barra de herramientas.
Formularios TEMA: FORMULARIOS. 1. INTRODUCCIÓN. 2. CREACIÓN DE FORMULARIOS. 3. INTRODUCIR DATOS EN UN FORMULARIO. 4. MODIFICAR UN FORMULARIO 5. MANERAS DE GUARDAR UN FORMULARIO. 6. IMPRIMIR FORMULARIOS.
Más detallesLa pestaña Inicio contiene las operaciones más comunes sobre copiar, cortar y pegar, además de las operaciones de Fuente, Párrafo, Estilo y Edición.
Microsoft Word Microsoft Word es actualmente (2009) el procesador de textos líder en el mundo gracias a sus 500 millones de usuarios y sus 25 años de edad. Pero hoy en día, otras soluciones basadas en
Más detallesAgentes con Interfaz Gráfica.
Agentes con Interfaz Gráfica. Hasta este momento los talleres que se habían desarrollado contaban con una interfaz gráfica muy limitada. Pero en la mayoría de los sistemas multiagente debe existir una
Más detallesGUÍA DE TRABAJO N 3 C# Ing. Néstor Raúl Suarez Perpiñan Página 1 de 10. Tema: APLICACIONES WINDOWS FORMS LENGUAJE C#
Página 1 de 10 Tema: APLICACIONES WINDOWS FORMS LENGUAJE C# Objetivo: Conocer y aplicar correctamente las diferentes estructuras de programación que hacen parte del lenguaje de Programación C# en una Aplicación
Más detallesPontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación. IIC1102 Introducción a la Programación
Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación IIC1102 Introducción a la Programación Tutorial eclipse TM Introducción al uso de eclipse TM Contents
Más detallesSAP Business Workflow
SAP Business Workflow Eventos April 10, 2006 Objetivos del Curso Objetivos Son objetivos de este curso Eventos Entender que es un evento y como crear eventos Comprender los distintos tipos de eventos Saber
Más detallesMicrosoft Access proporciona dos métodos para crear una Base de datos.
Operaciones básicas con Base de datos Crear una Base de datos Microsoft Access proporciona dos métodos para crear una Base de datos. Se puede crear una base de datos en blanco y agregarle más tarde las
Más detallesManual de ayuda para crear y gestionar Tareas, como actividad evaluable
Manual de ayuda para crear y gestionar Tareas, como actividad evaluable Contenido TAREAS.... 3 CONFIGURACIÓN.... 3 GESTIÓN Y CALIFICACIÓN DE TAREAS.... 8 TAREAS. Mediante esta herramienta podemos establecer
Más detallesManual de usuario de Windows Live Writer
Manual de usuario de Windows Live Writer Índice 0.- Introducción. 3 1.- Descarga e Instalación. 4 2.- Conexión a un blog. 7 3.- Interfaz de Windows Live Writer. 12 4.- Creación de un Post. 13 5.- Creación
Más detallesSistema de Facturación de Ventas WhitePaper Enero de 2007
Sistema de Facturación de Ventas WhitePaper Enero de 2007 Ronda Guglielmo Marconi, 9 Parque Tecnológico 46980 Paterna Valencia Spain T +34 96 338 99 66 ventas@preference.es Please Recycle PrefSuite Document
Más detallesGESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD
GESTIÓN DOCUMENTAL PARA EL SISTEMA DE CALIDAD Manual de usuario 1 - ÍNDICE 1 - ÍNDICE... 2 2 - INTRODUCCIÓN... 3 3 - SELECCIÓN CARPETA TRABAJO... 4 3.1 CÓMO CAMBIAR DE EMPRESA O DE CARPETA DE TRABAJO?...
Más detallesTEMA 2. CARACTERÍSTICAS DEL LENGUAJE VISUAL BASIC
MINISTERIO DE EDUCACIÓN TEMA 2. CARACTERÍSTICAS DEL LENGUAJE VISUAL BASIC Objetivo específico: Emplea los elementos básicos del lenguaje de programación en el entorno tecnológico PROF. ELIECER ESPINOSA
Más detallesPowerPoint 2010 Manejo de archivos
PowerPoint 2010 Manejo de archivos Contenido CONTENIDO... 1 ABRIR UNA PRESENTACIÓN EXISTENTE... 2 MANEJO DE VARIOS ARCHIVOS ABIERTOS... 5 CREAR UNA NUEVA PRESENTACIÓN... 8 GUARDAR LA PRESENTACIÓN... 9
Más detallesCapítulo 1 Documentos HTML5
Capítulo 1 Documentos HTML5 1.1 Componentes básicos HTML5 provee básicamente tres características: estructura, estilo y funcionalidad. Nunca fue declarado oficialmente pero, incluso cuando algunas APIs
Más detallesMódulo II - PowerPoint
Módulo II - PowerPoint Índice Copiando diapositivas Menú Edición... 2 Copiando diapositivas utilizando la barra de herramientas... 3 Copiando diapositivas utilizando el menú contextual... 3 Copiando diapositivas
Más detallesPowerPoint 2010 Introducción a Microsoft Office PowerPoint 2010
PowerPoint 2010 Introducción a Microsoft Office PowerPoint 2010 Contenido CONTENIDO... 1 DESCRIPCIÓN DE LA VENTANA PRINCIPAL... 2 INTRODUCCIÓN A POWERPOINT WEB APP... 8 1 Descripción de la ventana principal
Más detallesManual Consultas Web - PC Sistel Ver 486R4+ - USUARIO JEFATURA
PCSISTEL Ver 486R4+ Diseñado y Desarrollado por Visual Soft S.A.C. Todos los Derechos reservados. 2006 Este producto y su respectiva documentación así como el nombre PCSISTEL se encuentra debidamente registradas
Más detallesRace Manager by Master Timing Guía del usuario GUIA RACE MANAGER. Eventronic, SL
GUIA RACE MANAGER Eventronic, SL DESCRIPCIÓN DEL PROGRAMA El Race Manager es un programa que se creó para facilitar el trabajo de la dirección de carrera de un evento durante y después de una carrera.
Más detallesMANUAL DE FACTURACIÓN TOUCH SCREEN
MANUAL DE FACTURACIÓN TOUCH SCREEN Tabla de Contenido Contenido Pág. CAPITULO 1... 3 CARACTERÍSTICAS Y BENEFICIOS... 3 CAPITULO 2... 4 ENTRADAS Y SALIDAS DEL MODULO... 4 Visión general... 4 Contenido del
Más detallesENTORNO DE DESARROLLO MICROSOFT.NET 2010
ENTORNO DE DESARROLLO MICROSOFT.NET 2010 UNIDAD 2 Estructura de contenidos: 1. Conociendo ASP 2. Sitio Web y Proyecto Web 3. WebForm 4. Características de los webforms 5. Entorno del.net 6. Controles básicos
Más detallesGuías _SGO. Gestione administradores, usuarios y grupos de su empresa. Sistema de Gestión Online
Guías _SGO Gestione administradores, usuarios y grupos de su empresa Sistema de Gestión Online Índice General 1. Parámetros Generales... 4 1.1 Qué es?... 4 1.2 Consumo por Cuentas... 6 1.3 Días Feriados...
Más detallesManual del Usuario. Sistema de Help Desk
Manual del Usuario Sistema de Help Desk Objetivo del Manual El siguiente manual tiene como objetivo proveer la información necesaria para la correcta utilización del sistema Help Desk. Describe los procedimientos
Más detallesGastos Reales Web Manual de Usuario
Gastos Reales Web Manual de Usuario Unidad Informática Diciembre 2009 1 Índice de contenido 1Invocación al guardar un formulario...3 2Invocación desde una grilla...5 3Ingreso por primera vez...6 4Procesamiento
Más detallesA continuación se describen cuáles son los elementos principales de las tablas, cómo crear una y cómo modificarla.
4. TABLAS A continuación se describen cuáles son los elementos principales de las tablas, cómo crear una y cómo modificarla. 4.1. Principales Elementos Al momento de generar y diseñar una tabla es importante
Más detallesFormularios. Formularios Diapositiva 1
Formularios Crear un formulario utilizando el Asistente para formularios Modificación en vista Diseño Adición de Controles a un Formulario Adición de un Subformulario a un formulario Formularios Diapositiva
Más detallesOperación de Microsoft Excel
Representación gráfica de datos Generalidades Excel puede crear gráficos a partir de datos previamente seleccionados en una hoja de cálculo. El usuario puede incrustar un gráfico en una hoja de cálculo,
Más detallesRoberto Quejido Cañamero
Crear un documento de texto con todas las preguntas y respuestas del tema. Tiene que aparecer en él todos los contenidos del tema. 1. Explica qué son los modos de presentación en Writer, cuáles hay y cómo
Más detallesMÓDULO 2: TRATAMIENTO DE DATOS CON HOJA DE CÁLCULO. Tema 1: Gestión de listas de datos y tablas dinámicas. Leire Aldaz, Begoña Eguía y Leire Urcola
MÓDULO 2: TRATAMIENTO DE DATOS CON HOJA DE CÁLCULO Tema 1: Gestión de listas de datos y tablas dinámicas Leire Aldaz, Begoña Eguía y Leire Urcola Índice del tema - Introducción a las listas de datos -
Más detallesEntidad Formadora: Plan Local De Formación Convocatoria 2010
Entidad Formadora: Enterprise Architect Comenzando Puede iniciar Enterprise Architect desde el ícono que se creó en su escritorio de Windows durante la instalación, o alternativamente: 1. Abrir el menú
Más detallesIntroducción a LinoIt Breve guía sobre algunas de sus funcionalidades destacables.
Breve guía sobre algunas de sus funcionalidades destacables. 24/03/2011 Centro de Servicios de Informática y Redes de Comunicaciones Nodo Cartuja Contenido 1.Introducción... 2 2. Acceso... 2 2.1. Con Registro...
Más detallesMICROSOFT WORD 2007 AVANZADO. Unidad Didáctica Nº 1
MICROSOFT WORD 2007 AVANZADO Unidad Didáctica Nº 1 I Tablas A) Explicación conceptual y de uso de una tabla B) Creación de tablas C) Trabajo con tablas D) Formato de las tablas Ejercicio de Repaso Portal
Más detallesMANUAL DE USUARIO DE LA APLICACIÓN DE ACREDITACION DE ACTIVIDADES DE FORMACION CONTINUADA. Perfil Entidad Proveedora
MANUAL DE USUARIO DE LA APLICACIÓN DE ACREDITACION DE ACTIVIDADES DE FORMACION CONTINUADA Perfil Entidad Proveedora El objetivo del módulo de Gestión de Solicitudes vía Internet es facilitar el trabajo
Más detallesCreación y administración de grupos de dominio
Creación y administración de grupos de dominio Contenido Descripción general 1 a los grupos de Windows 2000 2 Tipos y ámbitos de los grupos 5 Grupos integrados y predefinidos en un dominio 7 Estrategia
Más detallesTareas básicas en OneNote 2010 Corresponde a: Microsoft Office OneNote 2010
areas básicas en OneNote 2010 - OneNote - Office.com http://office.microsoft.com/es-ar/onenote-help/tareas-basicas-en-onenote... 1 de 3 23/04/2012 10:40 p.m. Soporte / OneNote / Ayuda y procedimientos
Más detalles1. La nueva interfaz del programa
1. La nueva interfaz del programa 13 1. La nueva interfaz del programa 1.1 La interfaz del nuevo Flash CS4 Al acceder por primera vez a Adobe Flash CS4 llama la atención la nueva disposición de las paletas,
Más detallesPrograma Maestro. E-Learning Class v 6.0
1 Programa Maestro E-Learning Class v 6.0 1.- Introducción 2 El E-LearningClass V. 6.0 ( Programa Maestro ) es un aplicativo incluido en las netbooks del programa Conectar Igualdad que permite asistir
Más detallesManual de Usuario SIMIN 2.0
Servicio Nacional de Geología y Minería Ministerio de Minería Gobierno de Chile Manual de Usuario SIMIN 2.0 [Sistema de Información Minera en Línea] Administrador delegado de Empresas Mandantes Programa
Más detallesREDES DE ÁREA LOCAL. APLICACIONES Y SERVICIOS EN WINDOWS
REDES DE ÁREA LOCAL. APLICACIONES Y SERVICIOS EN WINDOWS Servicio DNS - 1 - Servicio DNS...- 3 - Definición... - 3 - Instalación... - 5 - Configuración del Servidor DNS...- 10 - - 2 - Servicio DNS Definición
Más detallesProgramación Orientada a Objetos en C#.NET CAPÍTULO 8 E V E N T O S. Ing. Bruno López Takeyas, M.C. http://www.itnuevolaredo.edu.
CAPÍTULO 8 E V E N T O S 2 http://www.itnuevolaredo.edu.mx/takeyas 1 Preguntas detonadoras Quéesunevento? Paraquésirve? Qué temas se deben dominar para implementar aplicaciones con eventos? Qué se requiere
Más detallesAPLICACIONES INFORMÁTICAS de BASE de DATOS
APLICACIONES INFORMÁTICAS de BASE de DATOS AUTOR: Juan Carlos Cambero Palmero EDITA: ACADEMIA BALANUS Reservados todos los derechos. Queda prohibido, sin el permiso del autor o editor, la reproducción
Más detallesUso de Visual C++ Pre-Practica No. 3
Pre-Practica No. 3 Uso de Visual C++ Microsoft Visual C++ 2010 es una versión de Visual Studio específica para el lenguaje de programación C++. Es un entorno de desarrollo muy completo y profesional. Por
Más detallesPara crear una lista como la anterior, primero escribe la información, y después selecciona el texto y aplícale el formato de viñetas.
Módulo 3 Herramientas de Cómputo Listas, tabulaciones, columnas y cuadros de texto Listas En muchas ocasiones es necesario que enumeres diferentes elementos en tus documentos. Word no sólo reconoce números
Más detallesInformes. 3. Elija la opción Nuevo (en la parte superior de la ventana) 4. Elija Autoinformes: en tablas y luego la tabla o consulta que se usará.
Informes Se pueden imprimir fácilmente los registros en una tabla o el resultado de un filtro simplemente usando el botón de Impresora de la barra de herramientas, o la opción Archivo / Imprimir. Sin embargo,
Más detallesSOLUCION PARCIAL TASK SCHEDULER. Task Scheduler
Task Scheduler Se necesita modelar una aplicación que permita definir tareas y ejecutarlas en forma programada. Las tareas pueden ser: La ejecución de programa cualquiera o comando del sistema operativo,
Más detallesDocumento de usuario. Contenido:
Documento de usuario Contenido: 1. Introducción 2. Requerimientos 3. Instalación 4. Ingreso al sistema 5. Pantalla Principal Usuario a. Menú de herramientas b. Herramientas c. Ventanas de Aplicación d.
Más detallesMACROS. Automatizar tareas a través del uso de las macros.
OBJETIVOS MACROS Definiciones Automatizar tareas a través del uso de las macros. Grabar Ejecutar Manipular macros. Tipos de Macros en Excel Introducción Las operaciones tradicionales que se pueden realizar
Más detallesESTÁNDAR DESEMPEÑO BÁSICO Recopila información, la organiza y la procesa de forma adecuada, utilizando herramientas tecnológicas.
ESTÁNDAR DESEMPEÑO BÁSICO Recopila información, la organiza y la procesa de forma adecuada, utilizando herramientas tecnológicas. Sala de sistemas, Video proyector, Guías RECURSOS ACTIVIDADES PEDAGÓGICAS
Más detallesPara ingresar a la aplicación Microsoft Word 97, los pasos que se deben seguir pueden ser los siguientes:
Acceso a la aplicación Descripción del ambiente de trabajo Para ingresar a la aplicación Microsoft Word 97, los pasos que se deben seguir pueden ser los siguientes: A través del botón Inicio: 1. Seleccionar
Más detallesAdaptación al NPGC. Introducción. NPGC.doc. Qué cambios hay en el NPGC? Telf.: 93.410.92.92 Fax.: 93.419.86.49 e-mail:atcliente@websie.
Adaptación al NPGC Introducción Nexus 620, ya recoge el Nuevo Plan General Contable, que entrará en vigor el 1 de Enero de 2008. Este documento mostrará que debemos hacer a partir de esa fecha, según nuestra
Más detallesEl Escritorio. En el escritorio tenemos iconos que permiten abrir el programa correspondiente.
El Escritorio Primera pantalla que nos aparecerá una vez se haya cargado el Sistema Operativo con el cual vamos a trabajar, en nuestro caso será el escritorio de Windows XP. Este escritorio es muy similar
Más detallesSISTEMA DE ATENCIÓN y GESTIÓN MANUAL DEL USUARIO. SAyGeS v2.0
SAyGeS v2.0 1. Usuario 1.1. INGRESO Ingrese usuario y contraseña. Posteriormente hacer click en Conectar. El sistema le mostrará su pantalla principal, compuesta de Cinco pestañas: Alta Ticket Alta Tramite
Más detallesIntroducción a la extensión de scripting en gvsig 2.0
Introducción a la extensión de scripting en gvsig 2.0 2012 gvsig Association Este documento se distribuye con la licencia Creative Commons 1 2 Índice de contenido 1 Introducción... 3 Instalación de la
Más detallesUNIVERSIDAD DE MEDELLÍN NUEVO PORTAL WEB MANUAL DE USUARIO GESTOR DE CONTENIDOS
UNIVERSIDAD DE MEDELLÍN MANUAL DE USUARIO GESTOR DE CONTENIDOS NUEVO PORTAL WEB TABLA DE CONTENIDO Tabla de Contenido 2 Consideraciones Iniciales 3 Ingreso al Sistema 4 Opciones de Gestor de contenidos
Más detallesIntroducción a Visual Studio.Net
Introducción a Visual Studio.Net Visual Studio es un conjunto completo de herramientas de desarrollo para la generación de aplicaciones Web ASP.NET, Servicios Web XML, aplicaciones de escritorio y aplicaciones
Más detallesAGREGAR COMPONENTES ADICIONALES DE WINDOWS
INSTALACIÓN DE IIS EN WINDOWS XP El sistema está desarrollado para ejecutarse bajo la plataforma IIS de Windows XP. Por esta razón, incluimos la instalación de IIS (Servidor de Web) para la correcta ejecución
Más detallesCONCEPTOS BASICOS. Febrero 2003 Página - 1/10
CONCEPTOS BASICOS Febrero 2003 Página - 1/10 EL ESCRITORIO DE WINDOWS Se conoce como escritorio la zona habitual de trabajo con windows, cuando iniciamos windows entramos directamente dentro del escritorio,
Más detallesMICROSOFT EXCEL 2007. Introducción: Qué es y para qué sirve Excel2007? TECNOLOGIA/ INFORMATICA: MS-EXCEL
MICROSOFT EXCEL 2007 Qué es y para qué sirve Excel2007? Excel 2007 es una hoja de cálculo integrada en Microsoft Office. Esto quiere decir que si ya conoces otro programa de Office, como Word, Access,
Más detallesWord. Excel. Publisher. PowerPoint. Access
Fundamentos de Este curso ha sido diseñado para todo aquel que quiere aprender los fundamentos necesarios para crear y modificar presentaciones básicas en. Microsoft es un programa elaborado para diseñar
Más detallesManual de Usuario: Administrar Listas de Distribución
Manual de Usuario: Administrar Listas de Versión 2.0 (Mayo 2013) CONSEJERÍA DE HACIENDA Página 1 de 13 Objetivo: Proporcionar los conocimientos necesarios para la utilización y gestión de una lista de
Más detallesINDICE. 1. Introducción... 4. 2. El panel Entities view... 5. 3. El panel grafico... 6. 4. Barra de botones... 6. 4.1. Botones de Behavior...
MANUAL DE USUARIO INDICE 1. Introducción... 4 2. El panel Entities view... 5 3. El panel grafico... 6 4. Barra de botones... 6 4.1. Botones de Behavior... 7 4.2. Botones de In-agents... 8 4.3. Botones
Más detallesMANAUAL DE MANTENIMIENTO PARA LA PÁGINA WEB DE PROYECTO ADL GESTOR DE CONTENIDOS
MANAUAL DE MANTENIMIENTO PARA LA PÁGINA WEB DE PROYECTO ADL GESTOR DE CONTENIDOS 1/8 GESTOR DE CONTENIDOS Este manual va dirigido a la persona o personas que sean las encargadas de mantener los contenidos
Más detallesMódulo Presupuesto SP 3.0
Módulo Presupuesto SP 3.0 Versión 3.14.001 06/2008 Contenido 1. GESTION DE COMPOSICIONES (desde Datos Básicos)... 3 1.1. Crear composiciones (tarjetas) partiendo de un registro vacío... 3 1.2. Crear composiciones
Más detallesArchivo de correo con Microsoft Outlook contra Exchange Server
Archivo de correo con Microsoft Outlook contra Exchange Server Resumen Con este proceso de archivado, lo que pretendemos es guardar nuestro correo en un archivo de datos, para así poder realizar una copia
Más detallesTEMA 4: EMPEZANDO A NAVEGAR ESCUELA UNIVERSITARIA DE INFORMÁTICA. Raúl Martín Martín
TEMA 4: EMPEZANDO A ESCUELA UNIVERSITARIA DE INFORMÁTICA NAVEGAR Raúl Martín Martín SERVICIOS DE INTERNET SERVICIOS DE INTERNET Las posibilidades que ofrece Internet se denominan servicios. Hoy en día,
Más detallesTEMA 20 EXP. WINDOWS PROC. DE TEXTOS (1ª PARTE)
1. Introducción. TEMA 20 EXP. WINDOWS PROC. DE TEXTOS (1ª PARTE) El Explorador es una herramienta indispensable en un Sistema Operativo ya que con ella se puede organizar y controlar los contenidos (archivos
Más detallesRedes de área local: Aplicaciones y servicios WINDOWS
Redes de área local: Aplicaciones y servicios WINDOWS 4. Servidor DNS 1 Índice Definición de Servidor DNS... 3 Instalación del Servidor DNS... 5 Configuración del Servidor DNS... 8 2 Definición de Servidor
Más detalles