segunda-feira, 23 de novembro de 2009

Galeria de fotos com WPF

Requisitos

Windows XP com Framework .NET 3.0 ou superior para rodar a aplicação
Visual Studio 2008 ou compatível

1º Crie uma aplicação do tipo WPF Application

2º No XAML, na tag Windows, mude o atributo title para Galeria de fotos

3º Adicione as bibliotecas System.IO e System com as seguintes linhas
xmlns:s="clr-namespace:System;assembly=mscorlib"
xmlns:io="clr-namespace:System.IO;assembly=mscorlib"

4º Adicione os resources da aplicação com as seguintes linhas, é de onde as fotos serão lidas, entenda o primeiro s:String como local de suas imagens, o segundo é o filtro dos arquivos que serão lidos pela aplicação, mas já vou te explicar que ObjectType é o tipo do objeto que está sendo instanciado pelo ObjectDataProvider e o MethodName é o método desse objetos que será executado, o resto é tranqüilo.


5º Após o Windows.Resources adicione um DockPanel com o atributo LastChildFill setado como True

6º Dentro do DockPanel adicione um ListBox com os seguintes atributos x:Name="imageList", DockPanel.Dock="Top", ItemsSource="{Binding}", IsSynchronizedWithCurrentItem="True" e DataContext="{StaticResource imagens}".

7º Dentro do ListBox coloque as seguintes tag



8º Adicione o painel onde a imagem será exibida com o código abaixo.


Super tranqüilo.

Referencias.

http://windowsclient.net/wpf/
http://msdn.microsoft.com/pt-br/library/cc564903.aspx
http://msdn.microsoft.com/en-us/library/ms754130.aspx

quarta-feira, 18 de novembro de 2009

FileWatcher - Observador de arquivos

Muito simples, vamos lá.

1º Crie um projeto do tipo Windows Forms Applications.

2º Adicione uma classe com o nome FileWatcher.

3º Crie uma variável do tipo string, privada com o nome pasta.

private string pasta = @"d:\teste";


4º Crie o construtor da classe conforme abaixo.

public FileWatcher()

{

FileSystemWatcher WatchFile = new FileSystemWatcher(pasta, "*.txt");

WatchFile.Created += new FileSystemEventHandler(this.FileCreated);

WatchFile.EnableRaisingEvents = true;

}


5º Agora vamos criar o método Created, faça conforme abaixo. Esse método irá copiar o arquivo de D:\Teste para D:\Teste2 e xcluí-lo da origem

public void FileCreated(object sender, FileSystemEventArgs e)

{

Console.WriteLine(e.Name);

FileInfo fileInfo = new FileInfo(e.Name);

string pastaOrigem = @"D:\Teste";

string pastaDestino = @"D:\Teste2";

string arquivoOrigem = Path.Combine(pastaOrigem, fileInfo.Name);

string arquivoDestino = Path.Combine(pastaDestino, fileInfo.Name);

if (File.Exists(arquivoDestino))

File.Delete(arquivoDestino);

File.Copy(arquivoOrigem, arquivoDestino);

Log(arquivoOrigem, arquivoDestino);

}


6º Vamos gravar um log disso então? Basta fazer um método como esse. Ele é chamado no final do Created.

private void Log(string preCondicao, string posCondicao)

{

string arquivoLog = Path.Combine(pasta, string.Format("{0}log.txt", string.Format("{0:yyyyMMdd}", DateTime.Now)));

StreamWriter arquivoEscrita = new StreamWriter(arquivoLog, true);

arquivoEscrita.WriteLine(string.Format("{0}|{1}|{2}", preCondicao, posCondicao, DateTime.Now));

arquivoEscrita.Close();

arquivoEscrita.Dispose();

}


7º Instancie um novo FileWacther no Load do formulário.

8º Vamos testar agora, crie uma pasta chamada Teste e uma pasta Teste2, execute a aplicação e crie um arquivo texto (txt) em Teste, veja que o arquivo sumiu! E um novo arquivo chamado AAAAMMDDlog.txt foi criado, esse arquivo contém as informações do nome do arquivo de origem, nome do arquivo destino e data/hora em que ele foi movido. Se você verificar em Teste2 o arquivo estará lá.

OBS: Atenção aos caminhos das pastas, caso não tenha um diretóro D:, coloque no lugar que lhe parecer melhor.

Até a próxima.

quarta-feira, 4 de novembro de 2009

PDF com C# (C SHARP)

1º Baixe a biblioteca em http://sourceforge.net/projects/report/

2º Crie um projeto windows forms

3º Adicione a referência da biblioteca no projeto

4º Adicione a seguinte linha no projeto
using Root.Reports;

5º No método Load do formulário adicione o seguinte código

String arquivo = @"c:\teste.pdf";

if (System.IO.File.Exists(arquivo))
System.IO.File.Delete(arquivo);

Report report = new Report();
Page page = new Page(report);

page.AddCB_MM(25,
new RepString(
new FontProp(
new FontDef(report, FontDef.StandardFont.Courier), 14), "Seu texto"));

report.Save(arquivo);

Pronto, fácil assim no site do projeto há alguns exemplos legais, acho que vale a pena dar uma olhada.


Referências
http://report.sourceforge.net/

domingo, 1 de novembro de 2009

Usando Checkbox no repeater



Para desenvolver essa aplicação é necessário



Visual Studio 2005 ou compatível
Framework 2.0



1º Adicione um Repeater no formulário
2º Vá no modo Source para editar o template do arquivo
3º Adicione o componente checkbox



O código deverá estar parecido com isso





4º Adicionar DataSource ao Repeater

Nesse caso eu vou criar uma coleção de String vou popular com dentro de um laço e instanciar o valor do DataSource do Repeater1 com a lista. No método Load_Page coloque o seguinte código.

if (!Page.IsPostBack)
{
List lista = new List();

for (int i = 0; i < datasource =" lista;">

5º Colocando Eval no Repeater



Agora coloque o valor da lista que você irá visualizar no Repeater
Container.DataItemFicará da seguinte forma



6º Imprimindo o resultado



Adicione um Label e um Button, no evento Click do botão adicione o seguinte código



Label1.Text = String.Empty;

foreach (RepeaterItem item in Repeater1.Items)
if (((CheckBox)item.Controls[1]).Checked) Label1.Text = ((CheckBox)item.Controls[1]).Text + "
";