7

我在 Silverlight 中处理 XAML 文件时遇到了真正的困难,因为它们在使用 Blend 时变得非常快。在添加和动画化了少数控件之后,它就变成了一堵文字墙。

我希望Blend 的更好版本很快就会问世,这样我们的设计人员甚至都不必看到XAML。不过,就目前而言,这不是一个解决方案——XAML 仍然需要手动管理,这是一项令人沮丧的任务。

有没有人找到解决方案?如何保持 XAML 文件井井有条?当它们变大时,您如何理解它们?

编辑:我对 Silverlight 解决方案特别感兴趣,因为 Silverlight 不支持最明显的 WPF 解决方案 - 将内容拆分为资源字典。

4

3 回答 3

12

维护 XAML 文件确实需要一些工作,但基本上,您需要做的是使用对您有意义的方案将它们拆分为资源文件(XAML 资源字典)。

例如,我们使用一个具有如下文件夹结构的方案:

  • 资源(包含代表用户控件和页面的 XAML 文件)

    • 模具(带有形状的 XAML 文件)
    • 样式(带有样式的 XAML 文件)
    • 刷子 ( ... )
      • 共享
    • 模板 ( ... )

您的结构可能会有所不同,但从长远来看,将所有资源分隔在不同文件中确实会使维护更加容易。

于 2008-11-05T12:42:55.643 回答
8

自 1 月份私人发布以来,我一直在使用 Silverlight 2,我们遇到了这个问题,我们所有的 XAML 都在一个大文件中。作为最佳实践,我们所做的是将用户界面分解为基于视觉分类的单独用户控件(页眉、页脚、导航控件等)。最初我们尝试使用嵌套画布(网格尚未添加到框架中)后来这变成了维护的噩梦。

在 Blend 中,您实际上可以从 Objects and Timeline 窗口中选择 Canvas/grid 等...,右键单击它,然后您将获得“Make Control..”选项,这有助于快速重构和模块化我们的主 XAML 文件. 然后我们使用事件来允许用户控件相互通信。

希望这会有所帮助,祝你好运!

于 2008-11-06T22:55:41.007 回答
2

我是一名创意开发人员,在 Blend 广泛工作。

去年我发表了一些关于保持 XAML 清洁的想法。

Silverlight 当前不支持 MergedResourceDictionaries,因此很难按照我在另一篇文章中的建议将 XAML 分解为单独的 ResourceDictionary 文件。

Paul Stovell 也有一些有趣的 XAML 指南

于 2008-11-05T18:55:26.313 回答