【问题标题】:Is XAML in WPF equivalent of .Designer.cs in Windows Forms apps?WPF 中的 XAML 是否等同于 Windows 窗体应用程序中的 .Designer.cs?
【发布时间】:2009-08-05 16:35:54
【问题描述】:

WPF 中的 XAML 是否等同于 Windows 窗体应用中的 .Designer.cs?

它只是为 UI 提供编译时状态吗?

我不确定,但看起来您可以在运行时使用 XAML 以编程方式执行操作。

如果我有一个在运行时添加所有内容的基本 UI 状态,那么我应该在 XAML 内容之外寻找吗?

【问题讨论】:

    标签: c# .net wpf winforms xaml


    【解决方案1】:

    以这种方式查看 XAML 可能是安全的 - 尽管它并不完全准确。 XAML 被编译成 BAML,并在运行时解析 - 其中 Windows 窗体设计器.cs 文件只是设计器构建的另一个 C# 文件。 XAML 永远不会直接翻译成 C#。

    不过,您可以通过代码在 XAML 中完成所有操作。 Charles Petzold 的WPF book 实际上采用了这种方法。在他引入 XAML 之前,它在代码中构建了整个 WPF 应用程序。

    【讨论】:

    • 谢谢里德。那么有理由直接使用 XAML 构建东西吗?我认为只有在需要设置初始 UI 时,才应该使用 XAML。你还认为 Petzold 的书是最好的 wpf 书吗?
    • 我其实并不喜欢 Petzold 的书。他先做所有的代码,我理解,但认为这很难学习。我更喜欢这本书:apress.com/book/view/1590599551 - XAML 比代码有很多优势 - 它有助于保持良好的关注点分离(尤其是如果您使用 MVVM),保持 UI 干净等。您可以使用WPF 数据绑定——甚至在几乎没有看起来完全动态的代码的情况下用 XAML 制作东西。使用 XAML 更容易保持 UI 设计和代码设计分离、灵活、简洁和干净。
    • 感谢 Reed,感谢您的洞察力。
    【解决方案2】:

    除了里德的意见,我还应该提一下:

    • XAML 使用 XML 语法定义 UI,但 Form 不使用。
    • 在 XAML 中,使用代码隐藏设计更容易将 UI 与逻辑分开。由于 UI 只是 XML,它们的设计可以完全独立于任何代码隐藏更改。
    • 像按钮这样的小改动,您可以在其中设置内容而不是文本,因此您可以设置任何内容,而它只能是文本。
    • 数据绑定和依赖属性在 WPF 与 Windows.Form 的映射中更容易更好
    • 处理您的设计的非常简单和酷的方式,因为您可以在网上找到许多很酷的示例。
    • 您可以使用 Snoop 等工具来可视化您的 3D 设计,并且可以通过选择 UI 来检查和验证您的所有控件和事件。您可以查看哪些事件已处理或未处理。这是一个非常酷的工具,您可以找到类似的工具。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-04
      • 2010-10-03
      • 1970-01-01
      • 2012-06-06
      相关资源
      最近更新 更多