你如何管理庞大且难以维护的XAML文件?

时间:2008-11-05 12:30:56

标签: wpf silverlight xaml expression-blend

我在Silverlight中遇到XAML文件时遇到了真正的困难,因为在使用Blend时它们变得非常快。只需添加少量控件并设置动画后,它就会变成文本墙。

我希望很快会有更好的Blend版本出现,这样我们的设计师就不会再看到XAML了。但是现在,这不是一个解决方案 - XAML仍然需要手动管理,这是一个令人沮丧的任务。

有没有人找到解决方案?你如何保持你的XAML文件的顺序?当他们变大时,你如何理解他们?

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

3 个答案:

答案 0 :(得分:11)

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

例如,我们使用一个方案,我们有一个像这样的文件夹结构:

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

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

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

答案 1 :(得分:7)

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

在Blend中,您可以从“对象和时间线”窗口中选择一个画布/网格等...,右键单击它,然后您将获得“制作控制...”选项。这样可以快速重新分解和模块化我们的主XAML文件。然后,我们使用事件来允许用户控件在彼此之间进行通信。

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

答案 2 :(得分:2)

我是一名创意开发人员,并广泛参与Blend。

我去年在keeping XAML clean发表了一些想法。

Silverlight目前不支持MergedResourceDictionaries所以很难将XAML分解为单独的ResourceDictionary文件,正如我在another post中所建议的那样。

Paul Stovell也有一些有趣的guidelines for XAML