代码之家  ›  专栏  ›  技术社区  ›  Timo

XAML-输入它有什么意义?

  •  7
  • Timo  · 技术社区  · 17 年前

    我目前正在学习WPF和Silverlight。到目前为止,我一直在用Delphi和C#(Winforms)进行开发。在阅读一些关于WPF的书籍和在线观看一些介绍性视频时,我得到的印象是,这个XAML的东西在效率和可用性方面(对于开发人员而言)是一个相当大的倒退。特别是在在线视频中,人们很高兴地键入XAML代码来创建表单和控件,我认为这是一种技术,随着视觉表单设计师等很久以前的到来,这种技术已基本过时。使用表单设计器要快得多,为什么我要通过在XAML中键入文本表示来创建按钮或网格?从属性检查器的下拉列表中选择颜色或字体名称要快得多,为什么要键入颜色或字体名称?真实世界的应用程序GUI真的是由 打字 XAML?

    我确信我在这里遗漏了一些东西,虽然我不知道是什么。。。

    10 回复  |  直到 17 年前
        1
  •  28
  •   Tamas Czinege    17 年前

    这与手动编写原始HTML(而不是使用所见即所得编辑器)几乎相同:对结果有更精细的控制,而不需要使用编辑器进行不必要的循环。

        2
  •  12
  •   Community Mohan Dere    9 年前

    通过键入XAML开发?

    总之,是的。也许不多,但肯定会发生。

    this recent question

    另外,如果您编写自定义控件,通常需要做额外的工作才能使它们与可视化设计器兼容,如果您能够直接编辑xaml,则不需要做额外的工作。

        3
  •  11
  •   timothymcgrath    17 年前

    我建议您下载Blend试用版并尝试一下,它在VisualStudio中运行得非常好,如果您学习如何使用它,可以节省大量时间。

        4
  •  6
  •   Pop Catalin    17 年前

    如果可以的话 XAML,然后你 懂

    知道如何键入它的关键在于知道如何调试、重构和重新组织它。所有这些都无法在Expression blend中完成,对于大型项目,您需要所有这些。

    这里提出的另一个问题是,手动编写XAML提供了更多的控制,这并不像html那样具有优势。XAML比html和expression blend等编辑器的结构更为结构化,它提供的XAML与手工编写的XAML几乎相同,只有少数例外。

        5
  •  4
  •   Marc Gravell    17 年前

        6
  •  3
  •   AnthonyWJones    17 年前

    如果要使用设计器,请获取表达式混合。

    你是对的,不过在VS中也应该有一些初级设计师。

    Silverlight虽然来自不同的方向,但典型的控件是Silverlight及其早期的最新产品。

        7
  •  3
  •   Ray    17 年前

    一旦您了解了如何使用作为WPF一部分的不同面板结构,那么手工编写XAML确实比使用设计器更容易。我发现我可以比使用任何设计器更快地将控件键入表单,并且我可以更好地控制XAML的外观和布局。

    我只是偶尔使用设计器为窗体上已经存在的控件设置属性。我用Blend做动画,因为我还没有用XAML做动画。

        8
  •  2
  •   wj32    17 年前

    XAML可以与GladeXML相比较,GladeXML是一种用于存储基于GTK+的GUI的格式。与Windows窗体和WPF不同的是,GTK+实际上是明智的,因为它使用相对定位。在Windows窗体中,当人们开始自定义字体时,绝对定位就变成了一个PITA,而您的GUI看起来像垃圾,有大量的文本剪辑。

    相对定位很容易手工编码,不像绝对定位,因为你不需要计算出坐标!

        9
  •  0
  •   vava    17 年前

    因为它更好地进入版本控制系统,所以其他人可以同时更改它而不会产生冲突?因为您可以在emacs中开发整个应用程序?因为你可以很容易地为这些东西编写生成器和检查器?因为很容易控制这个GUI如何查找每个小细节?

        10
  •  0
  •   Turing Complete    16 年前

    我打字。

    我最讨厌的莫过于设计师的草率、不确定性和难以控制的输出,不管是HTML还是XAML。

    我首先将整个东西分割成一个网格,在所有东西上放置一个精确的像素大小(除了奇数的“自由浮动”空间,我在其中放置“*”),决定什么放在哪里,然后我还添加注释和空行来构造XAML。

    此外,我拒绝每一个不符合这个标准的XAML,因为它“不可用”,这具有很好的教育效果。

    草率和对最佳实践的忽视是致命的罪过,我从不容忍它们。

    推荐文章