[Materiales] Charla “Windows 10 IoT Core y Raspberry Pi”

Aquí dejo los materiales que use en la charla de “Windows 10 IoT y Raspberry Pi” en el Club .NET de Albacete (presentación, ejemplos utilizados en la charla y algunos enlaces de interés).

Continuar leyendo “[Materiales] Charla “Windows 10 IoT Core y Raspberry Pi””

[WP7] Añadir acceso directo a “Calificar y Opinar” desde la aplicación

Si quieres anunciar al usuario mediante algun cuadro de diálogo u algún botón que califique y opine tu aplicación en el MarketPlace de Windows Phone 7, sólo tienes que introducir el siguiente fragmento de código en el evento correspondiente.

 

MarketplaceReviewTask marketplaceReviewTask = new MarketplaceReviewTask();
marketplaceReviewTask.Show();

 

[WP7] Cajas de diálogo

Mostrar cajas de diálogo es muy similar a como se hace en Windows Forms. Vamos a distinguir entre dos tipos:

  • Cajas de dialogo de 1 opción

La utilizaremos para mostrar un simple diálogo

private void bt1_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show("Caja de diálogo simple");
}

image

  • Cajas de diálogo de 2 opciones

Las utilizaremos para que el usuario elija entre “Aceptar” y “Cancelar” (“OK” y “Cancel”)

private void bt2_Click(object sender, RoutedEventArgs e)
        {
            MessageBoxResult respuesta;
            respuesta = MessageBox.Show("Selecciona una opción", "Mensaje", MessageBoxButton.OKCancel);
            if (respuesta == MessageBoxResult.OK)
            {
                tb.Text = "Se ha seleccionado ACEPTAR";
            }
            else
            {
                tb.Text = "Se ha seleccionado CANCELAR";
            }
        }

image

Más abajo os dejo un proyecto con los ejemplos hechos.

 

Si queréis crear cajas de diálogo personalizadas con otras opciones y algún checkbox para recordar alguna opción, os recomiendo visitar esta web: http://blogs.microsoft.co.il/blogs/tomershamam/archive/2010/10/19/windows-phone-7-custom-message-box.aspx

 

______________________________________

Descargar proyecto de ejemplo

[WP7] Obtener el color de énfasis del terminal

En muchas aplicaciones puede resultar interesante obtener el color que tenemos seleccionado para las baldosas, títulos, etc … en Windows Phone 7

Para obtener este color (Color de énfasis / Phone accent color) es muy sencillo.

En el siguiente ejemplo, yo establezco el color de énfasis al titulo de la aplicación :

PageTitle.Foreground = new SolidColorBrush((Color)Resources["PhoneAccentColor"]);

 

Espero que os resulte útil a los que estáis empezando con Windows Phone 7 Guiño

[WPF] Layout (2ª Parte)

Continuando con el anterior artículo, en éste último vamos a ver los paneles “Grid” , “WrapPanel” y “Canvas”

  • Grid

Éste panel permite situar los controles en una tabla de filas y columnas. En cada casilla, podemos colocar más de un control.

Grid

<Grid>

        <!--Definimos las columnas que vamos a usar-->

        <Grid.ColumnDefinitions>

            <ColumnDefinition Width="Auto"/>

            <ColumnDefinition Width="Auto"/>

            <ColumnDefinition Width="Auto"/>

        </Grid.ColumnDefinitions>

        

        <!--Definimos las filas que vamos a usar-->

        <Grid.RowDefinitions>

            <RowDefinition Height="Auto"/>

            <RowDefinition Height="Auto"/>

        </Grid.RowDefinitions>

        

        <Image Grid.Column="0" Grid.Row="0"

               Source="/WpfApplication1;component/Images/1.png"/>

        <Image Grid.Column="1" Grid.Row="0"

               Source="/WpfApplication1;component/Images/2.png"/>

        <Image Grid.Column="2" Grid.Row="0"

               Source="/WpfApplication1;component/Images/3.png"/>

    <Image Grid.Column="0" Grid.Row="1"

           Source="/WpfApplication1;component/Images/4.png"/>

    <Image Grid.Column="1" Grid.Row="1"

           Source="/WpfApplication1;component/Images/5.png"/>

    <Image Grid.Column="2" Grid.Row="1"

           Source="/WpfApplication1;component/Images/6.png"/>

</Grid>

  • WrapPanel

Agrupa los elementos de izquierda a derecha o de arriba abajo, pero a diferencia del StackPanel, al llegar al final cambia de fila.

WrapPanel

<WrapPanel Orientation="Horizontal">

    <Image Width="75" Source="/WpfApplication1;component/Images/1.png"/>

    <Image Width="75" Source="/WpfApplication1;component/Images/2.png"/>

    <Image Width="75" Source="/WpfApplication1;component/Images/3.png"/>

    <Image Width="75" Source="/WpfApplication1;component/Images/4.png"/>

    <Image Width="75" Source="/WpfApplication1;component/Images/5.png"/>

    <Image Width="75" Source="/WpfApplication1;component/Images/6.png"/>

</WrapPanel>

  • Canvas

En el panel Canvas, los elementos se sitúan según las coordenadas que se le indiquen

Canvas

<Canvas>

     <Image Source="/WpfApplication1;component/Images/1.png"

           Canvas.Top="0" Canvas.Left="0"/>

     <Image Source="/WpfApplication1;component/Images/2.png"

           Canvas.Top="100" Canvas.Left="100"/>

     <Image Source="/WpfApplication1;component/Images/3.png"

           Canvas.Top="0" Canvas.Left="200"/>

</Canvas>

 

Si queréis obtener más información sobre los distintos paneles de WPF os recomiendo que visitéis la web de tutoriales de Christian Mosers :

WPFTutorial.net –> Layout

 

<— [WPF] Layout (1ª Parte)

[WPF] Layout (1ª Parte)

Para muchos de los que estamos empezando con WPF, es interesante conocer los distintos tipos de paneles de diseño que existen para insertar elementos en dichos paneles.

  • StackPanel

El StackPanel es un panel de diseño simple y útil. Apila sus elementos de arriba a abajo / izquierda a derecha, según su orientación (horizontal y vertical). Si no se indica nada, la alineación por defecto será vertical.

StackPanelVertical

<StackPanel>

    <TextBlock FontSize="26" HorizontalAlignment="Center">

        1

    </TextBlock>

    <TextBlock FontSize="26" HorizontalAlignment="Center">

        2

    </TextBlock>

    <TextBlock FontSize="26" HorizontalAlignment="Center">

        3

    </TextBlock>

    <TextBlock FontSize="26" HorizontalAlignment="Center">

        4

    </TextBlock>

</StackPanel>

StackPanelHorizontal

<StackPanel Orientation="Horizontal">

    <TextBlock FontSize="26" HorizontalAlignment="Center">

        1

    </TextBlock>

    ...

</StackPanel>

  • DockPanel

El DockPanel proporciona que un elemento se acople a la izquierda, a la derecha, al centro, arriba o abajo.

DockPanel

<DockPanel>

    <Button Content="Arriba" DockPanel.Dock="Top"/>

    <Button Content="Abajo" DockPanel.Dock="Bottom"/>

    <Button Content="Izquierda" DockPanel.Dock="Left"/>

    <Button Content="Derecha" DockPanel.Dock="Right"/>

    <Button Content="Botón"/>

</DockPanel>
[WPF] Layout (2ª Parte) -->

Realizando algunas tareas básicas de WP7 desde nuestra APP

En algunos programas, siempre surge la necesidad de que al pulsar un botón se realice una llamada de teléfono, se envíe un email a una dirección predeterminada o a elegir por nosotros, se realice una búsqueda…

Con Windows Phone 7 esto es muy sencillo. Algunas de las tareas que podemos realizar son:

  • Camera Capture Task
  • Email Address Chooser Task
  • Compose an email Task
  • MarketPlace Search Task
  • MarketPlace Hub Task
  • MediaPlayer Launcher
  • Phone Call Task
  • Phone Number Chooser Task
  • Photo Chooser Task
  • Search Task
  • SMS Compose Task
  • WebBrowser Task

Todas ellas pertenecientes al namespace: Microsoft.Phone.Tasks

Yo para este ejemplo voy a usar PhoneCallTask, EmailComposeTask, SmsComposeTask, SearchTask y MarketplaceSearchTask. Para ello, he creado un proyecto de Windows Phone 7 con 5 botones y a cada uno le he asignado su correspondiente evento:

private void btLlamada_Click(object sender, RoutedEventArgs e)

{

    PhoneCallTask task = new PhoneCallTask();

    task.PhoneNumber = "123456789";

    task.DisplayName = "Ejemplo";

    task.Show();

}

private void btEmail_Click(object sender, RoutedEventArgs e)

{

    EmailComposeTask task = new EmailComposeTask();

    task.To = "ejemplo@miguelangelcv.es";

    task.Subject = "Esto es un ejemplo";

    task.Body = "Cuerpo del mensaje ... ";

    task.Show();

}

private void btSMS_Click(object sender, RoutedEventArgs e)

{

    SmsComposeTask task = new SmsComposeTask();

    task.To = "123456789";

    task.Body = "Hola! :)";

    task.Show();

}

private void btBuscar_Click(object sender, RoutedEventArgs e)

{

    SearchTask task = new SearchTask();

    task.SearchQuery = "Albacete";

    task.Show();

}

private void btMarketPlace_Click(object sender, RoutedEventArgs e)

{

    MarketplaceSearchTask task = new MarketplaceSearchTask();

    task.ContentType = MarketplaceContentType.Applications;

    task.SearchTerms = "Bye Bye Brain";

    task.Show();

}

Si queréis ver como utilizar otras “task”, aquí os dejo el enlace a un post en el que utilizan muchas de ellas:

Task System in Windows Phone 7

Windows Forms: Creando nuestra primera aplicación

Para empezar a trabajar, necesitamos tener instalado Visual C# Express 2010. Esta versión es totalmente gratuita y podéis encontrarla aquí. La instalación es muy sencilla pero una vez que se ha instalado debemos registrarlo, ya que si no lo hacemos, a los 30 días dejará de funcionar.

Para registrarlo es muy sencillo, abrimos Visual C# Express y hacemos clic en el menú “Help” y después a “Register Product”. A continuación nos saldra una ventana como la siguiente



Aquí debemos hacer clic en “Obtain a registration key online” y rellenar un formulario. Una vez rellenado dicho formulario, recibiremos en nuestro correo electrónico la clave de registro que hay que introducir en esta ventana.

Una vez hecho todo esto, ya tendremos Visual C# Express 2010 listo para trabajar.

Ahora que está todo listo, vamos a crear el proyecto en el que desarrollaremos nuestra primera aplicación. Para ello, hacemos clic en el menú “File” y en “New Proyect”.  En la ventana que nos aparecerá a continuación, debemos elegir “Windows Forms Application” e introducir el nombre de dicho proyecto en la parte inferior (yo lo llamaré “HolaMundo”).

Ya con el proyecto creado nos encontraremos con una nueva pantalla en la que distinguimos tres zonas. En la zona central, nos aparecerá una ventana donde agregaremos los componentes y escribiremos el código de nuestra aplicación. En la parte izquierda nos encontraremos con la caja de herramientas que contiene todos los controles que podemos usar. Y por último, en la parte derecha nos encontraremos con el explorador de archivos en la parte superior y la ventana de propiedades en la parte inferior. Si alguno de estas cajas no os aparece, debéis ir al menú “View” -> “Other Windows” y comprobar que tenéis seleccionadas “Properties Window”, “Solution Explorer” y “Toolbox”

Una vez terminado la pequeña introducción a Visual C# Express 2010, vamos a crear nuestra primera aplicación. Va a ser algo sencillo: Un botón que muestre una nueva ventana con un mensaje. Para ello en caja de herramientas buscamos el control “Button” (Botón) al formulario que tenemos en la parte central y una vez situado, le hacemos doble clic. Ahora nos llevara al editor en el cual nos habrá aparecido un nuevo método llamado “button1_Click”, que sera llamado cuando hagamos clic en el boton. Por último añadimos:

MessageBox.Show(“Hola Mundo!”);

Con esto lo que hacemos es que cada vez que hagamos clic sobre el botón, nos saldrá una nueva ventana con el texto “Hola Mundo!”

Así es como os debe quedar el código:


También podéis cambiar el texto del botón haciendo clic sobre el botón y buscando la propiedad “Text” en la ventana de propiedades que esta situada abajo a la izquierda. Lo mismo si queréis cambiar el nombre a la ventana, seleccionáis la ventana en el editor y buscáis la propiedad “Text”. Ahí podéis poner “Mi primera aplicación” en vez de “Form1″

Espero que para los que estáis empezando os sirva de ayuda 🙂

Código fuente

Curso gratuito de C# en PDF

Aquí os traigo el enlace a un curso de C# que ha hecho Rob Miles, un profesor del  Departamento de Informática de la csharpdevelopmentUniversidad de Hull (Reino Unido).

Esta hecho para aquella gente que quiere empezar a estudiar el lenguaje C# desde 0. Lo he ojeado por encima y tiene muy buena pinta, está actualizado a este año según su página web. Ya me contareis vosotros que os ha parecido.

Haced clic sobre el libro para descargarlo, ocupa 1.4MB y está en formato PDF.