Agreagar una “Application Bar” a una pagina en Windows Phone 7

by MdzNet 3. June 2010 13:03

3 Aqui estoy nuevamente con OTRO post sobre WP7. Lo siento, pero creo que va a ser un gran boom y mejor estar preparados.

 

Para este tutorial, voy a mostrarles como agregar una barra de menu en la parte inferior de la página. Si bien parece una tarea mas que trivial, no lo es. No existe un control “Application Bar” en el tool box de VS2010 y ADEMAS hay que agregar una referencia al proyecto.

 

 

 

 

Empecemos con el tema de la referencia: Tiene que agregar la siguente: “Microsoft.Phone.Shell”.

1

Una vez que agregaron una pagina nueva al proyecto, solamente agreguen la referencia en la clase:

using Microsoft.Phone.Shell;

 

 

 

Con eso van a poder acceder a las propiedades de la barra en la clase actual. Es importante que sepan que el ejemplo que voy a dar es simple, pero muy extensible (sepan disculpar que programe en ingles, pero como trabajo para una empresa norteamericana me ha quedado la costumbre).

 

ApplicationBar = new ApplicationBar();
ApplicationBar.IsVisible = true;
ApplicationBar.IsMenuEnabled = true;

ApplicationBarIconButton SaveNoteButton = new ApplicationBarIconButton(new Uri
("/Images/appbar.save.rest.png",UriKind.Relative)); SaveNoteButton.Click += new EventHandler(SaveNoteClick); ApplicationBar.Buttons.Add(SaveNoteButton);

 

El codigo es bastante simple: es importante noar que ApplicationBar es una property de clase ! No hace falta instanciar una nueva. Lo que si es necesario, es crear cada boton.

Imagenes como recursos

Tienen que tener en cuenta, que las imagenes que usen para estos botones tienen que estar marcadas de cierta forma en las propiedades:

2

Para la imagen appbar.delete.res.png cambie la build action a “Content” y en Copy to Output canbie el defecto a Copy Always.

Con eso ya deberian poder crear sus propios botones.

Tags: , , ,

howto | Windows Phone 7

Windows Phone 7 – hacer web requests de forma simple

by MdzNet 28. May 2010 10:31

La célula de Mendoza esta intento buscar gente para hacer desarrollos en Windows Phone 7 y por mi cuenta (Angel) he estado haciendo algunas investigaciones.

Por naturaleza de aplicación para celular, lo mas conveniente es hacer aplicaciones que consuman datos de algún web service. A veces es difícil encontrar como hacer esto, mas cuando la plataforma es tan nueva. Acá les voy a pasar un ejemplo de como hacerlo correctamente y de forma fácil:

        public void GetXML(string url)
        {
            HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(new Uri(url));
            request.Headers["user-agent"] = "MSIE 7.0";
            request.BeginGetResponse(new AsyncCallback(ReadCallback), request);
        }

        private void ReadCallback(IAsyncResult asynchronousResult)
        {
            HttpWebRequest request = (HttpWebRequest)asynchronousResult.AsyncState;
            HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asynchronousResult);

            using (StreamReader streamReader = new StreamReader(response.GetResponseStream()))
            {
                XDocument xmlDocument = XDocument.Load(streamReader);                
            }        
}
 

El código hace un pedido a una url especificada y cuando obtiene la respuesta va al metodo ReadCallback (si van a actualizar algún control tengan en cuenta que están trabajando en hilos diferentes). Yo en el ejemplo cree un XDocument (es la version de XmlDocument en WP7), pero pueden usar un string o lo que deseen.

Como les decia, si van a actualizar un metodo, lo mejor es usar un delegado y un evento (estos son ejemplos, no le presten atencion a los metodos y argumentos)

1) Declaramos en nuestra clase ambos:

public delegate void CharacterReceivedHandler(object sender, CharacterReceivedEventArgs e);
public event CharacterReceivedHandler CharacterReceived;

2) Disparamos el evento cuando armamos el XDocument ( o lo que recibamos):

 
if(CharacterReceived != null)
      CharacterReceived(this, new CharacterReceivedEventArgs() { Character = currentCharacter });
 
3)En la clase que enganchamos el metodo hacemos lo siguiente:
 
connector.CharacterReceived += new ArmoryConnector.CharacterReceivedHandler(connector_CharacterReceived);

void connector_CharacterReceived(object sender, CharacterReceivedEventArgs e)
{
    this.Dispatcher.BeginInvoke(delegate()
    {
        // Update controls here 
    });
}

Ojala les sirve :)

Tags: , , , ,

Windows Phone 7


Concurso CodeCamp

Conocé mas acerca del mayor evento de la
Comunidad Microsoft en Argentina.

WWW.CODECAMP.COM.AR

------------------------------------------------

Para los que están Participando:

-Que es una célula?

-Como puedo promocionar mi proyecto?

-Dreamspark

Administradores:

Armando Meabe.
Guillermo Bellmann.
Miguel Saez.
Nicolás Vilela.
Ivana Tilca.

Esperamos que disfrutes de este sitio, lo hicimos dando nuestro mayor esfuerzo.

Nunca te olvides:
El límite es tu imaginación.

Especialistas Microsoft

Daniel Levi (IT Pro´s)

Daniel Priego (Expression Studio)

Debora Di Piano (Team Fundation Server)

 


Channel 9 - Visual Studio 2010 and .NET Framework 4 Training Course

Includes videos and hands-on-labs designed to help you learn how to utilize the Visual Studio 2010 features and a variety of framework technologies including: C# 4.0, Visual Basic 10, F#, Parallel Computing Platform, WCF, WF, WPF, ASP.NET AJAX 4.0, ASP.NET MVC Dynamic Data
Watch it online now ›

The Code Project – Tech Summit

Join us at The Code Project Tech Summit to experience the Microsoft Visual Studio 2010 launch alongside the Visual Studio team. At this virtual event you can explore, network, and learn from the experts on the latest and greatest version of Microsoft Visual Studio.
Watch it online now ›