Fechar form WPF em Csharp

24/04/2015

0

Pessoal estou fazendo um sistema em C# usando WPF e estou alguns probleminhas, pois tenho em media 10 form WPF, um PAI(From PRINCIPAL) e outros filho (From's Secundarios), o problema é o seguinte, quero ao clicar em um botão do menú ele me abra o form wpf respectivo aquele botão, até ai deu certo, porem quero que ele verifique se há houver algum form secundário aberto, se houver que feche os e abra apenas o solicitado. Se alguém poder me ajudar ficarei muio agradecido.
Moisés

Moisés

Responder

Post mais votado

24/04/2015

Use o System.Windows.Forms.Application.OpenForms.

Veja nos links exemplos, dúvidas é só postar.

check open windows in wpf

Get List of all Open Forms in Windows Application

Get List of all Open Forms in Windows Application

Jothaz

Jothaz
Responder

Mais Posts

25/04/2015

Moisés

Muito Obrigado Jothaz consegui essa parte!

Mas tenho outro probleminha, estou meu form principal e queria abrir dentro dele os form filho, tipo uma mdi parent, sei a mesma não existe WPF, mas deve háver uma forma de fazer isso,vocês poderia me ajudar?
Responder

25/04/2015

Nathalia

Pessoal, estou com a mesma dúvida do Moisés.

Quero abrir um form filho dentro do form principal em WPF.

Vi que WPF não tem suporte para MDI.


Alguém pode me exemplificar como posso fazer isso?
Responder

27/04/2015

Jothaz

Pessoal, estou com a mesma dúvida do Moisés.

Quero abrir um form filho dentro do form principal em WPF.

Vi que WPF não tem suporte para MDI.


Alguém pode me exemplificar como posso fazer isso?



Apesar de não ter tido oportunidade de usá-lo de forma profissional, portanto não sou expert no assunto, particularmnte acho o WPF maravihoso, pois com XAML e mais uma infinidade de recursos é possível criar apresentações ricas. Só que houve uma mudança de paradigma e consequentemente na forma de pensar e se projetar as interfaces. Então seria anacrônico querer utilizar uma solução "Windows Forms" neste contexto. Nem digo que não seja possível, só acho que deve-se focar em usar os recursos disponíveis na framework e para o qual ela foi projetada.

A questão pode ser abordada das seguintes formas:

1 - O WPF possui o recurso "Frame" onde pode-se simular MDI do "Window Form", mas de certa forma diferente, nele você consegue abrir quantos formulários desejar e navegar entre eles de forma similar a navegação de páginas na internet.

2 - Uma outra forma que a própria Microsoft utiliza é abrir formulário do forma Show, mas mantendo esse formulário atrelado a janela pai fazendo com que a janela filho não seja independente do pai, como o VS usa.

3 - Existe um elemento chamado <WindowsFormsHost /> que permite incluir um elemento WinForm dentro de uma janela WPF o que permite algo parecido com o MDI.

4 - Usar o conceito de <Page /> do WPF.

Agora se você quer mesmo utilizar o MDI você deverá utilzar algum componente externo, não sei se funcionam estou postando os link somente como informação:

[url:descricao=WPF Multiple Document Interface (MDI) ]http://wpfmdi.codeplex.com/[/url]

AvalonDock

MDI Container for WPF

Bem isto é o que conheço sobre o assunto vamos esperar novas contribuições e vermos se existem outras abordagens,

Então cabe ao projetista desenvolvedor pesquisar se inteirar do assunto e decidir qual a melhor solução para o cenário que esta atuando.
Responder

28/04/2015

Nathalia

Jothaz, obrigada pela resposta, vamos procurar sobre esses recursos que você mencionou no WPF!!
Responder

29/04/2015

Moisés

Pessoal, estou com a mesma dúvida do Moisés.

Quero abrir um form filho dentro do form principal em WPF.

Vi que WPF não tem suporte para MDI.


Alguém pode me exemplificar como posso fazer isso?



Apesar de não ter tido oportunidade de usá-lo de forma profissional, portanto não sou expert no assunto, particularmnte acho o WPF maravihoso, pois com XAML e mais uma infinidade de recursos é possível criar apresentações ricas. Só que houve uma mudança de paradigma e consequentemente na forma de pensar e se projetar as interfaces. Então seria anacrônico querer utilizar uma solução "Windows Forms" neste contexto. Nem digo que não seja possível, só acho que deve-se focar em usar os recursos disponíveis na framework e para o qual ela foi projetada.

A questão pode ser abordada das seguintes formas:

1 - O WPF possui o recurso "Frame" onde pode-se simular MDI do "Window Form", mas de certa forma diferente, nele você consegue abrir quantos formulários desejar e navegar entre eles de forma similar a navegação de páginas na internet.

2 - Uma outra forma que a própria Microsoft utiliza é abrir formulário do forma Show, mas mantendo esse formulário atrelado a janela pai fazendo com que a janela filho não seja independente do pai, como o VS usa.

3 - Existe um elemento chamado <WindowsFormsHost /> que permite incluir um elemento WinForm dentro de uma janela WPF o que permite algo parecido com o MDI.

4 - Usar o conceito de <Page /> do WPF.

Agora se você quer mesmo utilizar o MDI você deverá utilzar algum componente externo, não sei se funcionam estou postando os link somente como informação:

[url:descricao=WPF Multiple Document Interface (MDI) ]http://wpfmdi.codeplex.com/[/url]

AvalonDock

MDI Container for WPF

Bem isto é o que conheço sobre o assunto vamos esperar novas contribuições e vermos se existem outras abordagens,

Então cabe ao projetista desenvolvedor pesquisar se inteirar do assunto e decidir qual a melhor solução para o cenário que esta atuando.


Jothaz, poderia me explica melhor como para isso na forma que vc mencionou no item 3.
Responder

29/04/2015

Jothaz

Você fez alguma pesquisa sobre o assunto?

Post o link que você este utilizando como referência para estudo sobre o assunto.
Responder

02/05/2015

Moisés

Você fez alguma pesquisa sobre o assunto?

Post o link que você este utilizando como referência para estudo sobre o assunto.




Jothaz, conseguimos resolver esse problema com este post aqui: https://social.msdn.microsoft.com/Forums/sqlserver/pt-BR/98a8c038-4173-4329-9d90-df8b4b2854ff/abrir-form-dentro-do-principal?forum=vscsharppt

A resposta que resolveu nosso problema foi a de um cara chamado Winicius Dutra, mas muito obrigado pela sua sua ajuda!
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar