domingo, 9 de noviembre de 2014

GUARDAR UIELEMENT COMO IMAGEN EN WINDOWS PHONE


Hay ocasiones donde es necesario guardar un  uielement como imagen. A un uielement  me refiero a un stackpanel, grid , button , textbox o cualquier otro control en una aplicación de windows phone. Para realizar dicha tarea debemos hacer uso de la clase  WriteableBitmap que forma parte del namespace " System.Windows.Media.Imaging".

Ahora empezaremos creando una pequeña aplicación  y en nuestra MainPage.xaml encontraremos el grid que tiene el nombre de  "ContentPanel" y lo modificaremos agregando lo siguiente:
        

            
                
                
            
            
            
        

y nuestra UI se verá así:

Ahora controlaremos el evento click de nuestro boton para proceder a guardar el grid como imagen

   
Dentro de nuestro código behind crearemos un pequeño método



viernes, 7 de noviembre de 2014

WINDOWS PHONE 8 GUARDAR CONFIGURACIÓN DEL USUARIO

Una de las opciones indespensables que debe de contar toda aplicación es la ser capaz de guardar la configuración del usuario por ejemplo en mi app memegenerator tengo la siguiente pantalla:
pero ¿Cómo guardo la configuración de el usuario en windows phone 8? La respuesta es sencilla tenemos que usar el almacenamiento aislado. Existen dos tipos de almacenamiento aislados.
El primero y el más simple es donde guardamos y recuperamos datos mediante una clave y valor (key and value) haciendo uso del la clase IsolatedStorageSettings  que forma parte del namespace "System.IO.IsolatedStorage".

La segunda forma básicamente trata de guardar archivos haciendo uso de la clase IsolatedStorageFile  que al igual forma parte del namespace "System.IO.IsolatedStorage".


Trabajando con el almacenamiento tipo clave valor

 Yo he creado una clase que facilita la tarea de guardar la configuración de los usuarios y en está ocasión me gustaría compartirla.
Aquí les dejo la clase :)
 public class SettingsHelper
    {

        /// 
        /// Método para agregar una nueva key
        /// 
        /// Nombre único
        /// Valor de la key
        public static void addValue(string key, object value)
        {
            if (!IsolatedStorageSettings.ApplicationSettings.Contains(key))
            {
                IsolatedStorageSettings.ApplicationSettings.Add(key, value);
            }
            else
            {
                IsolatedStorageSettings.ApplicationSettings[key] = value;
            }


        }
        /// 
        /// Obtiene el valor que se estableció a la key
        /// 
        /// El nombré único
        /// 
        public static object getValue(string key)
        {
            object item = null;
            if (IsolatedStorageSettings.ApplicationSettings.Contains(key))
            {
                item = IsolatedStorageSettings.ApplicationSettings[key];
            }
            return item;
        }

        /// 
        /// Verifica si  existe una key 
        /// 
        /// El nombre único
        /// 
        public static bool existKey(string key)
        {
            if (IsolatedStorageSettings.ApplicationSettings.Contains(key))
            {
                return true;
            }
            return false;
        }

        /// 
        /// Elimina una key
        /// 
        /// Nombre único
        public static void removeKey(string key)
        {
            if (IsolatedStorageSettings.ApplicationSettings.Contains(key))
            {
                IsolatedStorageSettings.ApplicationSettings.Remove(key);
            }
        }
    }

¿Cómo usar la clase?
vamos hacer algo sencillo y le enseñaré como ustedes pueden usar está clase.
Primero crearemos una nueva página y editaremos nuestro código xaml
  
            
                
                
                
                
                
  

En nuestro código behind agregaremos el siguiente código
 //key 
        private String key = "nombre";
        private void btnGuardar_Click(object sender, RoutedEventArgs e)
        {
            //Agregamos la key
            SettingsHelper.addValue(key, txtNombre.Text);
        }

        private void btObtener_Click(object sender, RoutedEventArgs e)
        {
            //Verificamos si existe la key
            if (SettingsHelper.existKey(key) == true)
            {
                //obtenemos el nombre
                String nombre = SettingsHelper.getValue(key).ToString();
                MessageBox.Show(String.Format("Tu nombre es {0}", nombre));
            }
            else
            {
                //mostramos mensaje que no ha guardado la key aún
                MessageBox.Show("Aún no has guardado la key");
            }

        }
Finalmente aquí les dejo una captura del resultado que se muestra en la aplicación. Espero y les sea de ayuda este conocimiento que estoy compartiendo con ustedes

jueves, 6 de noviembre de 2014

ENVIANDO DATOS A PHP CON AJAX Y JQUERY

En este articulo me gustaría aportarles la manera fácil de enviar datos de un form con jquery  y ajax.
Comencemos con el código html que nos quedaría como el siguiente
    
        
        
        Tutorial
    
    
        

Tutorial jquery, ajax y php

El formulario nos quedaría como el que se muestra a continuación: Tutorial

Tutorial jquery, ajax y php





Ahora procederemos a crear nuestro script
 $(document).ready(function() {
        $("#formulario").submit(function(event){
          event.preventDefault();   
          var request;
          request=$.ajax({
              type: "POST",
              url: "enviar.php",
              data: $(this).serialize()
              });
         //deshabilita los inputs cuando hacemos el request
         var $inputs = $(this).find("input, select, button, textarea");
         $inputs.prop("disabled", true);
        //el request fue hecho con éxito
        request.done(function (response, textStatus, jqXHR){
             //mostramos la respuesta del request
             alert(response);
         });
         
        // callback handler that will be called on failure
        request.fail(function (jqXHR, textStatus, errorThrown){
        //ocurrio un  error
        alert(
            "Ha ocurrido el siguiente error "+
            textStatus, errorThrown);
    });
       //función que siempre se ejecutará
        request.always(function () {
            // reenable the inputs
            $inputs.prop("disabled", false);
            //limpia el formulario
            document.getElementById("formulario2").reset();
        });
    });
    
    });

Finalmente nuestro código php

0)
{   
      //obtenemos el nombre   
      $nombre=$_POST['nombre'];
      //obtenemos la edad
      $edad=$_POST['edad'];
      echo 'Bienvenido '.$nombre.' tu edad es: '.$edad;
    
}



El resultado es el que se muestra a continuación