Por um longo tempo, estive preso no desenvolvimento de Windows Forms (começou com VB6 e continuou até C # .NET 4.5), e quase atingi o limite do que o Windows Forms pode fazer, ambos usando .NET puro e efeitos especiais com Native Code.
Tentei aprender WPF e XAML, mas não consigo entender o novo designer do WPF. Realmente parece muito difícil de usar em comparação com o designer do Windows Forms.
Eu quero saber se há alguma alternativa para o designer WPF do .NET, que seja mais adequada para desenvolvedores de formulários do Windows?
Respostas:
Gosto de fazer um blog sobre artigos para iniciantes do WPF, e há alguns em particular que podem ajudá-lo:
Para resumir, a maior diferença entre Winforms e WPF é que no WPF sua camada de dados (o
DataContext
) é seu aplicativo, enquanto no Winforms sua camada de IU é seu aplicativo.Olhando de outra forma, com o WPF, seu aplicativo consiste nos objetos que você cria e você usa modelos e outros objetos de IU para informar ao WPF como desenhar os componentes de seu aplicativo.
Isso é o oposto de WinForms, onde você constrói seu aplicativo a partir de objetos de IU e, em seguida, fornece a eles os dados necessários.
Por causa disso, o designer não é realmente muito usado, já que os componentes de seu aplicativo são projetados em código, e o designer só é necessário para desenhar uma interface amigável que reflita suas classes de dados (normalmente
Models
eViewModels
)E, pessoalmente, prefiro digitar todo o meu XAML à mão, pois é mais rápido e não faz tanta bagunça quanto o designer WPF de arrastar / soltar, embora eu use o Designer ocasionalmente para visualizar a aparência da minha IU gostar.
Então, para sua resposta à sua pergunta sobre se há outros designers de WPF adequados para desenvolvedores de WinForms, eu sugeriria que, em vez de procurar outro designer, procure aprender como usar o WPF da maneira como deve ser usado. Usar o WPF como se fosse WinForms significa que você perderá muito do que o torna tão bom :)
fonte
Bem, embora algumas pessoas não concordem, eu também recomendaria não usar o designer VS. Pelo menos não para criar uma interface. Se você quiser ter uma primeira impressão de sua implementação sem iniciar o aplicativo, é um bom visualizador, pelo menos, desde que nada sofisticado como
Styles
eTemplates
seja usado. Mas, IMHO, seu resultado de arrastar e soltar deve ser usado apenas como protótipo e, portanto, ser descartado quando não for mais necessário.Aqui estão algumas razões que são importantes para eu não usá-lo.
O designer do VS está trabalhando com margens e alinhamentos fixos (o que geralmente não é necessário, se você estiver usando os controles de layout), o que significa que você terá que tocar em muitos controles, se os requisitos forem alterados. Se você estiver profundamente interessado em XAML e na mecânica do WPF, poderá criar aplicativos que podem ser modificados com pouco esforço, em relação à aparência.
Como o designer está gerando o xaml, a composição não é ideal e a IU pode funcionar mal. Eu não medi, é apenas um sentimento.
Uma alternativa muito melhor é o MS Blend , embora o início seja tudo menos fácil. Seu resultado de arrastar e soltar é muito melhor que o resultado do designer VS.
Mas é uma ferramenta muito poderosa, que o ajuda a usar elementos muito poderosos para criar uma interface de usuário de última geração. Recomendo visitar pelo menos um pequeno workshop para ter uma ideia de suas oportunidades.
Voltando à sua pergunta, IMHO, e eu acho que muitas pessoas concordam, compre um bom livro, por exemplo, WPF Unleashed e mais tarde, se você quiser saber mais sobre os detalhes, WPF Pro . Existem muitos recursos que são diferentes de
Winforms
. Você não vai conhecê-los usando nenhum designer. Acho que é a melhor abordagem.Considere também que existem muitos frameworks e bibliotecas (por exemplo, MVVM light , WPFToolkit ) por aí, que já estão resolvendo alguns problemas comuns. Portanto, não é necessário reinventar a roda.
fonte
Eu sei que esta é uma pergunta antiga, mas para o benefício de qualquer pessoa que estiver olhando para isso, acho que devo restabelecer um pouco o equilíbrio - lendo algumas das outras respostas, tenho a sensação de que alguns dos 'não use o designer 'sentimento vem de não usá-lo corretamente. Este tutorial é muito bom para você começar e responder algumas das críticas nos outros posts.
Por exemplo, você pode mudar do layout baseado em margem semelhante ao WinForms, que é o padrão quando você solta um controle, para um estilo mais WPF clicando com o botão direito e selecionando 'Redefinir Layout'
Este vídeo cobre um terreno semelhante.
Eu ainda prefiro o VS2010 designer no equilíbrio - VS2013 parece ser um pouco problemático ao arrastar e soltar em TabItems **, (que meu projeto atual usa muito) - mas a visualização de esboço do documento VS2013 permite que você mova coisas nessa visualização também , o que pode ser uma vantagem real.
Porém, na verdade, para obter o máximo do WPF e do xaml, você precisa ser razoavelmente fluente tanto na visualização do designer quanto na visualização do xaml e alternar entre elas; se você se esquiva do designer, está perdendo algo que pode te ajudar muito.
** Editar - embora isso pareça ter sido melhorado na atualização 3 para o VS 2013, e nas visualizações do VS14, até agora eu ainda tenho um comportamento estranho às vezes.
fonte
Em primeiro lugar, em WPF (XAML) no deisgner do Visual Studio, você deve sempre usar o código xaml para construir sua IU e não arrastar e soltar seu controle! Você precisa manter seu código limpo. Você pode usar o Expression Blend para ajudá-lo, é mais orientado para gráficos com arrastar e soltar, mas não é gratuito.
Não é uma grande curva de aprendizado, mas acho que você deve aprender como fazer seu xaml manualmente em vez de procurar alternativas.
fonte
Passei por esse processo como você. Depois eu estava ensinando WPF a todos na minha empresa. Há algumas lições importantes que aprendi e todos que conheço que trabalham com o WPF.
Isso torna o desenvolvimento da IU divertido. Especialmente quando você descobrir como ele gosta de acompanhar os processos Asyc. Realmente tira muitas das dores de cabeça que eram causadas pelo WinForms.
fonte