我目前正在研究学习WPF和Silverlight。到目前为止,我一直在开发Delphi和C#(Winforms)。在看一些关于WPF的书籍并在线观看一些介绍性视频的同时,我得到的印象是,这个XAML在效率和可用性方面是倒退的(对开发者而言)。特别是在在线视频中,人们很乐意输入XAML代码来创建表单和控件,我认为这是一种技术,很久以前,视觉形式设计师的到来已经过时了。当使用表单设计器时,为什么我要通过在XAML中键入文本表示来创建按钮或网格?当从属性检查器的下拉列表中选择颜色或字体名称要快得多时,为什么要键入颜色或字体名称?真实世界的应用程序GUI是否真正由输入 XAML?
开发我确信我在这里遗漏了一些东西,虽然我无法弄清楚是什么......
答案 0 :(得分:28)
与使用WYSIWYG编辑器相比,它与手动编写原始HTML几乎相同:对结果进行更精细的控制,而无需使用编辑器进行不必要的循环。
答案 1 :(得分:12)
真的是真实世界的应用程序GUI 通过键入XAML开发?
总之,是的。也许并不多,但肯定会发生。
我对视觉设计师的经验是,他们倾向于添加不必要的面板,固定尺寸和绝对定位,同时需要更灵活,适当的缩放布局。例如,查看stackoverflow上的this recent question
此外,如果您编写自定义控件,您通常需要做额外的工作才能使它们与可视化设计器兼容,如果您能够直接编辑xaml,则无需额外的工作。
答案 2 :(得分:11)
我倾向于手动编写所有的XAML,因为我还没有熟练使用Blend。但是我工作的其他一些开发人员喜欢使用Blend,它非常适合像渐变一样设置。
我建议您下载Blend的试用版并尝试一下,它可以很好地使用Visual Studio,如果您学习如何使用它,可以节省大量时间。
答案 3 :(得分:6)
如果你能输入 XAML,那么你理解 XAML :)(imho)
知道如何键入它的关键是知道如何调试它,重构它并重新组织它。所有这些目前无法在Expression混合中完成,对于大型项目,您需要所有这些。
这里提出的另一个问题是手动编写XAML会给你更多的控制权,并不像html那样强大。 XAML比html和编辑器更像是表达式混合或其他编辑器,它几乎提供了你手工编写的相同XAML,几乎没有例外。
答案 4 :(得分:4)
嗯,设计师倾向于使用Expression Blend,它是一个强大的xaml设计师。但是,我知道很多开发人员将xaml编辑为文本并发现它比设计人员更容易。
答案 5 :(得分:3)
如果您想使用设计师,请获取Expression Blend。
你是对的,虽然在VS中应该有一些初级设计师。
Silverlight虽然来自不同的方向,但典型的控制是银光及其早期的最新事物。
我说作为开发人员我实际上更喜欢键入XAML,就像我更喜欢键入HTML一样。设计师(并且混合也不例外)将过多的超级东西转移到标记中,我宁愿不在那里。
答案 6 :(得分:3)
一旦你理解了如何使用属于WPF的不同面板结构,那么手工编写XAML确实比使用设计器更容易。我发现我可以将控件输入到比使用任何设计器更快的形式,并且我可以更好地控制XAML的外观和布局。
我只使用设计器偶尔为表单上已有的控件设置属性。我使用Blend做动画,因为我还没有得到XAML。
答案 7 :(得分:2)
可以将XAML与Glade XML进行比较,Glade XML是一种用于存储基于GTK +的GUI的格式。与Windows Forms不同,GTK +和WPF一样,实际上是合理的,因为它使用相对定位。使用Windows窗体,当人们开始自定义字体时,绝对定位就变成了PITA,而你的GUI看起来像是带有大量文本剪辑的垃圾。
与绝对定位不同,相对定位易于手动编码,因为您不需要计算出坐标!
答案 8 :(得分:0)
因为它更适合版本控制系统,所以其他人可以在没有冲突的情况下同时更改它吗?因为你可以在emacs中开发整个应用程序?因为你可以轻松地为这些东西编写发电机和检查员吗?因为很容易控制这个GUI如何查看每个小细节?
答案 9 :(得分:0)
我输入它。
我讨厌设计师的草率,非确定性和难以控制的输出,无论是HTML,还是XAML。
基本上,如果我创建一个XAML文件,我就会像编写其他代码一样完成它。
我首先将整个事物分割成一个网格,在一切上设置一个精确的像素大小(除了奇怪的“自由浮动”空间,我把“*”放在哪里)决定什么去哪里然后我也添加注释并清空用于构造XAML的行。
另外,我拒绝任何不符合此标准的XAML“不可用”,这具有很好的教育效果。
最佳做法的邋and和疏忽是致命的罪行,我从不容忍它们。