sábado, 29 de noviembre de 2014

Operaciones Aritméticas en Visual Basic

Los operadores aritméticos se utilizan para realizar muchas de las operaciones aritméticas habituales que implican el cálculo de valores numéricos representados por literales, variables, otras expresiones, llamadas a funciones y propiedades, y constantes. También se clasifican como operadores aritméticos los operadores de desplazamiento de bits, que actúan al nivel de bits individuales de los operandos y cambian sus modelos de bits a la izquierda o la derecha. 

Operaciones Aritméticas
       
Puede sumar dos valores en una expresión con el + (Operador, Visual Basic) o restar un valor de otro con el - (Operador, Visual Basic), como se muestra en el siguiente ejemplo.
Dim x As Integer
x = 67 + 34
x = 32 - 12


La negación también utiliza el - (Operador, Visual Basic), pero con un solo operando, como se puede ver en el ejemplo siguiente.
Dim x As Integer = 65
Dim y As Integer
y = -x


La multiplicación y la división utilizan los * (Operador, Visual Basic) y / (Operador, Visual Basic), respectivamente, como se muestra en el ejemplo siguiente.
Dim y As Double
y = 45 * 55.23
y = 32 / 23


La exponenciación utiliza el ^ (Operador, Visual Basic), como se puede ver en el ejemplo siguiente.
Dim z As Double
z = 23 ^ 3
' The preceding statement sets z to 12167 (the cube of 23).


La división de enteros se lleva a cabo con el \ (Operador, Visual Basic). La división de enteros devuelve el cociente, es decir, el número entero que representa el número de veces que puede se puede dividir dividendo entre el divisor sin tener en cuenta el valor del resto. El divisor y el dividendo deben ser tipos enteros (SByte, Byte, Short, UShort, Integer, UInteger, Long y ULong) para este operador. Todos los demás tipos deben convertirse antes a tipos enteros. El ejemplo siguiente ilustra la división de enteros.
Dim k As Integer
k = 23 \ 5
' The preceding statement sets k to 4.


El módulo aritmético se calcula con el Mod (Operador, Visual Basic). Este operador devuelve el resto después de dividir el divisor por el dividendo un número integral de veces. Si tanto el divisor como el dividendo son tipos enteros, el valor devuelto es entero. Si el divisor y el dividendo son tipos de punto flotante, el valor devuelto es una variable de punto flotante. En el siguiente ejemplo se muestra este comportamiento.
Dim x As Integer = 100
Dim y As Integer = 6
Dim z As Integer
z = x Mod y
' The preceding statement sets z to 4.


Dim a As Double = 100.3
Dim b As Double = 4.13
Dim c As Double
c = a Mod b
' The preceding statement sets c to 1.18.


b6ex274z.collapse_all(es-es,VS.120).gifIntento de dividir por cero

La división por cero produce resultados diferentes dependiendo de los tipos de datos que se utilicen. En divisiones de enteros (SByte, Byte, Short, UShort, Integer, UInteger, Long, ULong), .NET Framework inicia una excepción DivideByZeroException. En operaciones de división del tipo de datos Decimal o Single, .NET Framework también produce una excepción DivideByZeroException.
En las divisiones de punto flotante que impliquen el tipo de datos Double, no se produce ninguna excepción y el resultado es el miembro de clase que representa NaN, PositiveInfinity o NegativeInfinity, dependiendo del dividendo. La siguiente tabla resume los diferentes resultados de intentar dividir un valor Double por cero.
Tipo de datos del dividendo Tipo de datos del divisor Valor del dividendo Resultado
Double Double 0 NaN (no es un número definido matemáticamente)
Double Double > 0 PositiveInfinity
Double Double < 0 NegativeInfinity
Cuando se detecta una excepción DivideByZeroException, puede utilizar los miembros de la excepción para controlarla. Por ejemplo, la propiedad Message contiene el texto del mensaje de la excepción. Para obtener más información, vea Instrucción Try...Catch...Finally (Visual Basic).

Programando con Menús

1 - Introducción

Estos objetos que tienen sus propiedades y métodos definidos como cualquier otro objeto, son fundamentales para utilizarlos en tiempo de ejecución, y nos permiten obtener información y realizar tareas específicas y variadas como por ejemplo:
Trabajar con la pantalla (objeto Screen), obtener datos referentes a nuestra aplicación ( objeto App), el objeto Clipboard ( para trabajar con el portapapeles de windows) y algunos otros

2 - El objeto App

El objeto App posee una serie de propiedades para obtener información de nuestra aplicación

Propiedad Path
Esta propiedad nos devuelve una cadena con la ruta donde se encuentra el ejecutable de nuestro programa. Esta propiedad es de suma importancia, ya que nosotros siempre debemos "programar las rutas" de nuestra aplicación de forma relativa, es decir en donde realmente se encuentre nuestra aplicación, ya que el usuario puede instalar nuestro programa en un directorio cualquiera y de este modo si nosotros hemos puesto, por ejemplo de un archivo externo en una ruta absoluta (por ejemplo "c:\Archivos de programa", puede darse el caso de que la aplicación no encuentre dicho archivo ya que se ha instalado en otro directorio, ejecutarse en otra plataforma, etc..
Para resolver estos problemas sobre las referencias a las rutas de archivos, podemos utilizar el objeto App.path, y lo que hace esta propiedad es devolvernos el path de nuestra aplicación.
Ejemplo
ruta = App.Path & "\config.dat"

En el ejemplo anterior, si nuestra aplicación contiene un archivo de configuración del programa, un gráfico o cualquier otro fichero, para poder localizarlo lo hacemos mediante el objeto App.path mas el archivo que deseamos e interponiéndole la barra invertida.
Nota: lo que hay que tener en cuenta para que no se produzca un error en tiempo de ejecución, es que el objeto App.path nos devuelve solo el nombre de directorio de nuestra aplicación pero sin la barra invertida al final, es decir que si deseamos por ejemplo hacer referencia a un archivo de nuestra aplicación para trabajar con él, debemos agregarlo nosotros.
Otro ejemplo podría ser el siguiente, supongamos que tenemos un programa que carga una imagen en un formulario. Si nosotros hacemos una referencia al archivo de imagen mediante una ruta absoluta estaremos cometiendo un error, lo correcto sería

Dim Ruta As String


Ruta = App.Path & "\imagen.gif"

Me.Picture = LoadPicture(Ruta) 


Propiedad PrevInstance del objeto App

Esta propiedad se utiliza para comprobar si nuestro programa ya está cargado en memoria devolviéndonos un valor de tipo boolean, True en caso correcto o False si no está abierto o cargado en memoria.
La propiedad PervInstance es importante ya que un usuario, por error, puede abrir mas de una instancia de la aplicación, algo que no tendría mucho sentido en la mayoría de los casos.
De este modo si se intenta abrir el programa mas de una vez, podemos mostrar un mensaje informativo y descargar la aplicación mediante la sentencia End, o no mostrar nada y terminar la ejecución. Este ejemplo muestra un mensaje cuando se intenta abrir mas de una ves, y luego de aceptar el mensaje se cierra con End

 Private Sub Form_Initialize()

If App.PrevInstance = True Then
    
    
    MsgBox " La aplicación ya se encuentra cargada en memoria", vbInformation

    ' Finaliza el programa
    End

End If

End Sub


Otras propiedades del objeto App

  • ExeName: Con ExeName podemos recuperar el nombre del ejecutable de la aplicación en tiempo de ejecución
  • Hinstance: Esta propiedad nos retorna el handle o manipulador de nuestra aplicación. Mediante esta propiedad y algunas Apis relacionadas con este tema podemos controlar nuestra algunas cosas
  • Taskvisible: es una propiedad de tipo boolean que se utiliza para determinar si nuestra aplicación aparecerá en la lista de tareas. Esta propiedad solo funciona si nuestra aplicación tiene la propiedad visible en false

3 - Objeto Screen

Con el objeto Screen se puede determinar y obtener información sobre las fuentes instaladas en el sistema operativo, la resolución actual de la pantalla, el formulario y/o control que está activo,
Un ejemplo para poder obtener la resolución del monitor:

Dim Ancho As Integer
Dim Alto As Integer


Ancho = (Screen.Width / Screen.TwipsPerPixelX)
Alto = (Screen.Height / Screen.TwipsPerPixelY)



MsgBox "La resolución en Pixeles del monitor es de: " & vbNewLine & _
        "Ancho: " & Ancho & vbNewLine & _
        "Alto: " & Alto, vbInformation 

Para obtener el alto y el ancho en pixeles debemos hacer una simple conversión ya que mediante las propiedades width y height obtenemos el ancho y el alto del monitor pero expresado en twips, para obtener ese valor en pixeles hay que dividirlo por la propiedad TwipsPerPixelX y TwipsPerPixelY, que son propiedades que las podemos acceder desde el objeto Screen

Ejemplo para poder obtener una lista de las fuentes instaladas en el sistema


El objeto screen posee un objeto o colección llamado Fonts que es un vector que contiene las fuentes del sistema y una propiedad llamada FontCount para saber la cantidad de fuentes.
Ejemplo para cargar las fuentes del sistema en un control ListBox

Dim La_Fuente As Integer


    'Recorre las fuentes
    For La_Fuente = 0 To Screen.FontCount - 1
       
        'Añade el nombre de la fuente al control
        List1.AddItem Screen.Fonts(La_Fuente)

    Next La_Fuente 

Mediante 4 líneas de código tenemos un control ListBox que muestra el nombre de todas las fuentes del sistema.

Nota: Para poder obntener las fuentes pero de una impersora, se realiza igual que en el paso anterior , con la diferencia que en ves de usar el Objeto Screen, se usa el Objeto Printer.
Por ejemplo
Colocar un ComboBox en el formulario donde se listarán las impresoras instaladas, y en agregar un Control ListBox donde agregarán las fuentes
vista del formulario con el listque contiene las fuentes y el combo que lista los printer

Código fuente en el formulario
Option Explicit
Private Sub Combo1_Click()
    Ver_fuentes Combo1.ListIndex
End Sub

Private Sub Form_Load()

    Dim ObjPrinter As Printer
    
        ' Recorre la lista de impresoras instaladas _
         en el sistema y agrega el nombre en el combo
    For Each ObjPrinter In Printers
        Combo1.AddItem ObjPrinter.DeviceName
    Next

End Sub

' Enumera las fuentes en el ListBox de la _
  impresora seleccionada en el Combo
Sub Ver_fuentes(Impresora As String)
    
    ' Referencia a la impersora
    Set Printer = Printers(Impresora)
    
    Dim i As Integer
    List1.Clear
    
    ' Lista las fuentes soportadas de la impresora
    For i = 0 To Printer.FontCount - 1
        List1.AddItem Printer.Fonts(i)
    Next
     
End Sub  

4 - El objeto ClipBoard

Con ClipBoard podemos trabajar con el portapapeles de windows, ya sea para establecer o recuperar datos del mismo.
Ejemplo:
Para recuperar el texto guardado en el portapapeles:

Dim cadena As String

cadena = Clipboard.GetText

MsgBox cadena 

Con este otro ejemplo podemos grabar o asignar un texto en el portapapeles

 Clipboard.SetText "cadena de texto a grabar o variable string"
 
Con el método Clear del objeto ClipBoard podemos borrar el contenido del portapapeles (no requiere ningún parámetro)

Clipboard.clear

Con la siguiente línea podemos copiar una imagen del portapapeles a un control picture, si es que la hay, usando el método Getdata del objeto Clipboard

Picture1.Picture = Clipboard.GetData

Lo siguiente copia una imagen cargada en un control de imagen al portapapeles, es decir hacer lo contrario:

Clipboard.SetData Picture1.Picture

5 - Menues en visual basic

Ejemplo para crear menúes y menúes contextuales o también llamados menú PopUp, que son aquellos que se despliegan con el botón derecho del mouse.
Casi todas las aplicaciones por mas pequeñas que sean, poseen un acceso a determinadas o casi todas las opciones de un programa por medio de un menú.
Si bien las opciones las podemos encontrar en la interface misma de la aplicación, ya sea por medio de botones, barras de herramientas etc.., nunca está demás que estén a mano por medio de un menú.
Visual Basic incorpora una herramienta llamada editor de menúes para poder crearlos
Nota: El editor de Manúes se encuentra en el menú herramientas y solo está disponible desde la vista diseño del formulario, es decir que si estás visualizando la ventana de código o un módulo de código deberás cerrarlas y dejar visible el formulario que estés diseñando para que la opción esté habilitada.

6 - Los menues de cabecera y submenues

Los menúes de cabecera son los menúes principales que contienen otros submenues. Por ejemplo en el menú del internet explorer, el menú archivo es el menú de cabecera o de primer nivel, y las opciones internas de este (abrir, guardar, imprimir, cerrar, etc...) son los submenues que están en un nivel por debajo del menú archivo.
Crear un menú
  1. El primer paso es diseñar un buen diagrama que incluya la mayoría de las opciones, para que el usuario las pueda tener a mano también en el menú.
  2. Si observas otras aplicaciones, estas respetan el orden y ubicación de sus menues, es decir que si estás creando un programa que tiene opciones para imprimir una hoja, esta se encontrarán en la sección del menú archivo, si tienes opciones de edición del documento como cortar copiar, pegar , seleccionar todo, etc..., las encontrarás en el menú "edición", si deseas crear un formulario "acerca de..", lo ubicarás en el menú ayuda con el "nombre acerca de...". esta forma de diseño y diagramación es fundamental para que el programa sea estándar y aceptado por todos, por llamarlo de alguna manera, ya que si bien nosotros recordamos el nombre y donde se encuentra ubicada cada opción, un usuario o tercero debe resultarle lo mas sencillo posible el acceso a las opciones del mismo.


7 - Agregar elementos en un menú

El siguiente ejemplo consiste en un formulario que contiene solo un control label que nos mostrará una leyenda con el texto del menú que seleccionamos o presionamos.
El menú estará compuesto por 3 menues de cabecera, el primero llamado "Archivo", el segundo "Edición" y el último "Ayuda". A su vez cada menú tendrá los siguientes submenues:
  1. Archivo : Este menú contendrá los submenues " Abrir ", " Guardar ", " Imprimir " y " Cerrar "
  2. Edición: Contendrá los submenues " Cortar ", " Copiar ", " Pegar ", " Seleccionar todo "
  3. Ayuda : Tendrá los submenues " Ayuda " y " Acerca de.. "

vista previa del editor que utiliza Visual Basic para crear los menues de opción

El cuadro de diálogo del editor de menú de visual basic posee los siguientes campos para rellenar. Algunos son opcionales y otros son obligatorios, como la propiedad Caption y Name:
  • Caption: en este campo debemos colocar la leyenda que mostrará el menú, es decir el texto que mostrará el mismo.
  • Name: en este campo debemos introducir un nombre para cada menú. Este es obligatorio y no puede estar duplicado ya que por medio de este nombre identificaremos al menú en el código.
  • Index: en este campo que es opcional podemos introducir un número para formar vectores de menues o arreglos de menues, en este ejemplo no se usa, por ejemplo para crear menues en forma dinámica en tiempo de ejecución
  • helpcontextid: este campo opcional podemos introducir un n° para el tópico de ayuda, por si el usuario presiona la tecla F1 justo cuando está posicionado en el menú.
  • Shortcut: Podemos ingresar una tecla de acceso rápido al menú para que se despliegue el mismo automáticamente, como por ejemplo Ctrl + a, Ctrl + b, etc...
  • Checked: este campo indica si el menú tendrá un tilde a la izquierda o no. Si está en true lo muestra si está en False no. El campo es de tipo opcional.
  • Enabled : propiedad booleana que determina si el menú está habilitado o no. Esta propiedad es exactamente igual a la propiedad Enabled de cualquier control de visual basic. El campo por defecto, mejor dicho la propiedad está en True
  • Visible : propiedad opcional y de tipo booleana que determina si el menú estará visible o no. Esta propiedad es ideal para crear los menues contextuales o PopUp (mas adelante hay un ejemplo de como crear uno).

Pasos a seguir:
  1. Una vez abierto el editor de menú, hay que ingreasar los elementos que componen el mismo. Para crear el menú "Archivo" que es un menú de cabecera o de nivel superior, debemos ingresar en la propiedad Caption la cadena &Archivo.
    Ahora le asignaremos un nombre en el campo Name.
    G Generalmente se suele utilizar en este campo el mismo nombre del menú pero con el prefijo mnu para luego poder distinguirlo fácilmente en el código. Entonces ingresamos en este campo mnuarchivo
  2. El segundo paso será ingresar los submenues que están por debajo del menu archivo. Para ello presionamos el botón "siguiente" donde ingresaremos el menú "Abrir". como este es un submenú debemos indicarlo con el botón que tiene una flecha hacia la Derecha. Al presionarlo ahora el mismo se marca con una doble comilla (""""), para indicarnos que este menú deriva o está contenido en el menú de cabecera "Archivo". Ahora pasamos a ingresarle el nombre y la leyenda del menú. En la propiedad Caption ingresamos &Abrir y en el campo Name : mnuabrir.
  3. Ahora repetimos los pasos anteriores para ingresar los submenues restantes del menú Archivo.
  4. Si habrás observado los clásicos menues de las aplicaciones, los submenues se agrupan en secciones. Por ejemplo en el menú archivo del internet explorer, el submenú Salir está separado del resto por una línea. para lograr esto se debe crear un submenú como cualquier otro justo arriba del menú que queremos que aparezca la línea divisoria, y en la propiedad caption del mismo le colocamos el caracter menos -
  5. Ahora ingresaremos el código para que muestre la leyenda en el control Label cada vez que presionemos un menú.
  6. Como habrás notado, el menú se va incorporando al formulario en tiempo de diseño como cualquier otro control de visual basic. Para ingresar el código necesario diremos que cada menú responde a un evento llamado click y que se dispara cuando presionamos el menú con el mouse o cuando le damos un enter, para ingresar el código en el menú "Abrir" le damos un click en el mismo menú desde la ventana de diseño. Una vez abierta la ventana de código aparecerá una rutina como la siguiente:

Private Sub mnuabrir_click()

End Sub


Ahora dentro del evento Click del menú colocamos lo siguiente para que la etiqueta muestre la propiedad caption del menu abrir al pulsar sobre el menú

Label1.Caption = mnuarchivo.Caption
 
Nota: cabe aclarar que estas rutinas las podemos invocar o llamar como cualquier otra rutina de código , por ejemplo en el caso anterior, por ejemplo si coloco esto en un botón se llamaría al procedimiento Click del menú y se ejecutaría el código.
Call mnuabrir_click
 
Esto es útil si tenemos una barra de herramientas, ya que no tendremos que escribir código 2 veces, y podemos usar un solo procedimiento haciendo una simple llamada al mismo

8 - Menues contextuales o popup menú

Los menues contextuales, esos que se despliegan cuando presionamos el botón derecho del mouse, son simples menues pero con la diferencia de que los mismos poseen la propiedad Visible en False, y luego se visualizan utilizando el método PopUpMenu
El método PopUpMenu , se encuentra disponible solo para los formularios.
Los parámetros de este método son los siguientes:

Nombreformulario.PopUpMenu "Elmenu", "flags", x , y, opcion

  • Menu: este es el menú popup que debe estar en el formulario, es decir el nombre
  • Flags: este parámetro indica la apariencia del menú en el formulario. Acá podemos utilizar las siguientes constantes para ubicar el menú:
    vbpopupmenuleftalign ubica el menú en el lado izquierdo con respecto a x.
    vbpopupmenucentertalign alinea en el centro de la coordenada x. vbpopupmenurightalign lo alinea en el lado izquierdo. En la mayoría de los casos este parámetro no se utiliza.
  • X e Y: podemos indicar, aunque no se suele utilizar, las posiciones x e y donde debe desplegarce el menú.
  • opcion: en este parámetro opcional , podemos indicar el nombre de un submenú para que aparezca resaltado en negrita.

Si bien el menú PopUp lo podemos llamar en cualquier momento, lo mas común es utilizarlo y desplegarlo cuando el usuario presiona el botón derecho sobre un control, formulario etc...
Sabiendo esto , para desplegarlo por ejemplo cuando el usuario presiona el botón sobre un área del formulario, podemos utilizar el evento MouseUp o MouseDown del mismo y consultar la variable Button del procedimiento y mediante una estructura IF - Then comprobar si el botón que presionamos es el derecho , utilizando las constantes VbRightButton, vbLeftButton

9 - Ejemplo para crear un menú PopUp

Crear un menú llamado mnuContextual con la propiedad visible en False y pegar esta rutina en el formulario:

Private Sub form_mouseup(button As Integer, shift As Integer, x As Single, y As Single)


' Consultamos si el botón presionado es el derecho
If button = vbRightButton Then
    
    ' Depliega el menú PopUP
    Me.PopupMenu mnucontextual
End If

End Sub 

En el siguiente enlace hay 3 ejemplos con su código fuente que muestra como crear 2 menú y uno de estilo PopUp

Introducción a Visual Studio

Puede utilizar Visual Studio para crear muchos tipos distintos de aplicaciones: aplicaciones de la Tienda Windows, aplicaciones de Windows Phone (y aplicaciones universales, destinadas al teléfono y a la Tienda Windows), aplicaciones de escritorio, aplicaciones web y servicios web. Puede escribir código en Visual Basic, Visual C#, Visual C++, Visual F# y JavaScript, y aplicaciones que pueden utilizar código en distintos lenguajes.

Depurar e Iniciar una aplicación en Visual Studio

A continuación, depurará la aplicación para buscar errores y probar que los dos cuadros de mensaje aparecen correctamente. Para obtener más información, vea Compilar una aplicación de WPF (WPF) y Depurar WPF. 

JJ153219.collapse_all(es-es,VS.120).gifBuscar y corregir errores

En este paso, buscará el error que se produjo anteriormente al cambiar el nombre del archivo XAML de la ventana principal.

Para iniciar la depuración y buscar el error

  1. Inicie el depurador seleccionando Depurar y después Iniciar depuración.
    Comando Iniciar depuración del menú Depurar Aparece un cuadro de diálogo que indica que se ha producido una excepción IOException: No se encuentra el recurso ‘mainwindow.xaml’.
  2. Elija el botón Aceptar y después detenga el depurador.
    Comando Detener depuración del menú Depurar
Hemos cambiado el nombre Mainwindow.xaml a Greetings.xaml al comienzo de este tutorial, pero la solución todavía apunta a Mainwindow.xaml como el URI de inicio de la aplicación, por lo que el proyecto no puede iniciarse.

Agregando Controles en Visual Studio

Para agregar botones de radio

  1. En el Cuadro de herramientas, busque el control RadioButton.
    Ventana Cuadro de herramientas con el control RadioButton seleccionado
  2. Agregue dos controles RadioButton a la superficie de diseño y muévalos de modo que aparezcan en paralelo bajo el control TextBlock.
    La ventana debe ser similar a la que se muestra a continuación:
    Figura 8: RadioButtons en la ventana Greetings.
    Formulario Greetings con bloque de texto y dos botones de opción
  3. En la ventana Propiedades del control RadioButton izquierdo, cambie la propiedad Name (la propiedad situada en la parte superior de la ventana Propiedades) a RadioButton1.
  4. En la ventana Propiedades del control RadioButton derecho, cambie la propiedad Name a RadioButton2 y después guarde los cambios.
Ahora puede agregar el texto para mostrar de cada control RadioButton. El procedimiento siguiente actualiza la propiedad Content de un control RadioButton.

Para agregar el texto para mostrar de cada botón de radio

  1. En la superficie de diseño, abra el menú contextual de RadioButton1, elija Editar texto y, a continuación, escriba Hello.
  2. Abra el menú contextual de RadioButton2, elija Editar texto y, a continuación, escriba Goodbye.
El último elemento de la interfaz de usuario que agregará es un control Button.

Para agregar el control Button

  1. En el Cuadro de herramientas busque el control Button y después agréguelo a la superficie de diseño, bajo los controles RadioButton.
  2. En la vista XAML, cambie el valor de Content del control Button de Content=”Button” a Content=”Display” y después guarde los cambios.
    El marcado debería ser similar al del ejemplo siguiente: <Button Content="Display" HorizontalAlignment="Left" VerticalAlignment="Top" Width="75" Margin="215,204,0,0"/>
La ventana debería parecerse a la de la siguiente ilustración.
Figura 9: Interfaz de usuario final de Greetings
Formulario Greetings con etiquetas de control

JJ153219.collapse_all(es-es,VS.120).gifAgregar código al botón Mostrar

Cuando se ejecuta esta aplicación, aparece un cuadro de mensaje después de que un usuario elija un botón de radio y, a continuación, el botón Mostrar. Aparecerá un cuadro de mensaje para Hello y otro para Goodbye. Para crear este comportamiento, debe agregar código al evento Button_Click en Greetings.xaml.vb o Greetings.xaml.cs.

Agregar código para mostrar cuadros de mensaje

  1. En la superficie de diseño, haga doble clic en el botón Mostrar.
    Se abre Greetings.xaml.vb o Greetings.xaml.cs con el cursor en el evento Button_Click. También puede agregar un controlador de eventos clic del modo siguiente:
    Para Visual Basic, el controlador de eventos debe ser similar a:
    Private Sub Button_Click_1(sender As Object, e As RoutedEventArgs)
    
    End Sub
    

Aplicacion sencilla en visual studio

 Crear el proyecto

Cuando cree una aplicación en Visual Studio, primero creará un proyecto y una solución. Para este ejemplo, creará una solución de Windows Presentation Foundation. 

Para crear el proyecto de WPF

  1. Cree un nuevo proyecto. En la barra de menús, elija Archivo, Nuevo, Proyecto.
    En la barra de menús, elija Archivo, Nuevo, Proyecto También puede escribir Nuevo proyecto en el cuadro Inicio rápido.
    En el cuadro de inicio rápido, especifique un proyecto nuevo
  2. Elija la plantilla de la aplicación WPF de Visual C# o Visual Basic y después asigne el nombre HelloWPFApp al proyecto.
    Crear un proyecto de WPF de Visual Basic, HelloWPFApp OR
    Crear un proyecto de WPF de Visual C#, HelloWPFApp
Se crea el proyecto y la solución HelloWPFApp y los distintos archivos aparecen en el Explorador de soluciones. WPF Designer muestra una vista de diseño y una vista XAML de MainWindow.xaml en una vista en dos paneles. (Para obtener más información, vea WPF Designer para desarrolladores de Windows Forms). Los elementos siguientes aparecen en el Explorador de soluciones:
Figura 5: Elementos del proyecto
Explorador de soluciones con los archivos HelloWPFApp cargados Después de crear el proyecto, puede personalizarlo. Mediante la ventana Propiedades, puede mostrar y cambiar las opciones de los elementos de proyecto, controles y otros elementos de una aplicación. Mediante las propiedades del proyecto y las páginas de propiedades, puede mostrar y cambiar las opciones de proyectos y soluciones.

Configurar IDE en Visual Studio

        Cuando inicie Visual Studio por primera vez, deberá elegir una combinación de opciones que aplica un conjunto de personalizaciones predefinidas al IDE. Cada combinación de valores se ha diseñado para que sea más sencillo desarrollar aplicaciones.
Figura 1: Cuadro de diálogo Configuración del entorno predeterminada
Cuadro de diálogo Elegir configuración de entorno predeterminada Este tutorial se ha creado con la Configuración general de desarrollo aplicada, lo que implica la menor cantidad de personalización del IDE. Puede cambiar la combinación de opciones mediante el Asistente para importar y exportar configuraciones. Vea Personalizar la configuración de desarrollo en Visual Studio.
Después de abrir Visual Studio, puede identificar las ventanas de herramientas, los menús y barras de herramientas y el espacio de la ventana principal. Las ventanas de herramientas se acoplan a los lados izquierdo y derecho de la ventana de la aplicación, con Inicio rápido, la barra de menús y la barra de herramientas estándar en la parte superior. En el centro de la ventana de la aplicación está la Página principal. Cuando se carga una solución o un proyecto, los editores y diseñadores aparecen en este espacio. Cuando desarrolle una aplicación, pasará la mayor parte del tiempo en esta área central.
Figura 2: IDE de Visual Studio
IDE con configuración general aplicada. Puede crear personalizaciones adicionales en Visual Studio, como cambiar el tipo de fuente y el tamaño del texto en el editor o el tema de color del IDE, mediante el cuadro de diálogo Opciones. Dependiendo de la combinación de opciones que haya aplicado, puede que algunos elementos de este cuadro de diálogo no aparezcan automáticamente. Puede asegurarse de que aparezcan todas las opciones posibles activando la casilla Mostrar todas las configuraciones.
Figura 3: Cuadro de diálogo Opciones
Cuadro de diálogo Opciones con la opción Mostrar todas las configuraciones En este ejemplo, cambiará el tema de color del IDE de claro a oscuro.

Para cambiar el tema de color del IDE

  1. Abra el cuadro de diálogo Opciones.
    Comando Opciones del menú Herramientas
  2. Cambie el tema de color a Oscuro y, a continuación, haga clic en Aceptar.
    Tema de color oscuro seleccionado
Los colores de Visual Studio deben coincidir con la imagen siguiente:
IDE con tema oscuro aplicado El tema de color usado en el resto de este tutorial es el tema de color claro. Para obtener más información acerca de cómo personalizar el IDE, vea Personalizar la configuración de desarrollo en Visual Studio.