Archivo

Archive for the ‘Silverlight’ Category

Llamado continuo a un web service usando un trigger #Silverlight

marzo 25, 2013 Deja un comentario

Quiero mostrarles un pequeño truco de como realizar un llamado continuo a un web service es muy útil para verificar datos o cambios en la base de datos, ojo esto no se debe usar si se desea crear un chat o cosas así puesto que es altamente ineficiente esto es algo que en realidad no se debe hacer pero aveces no tenemos el tiempo y esto es una solución rápida.

Lo que hago es generar un trigger de una animación  que tiene su respectivo tiempo de ejecución y que altera cualquier propiedad del objeto:

<Image x:Name="ImageTriguer" Width="0" Height="0" Opacity="1" Source="Icons/icono.png">
<Image.Triggers>
<EventTrigger RoutedEvent="Image.Loaded" >
<BeginStoryboard>
<Storyboard x:Name="StoryBoardAnimation1">
<DoubleAnimation Completed="DoubleAnimation_Completed"
Storyboard.TargetName="ImageTriguer"
Storyboard.TargetProperty="Opacity"
From="1.0" To="0.0" Duration="0:0:20"
AutoReverse="False" BeginTime="0" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Image.Triggers>
</Image>

como ven debemos crear un evento en el código al momento en que se complete la animación llamado DoubleAnimation_Completed  hay es donde colocaremos el llamado al servicio y luego lo que hacemos es volver a comenzar la animación con el método begin para el StoryBoard


private void DoubleAnimation_Completed(object sender, EventArgs e)
{
CallMethodWebService();
StoryBoardAnimation1.Begin();
}

 

como ven es un truco muy útil pero muy ineficiente y que en realidad no se debe hacer pero nos saca de apuros.

espero les sirva.

Leer excel en silverlight

enero 11, 2013 Deja un comentario

 

Depues de buscar varios componentes para poder leer un excel en silverlight el mejor que he encontrado es este:

 

OpenFileDialog  dilgFile= new OpenFileDialog ;
FileStream a = dilgFile.File.OpenRead();

//get the stream of the file selected for user
StreamReader sr = new StreamReader(a);

//vars for excel
List workSheets;

//intizialice Excel

ExcelOpenXmlReader excelreader2007 = ExcelReaderFactory.CreateOpenXmlReader(sr.BaseStream) asExcelOpenXmlReader;

excelreader2007.WorkBookFactory = new WorkBookFactory(); 

var workBook1 = excelreader2007.AsWorkBook();

workSheets = (List<IWorkSheet>)workBook1.WorkSheets;

 

Luego podemos facilmente leer las hojas cada celda y columna de esas hojas de manera:

 

//chek campo for campo

for (int j = 0; j < workSheets[0].Columns.Count; j++)

{

string strValue = workSheets[0].Rows[i].Values[j].ToString();

}

pueden descargar el código del siguiente Link:

http://exceldatareader.codeplex.com/releases

 

Tambien sirve para asp y para aplicaciones de escritorio.

 

Mostrar una imagen desde archivo en silverlight

octubre 3, 2012 Deja un comentario

Lo primero que hacemos es un método en un web service para traer la imagen de la ruta indicada en formato de bytes, acá les dejo un método que les puede servir :


 public static byte[] GetImageApp()
 {
   //Gets the File
   StreamReader reader = new StreamReader("C:\\Logo.png");
   BinaryReader binReader = new BinaryReader(reader.BaseStream);

   //Read file in binary array
   byte[] binFile = 
            binReader.ReadBytes(Convert.ToInt32(binReader.BaseStream.Length));

   //close reader
   binReader.Close();
   reader.Close();

   return binFile;
 
 }

Luego lo único que tenemos que hacer es invocar nuestro web service y convertir el array de bytes en imagen:


        using (MemoryStream ms = new MemoryStream(ArrayBytes, 0, b.Length))
                {
                    BitmapImage im = new BitmapImage();
                    im.SetSource(ms);
                    
                    // control donde voy a mostrar la imagen
                    img.Source = im;                   
                }

Cualquier duda la dejan en los comentarios.