Usuário com melhor resposta
Imagem de background

Pergunta
-
estou desenvolvendo uma aplicação windows form e nela tem a eu fiz uma opção do usuário trocar a imagem de plano de fundo da tela principal do sistema;
A minha dúvida é: aonde eu posso armazenar(tem algum lugar específico para isso) essa imagem para que sempre q o iniciar o sistema ele possa recuperá-la.
Respostas
-
Fala Fernando, blz?
Cara, tenta fazer alguma coisa assim:
No Visual Studio tem um controle que a gente puxa para a tela, que é um Dialog que permite abrir um arquivo.
Tente jogar esse arquivo aberto para um objeto, e depois salvar em arquivo esse objeto atraves de Stream.
É alguma coisa assim, eu não me lembro de cabeça agora. Sorry.
Ler arquivo.openFileDialog1.ShowDialog();
object obj = openFileDialog1.OpenFile().ToString();
System.IO.StreamWriter sw = new System.IO.StreamWriter(@"C:\Imagem.jpg");
sw.Write(obj);
sw.Close();
Abs, -
Olá, se eu entendi bem o que você quer, segue abaixo um exemplo bem simples.
Code Snippetprivate void btnAbrir_Click(object sender, EventArgs e)
{
opF.InitialDirectory = "c:\\";
opF.ShowDialog(this);
System.IO.File.Copy(opF.FileName, "c:\\teste\\" + System.IO.Path.GetFileName(opF.FileName));
Image bkimage = Image.FromFile("c:\\teste\\" + System.IO.Path.GetFileName (opF.FileName));
this.BackgroundImage = bkimage;
}
Só te pesso para dar uma maquiada, porque não fiz nenhum tratamento de erros.
Objetos:
opF = OpenFileDialog
bkimage = Image
ok?
Qualquer dúvida é só postar.
Abraço!
Todas as Respostas
-
-
Fala Fernando, blz?
Cara, vc pode renomear um arquivo como "Background" (ou outro nome qualquer) e sempre deixar somente este arquivo em uma pasta que vc queira. Outra forma, é vc armazenar em banco ou arquivo .INI o nome da imagem que será recuperada para o fundo do seu Form.
Isso já resolve seu problema. Dependendo da sua escolha, vai postando que a gente te ajuda.
Abs, -
-
Fala Fernando, blz?
Cara, tenta fazer alguma coisa assim:
No Visual Studio tem um controle que a gente puxa para a tela, que é um Dialog que permite abrir um arquivo.
Tente jogar esse arquivo aberto para um objeto, e depois salvar em arquivo esse objeto atraves de Stream.
É alguma coisa assim, eu não me lembro de cabeça agora. Sorry.
Ler arquivo.openFileDialog1.ShowDialog();
object obj = openFileDialog1.OpenFile().ToString();
System.IO.StreamWriter sw = new System.IO.StreamWriter(@"C:\Imagem.jpg");
sw.Write(obj);
sw.Close();
Abs, -
Diego,
fiz dessa forma que você me falou e ele cria a imagem no caminho especificado porém, vazio.
Então no OpenFileDialog o usuário indica onde está a imagem que ele quer adicionar como background e em seguida eu gravo ela em um diretório.
quando eu abro ela no windows explorer, ela está vazia.
-
Fernando, blz?
É cara, pode ter dado algum erro na hora que escrevi esse código ai.
Veja se vc consegue jogar um Stream ao invés de ser um Object...
Faça algumas modificações nesse código. Eu não estou conseguindo tempo pra abrir o meu VS, mas assim que der, eu posto aqui uma outra solução.
Abs, -
-
Quero fazer o seguinte na minha aplicação windows form com C#:
quando o usuário clicar em um botão, abrir uma janela para ele selecionar uma imagem que será o papel de parede da aplicação.
Após selecionada a imagem, salvá-la em um diretório e alterar o papel de parede atual da aplicação para essa nova imagem q acabou de ser gravada.
-
Olá, se eu entendi bem o que você quer, segue abaixo um exemplo bem simples.
Code Snippetprivate void btnAbrir_Click(object sender, EventArgs e)
{
opF.InitialDirectory = "c:\\";
opF.ShowDialog(this);
System.IO.File.Copy(opF.FileName, "c:\\teste\\" + System.IO.Path.GetFileName(opF.FileName));
Image bkimage = Image.FromFile("c:\\teste\\" + System.IO.Path.GetFileName (opF.FileName));
this.BackgroundImage = bkimage;
}
Só te pesso para dar uma maquiada, porque não fiz nenhum tratamento de erros.
Objetos:
opF = OpenFileDialog
bkimage = Image
ok?
Qualquer dúvida é só postar.
Abraço!
-
-
-
-
Depende muito da sua aplicação e necessidade.
Precisa pensar em algumas perguntas:
1. Você aceita que não seja aberto nenhuma imagem?
2. Com base na resposta acima, você quer informar para o usuário que nenhuma imagem foi aberta, ou simplemente não fazer nada?
3. Você quer usar filtro de tipos de arquivos, para não exibir todos os arquivos?
4. Qual a pasta destino? e se o arquivo já existir lá como você vai tratar isso? você precisa desse tipo de tratamento?
Enfim, são muitas coisas, mas podemos começar pelo simples que é um Try Catch simples.
Code Snippetprivate void btnAbrir_Click(object sender, EventArgs e){
{
opF.InitialDirectory =
opF.ShowDialog(
this);System.IO.
File.Copy(opF.FileName, @"c:\teste\" + System.IO.Path.GetFileName(opF.FileName)); Image bkimage = Image.FromFile(@"c:\teste\" + System.IO.Path.GetFileName(opF.FileName)); this.BackgroundImage = bkimage;}
catch (Exception ex){
}
}
É isso, qualquer coisa estou na área.
-