none
WPF - como abrir uma tela minizada no windows RRS feed

  • Pergunta

  • Tenho uma tela minimizada, FormClientes por exemplo. Se o usuario clicar novamente em FormClientes não quero outra instãncia do Form. Quero ativar a tela FrmClientes que esta minimizada, trazendo para o Foco no windows.

    Alguma dica de como fazer isso?
     

    segunda-feira, 31 de janeiro de 2011 18:08

Respostas

  • Uma saida é usar o wpf estilo mdi

    http://wpfmdi.codeplex.com/

    espero que ajude..

    usei o blur,  fica bem legal no estilo mdi

     

     

    segunda-feira, 31 de janeiro de 2011 19:30
  • Mario,

    Olha... Se eu entendi corretamente sua dúvida, o que você precisa fazer é iterar pelas Windows abertas na sua aplicação (você tem essa informação através de Application.Current.Windows), verificando se você acha uma Window do tipo que você está querendo abrir... Se você achar, você exibe essa Window... Se não achar, você instancia uma nova... Seria algo como isto:

    bool achou = false;
    
    foreach (Window window in Application.Current.Windows)
    {
      if (window is SeuTipoDeWindow)
      {
        window.WindowState = System.Windows.WindowState.Normal;
        window.Activate();
        achou = true;
        break;
      }
    }
    
    if (!achou)
    {
      SeuTipoDeWindow window = new SeuTipoDeWindow();
      window.Show();
    }
    
    

    André Alves de Lima
    Microsoft MVP - Client App Dev
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima
    terça-feira, 1 de fevereiro de 2011 12:05
    Moderador

Todas as Respostas

  • Tem certeza que é wpf ??
    segunda-feira, 31 de janeiro de 2011 18:22
  • Sim. WPF.

    A tela pode estar minimizada ou sem foco. Quero ao invés de abrir outra instância, dar foco na instância anterior.

    segunda-feira, 31 de janeiro de 2011 18:26
  • ok

    é que vc fala de form eu fico na duvida

     

    tem um link como exemplo

    o efeito se chama BlurEffect

     

    http://quicoli.wordpress.com/2010/03/25/wpf-attached-behaviour-blur-to-focus-attention/

     

    ja usei em varios trabalhos é bem legal .

     

    abraço

     

    segunda-feira, 31 de janeiro de 2011 18:35
  •  Dentro do evento click a Window de tras recebe efeito blur

     

       var blur = new BlurEffect();
                var current = this.Background;
                blur.Radius = 5;
               this.Background = new SolidColorBrush(Colors.LightBlue);
                this.Effect = blur;

                WindowEnviarEmail enviarEmail = new WindowEnviarEmail();
                enviarEmail.UsuarioLogado = UsuarioLogado;
                enviarEmail.ShowDialog();

                this.Effect = null;
                this.Background = current;

    segunda-feira, 31 de janeiro de 2011 18:47
  • Oh sorry... mania. rs.
    Não é form. É Window.


    E não é bem isso que preciso.

    Preciso re-ativar à partir da Windows "Pai", uma Window que foi minimizada ou não está em foco.

    segunda-feira, 31 de janeiro de 2011 18:56
  • Uma saida é usar o wpf estilo mdi

    http://wpfmdi.codeplex.com/

    espero que ajude..

    usei o blur,  fica bem legal no estilo mdi

     

     

    segunda-feira, 31 de janeiro de 2011 19:30
  • Mario,

    Olha... Se eu entendi corretamente sua dúvida, o que você precisa fazer é iterar pelas Windows abertas na sua aplicação (você tem essa informação através de Application.Current.Windows), verificando se você acha uma Window do tipo que você está querendo abrir... Se você achar, você exibe essa Window... Se não achar, você instancia uma nova... Seria algo como isto:

    bool achou = false;
    
    foreach (Window window in Application.Current.Windows)
    {
      if (window is SeuTipoDeWindow)
      {
        window.WindowState = System.Windows.WindowState.Normal;
        window.Activate();
        achou = true;
        break;
      }
    }
    
    if (!achou)
    {
      SeuTipoDeWindow window = new SeuTipoDeWindow();
      window.Show();
    }
    
    

    André Alves de Lima
    Microsoft MVP - Client App Dev
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima
    terça-feira, 1 de fevereiro de 2011 12:05
    Moderador
  • Tks a voces.

    Vou testar as duas soluções.

     

     

    terça-feira, 1 de fevereiro de 2011 17:45
  • Denada Mario

    ate mais

    • Sugerido como Resposta luan89 terça-feira, 28 de fevereiro de 2012 20:24
    terça-feira, 1 de fevereiro de 2011 17:55
  • galera estou desenvolvendo em c# com WPF, e tem uma tela q ta me dando trabalho pois quando minimizo ela, a msma some da aplicaçao e eu não encontro uma propriedade para configurar isso!!!

    Alguma sugestão??

    Obrigadoo....

    Luan Muniz

    terça-feira, 28 de fevereiro de 2012 20:27
  • Então rapaz, faça assim:

    > crie um atributo global:

    private nomeJanela nj;

    > dentro de algum evento que você queira, coloque assim:

    if ( nj == null )

    {

    nj = new nj();

    nj.show();

    /* Essa linha fará o que você está precisando, que é focalizar/exibir quando o evento for inicializado. */

           nj.Focus();

    }

    Caso não tenha entendido, ou caso eu não tenha respondido o que você esperava, mantenha contato. abraço.

    terça-feira, 20 de março de 2012 18:10