WPF仅包含代码

rwa*_*ace 6 .net c# wpf winforms

我在这里看到了很多关于WPF优点的问题,基本上每个答案都说它是蜜蜂的膝盖,但基本上每个答案都会讨论像XAML这样的东西,在很多情况下是平面设计师和Expression Blend等.我的问题是,如果你是一名只在C#工作的独唱编码员,是否值得进入WPF?

具体来说,我自己没有平面设计师,也没有任何优秀的人才; 我不使用点击工具; 我用C#编写所有内容,而不是XML.

Winforms在这些条件下工作正常.WPF也是如此,或者事实证明重要的功能只能在XAML中完成,默认设置不适合实际使用,你必须在团队中有一个图形设计师才能使事情看起来很好,等等在我的位置上有人会更好地坚持Winforms?

Fem*_*ref 6

我自己是代码人,老实说,这没关系.即使您对图形设计一无所知,您仍然可以使用visual studio中的编辑器来设计UI.设计师像Win Forms一样具有拖放设计器,因此这并不会造成问题.即使我是一个代码人,我对xaml没有任何问题,因为它在某种程度上再次代码.我最初也遇到了xaml的问题,但我已经习惯了,而且我在Win Forms中的代码所做的事情在xaml中非常容易.

数据绑定只是摇滚,你不必关心将数据传递到UI,你只需要一个ObservableCollection<T>或类似的,并在xaml代码中有一个属性,一切都为你完成.想格式化数据?只需为绑定添加格式属性即可.想根据值为文本着色?模板选择器类有15行代码,绑定和模板选择在xaml代码中大约10行.我真的在成长,喜欢它,随着时间的推移(和任何其他新技术一样)你会习惯它,并产生好看的东西.


R0M*_*RMY 4

简短的回答:是的,您可以仅使用代码来执行 WPF。

更长的答案:关于设计师能够处理 UI 和开发人员能够处理功能的部分实际上只是将功能与表示解耦的副作用。

WPF 以强大的方式带来的是数据绑定,它使您能够使用更广泛的设计模式。 最近对 MVVM进行了很多讨论。

  • 各种MVVM 框架鼓励约定优于配置,允许您编写更少的代码来实现相同的目标。
  • 这种解耦还有一个很好的副作用,即使您的应用程序更易于测试(如果您不想,则不必编写测试,但至少有这个选项)。

对于您的新开发来说,从 WinForms 迁移到 WPF 很可能是值得的。理论上,您可以继续使用 WinForms 做的事情(只需使用新库),但当您对技术更加熟悉时,它使您可以选择将更新的工具合并到您的开发中。

如果您还没有看过, Scott Hanselman 的《BabySmash》系列非常有趣。