如何使用户可以灵活地定制XAML视图?

时间:2017-01-30 08:27:42

标签: c# wpf xaml

我们的经理希望我们正在开发的WPF应用程序可以完全为用户定制。所以我们假设页面上有一个文本框。他希望用户能够将它放在他想要的任何位置,使其具有他想要的任何颜色或字体,等等。现在,实现的目的是将每个属性存储在SQL数据库中,然后在您的数据库中构建视图代码背后。

在我看来,这是一个糟糕的实施,因为它减缓了整个过程。当我浏览页面时,加载时间至少为10秒,其中后面的代码获取所有属性,将它们转换为对象,将对象实现到视图中,然后创建该视图。我认为必须有更好的方法来做到这一点,因为它吸收了大量的时间和资源。有没有更好的实现呢?

1 个答案:

答案 0 :(得分:2)

有很多方法可以做到这一点,但是如果你需要拥有"一切都可以改变"然后......有一种快速的方法,甚至没有任何外部工具。

默认情况下,XAML被编译并包含在.exe / .dll中,但XAML可以从文件/字符串/中动态加载。将XAML放在一个文本文件中(它已经是),将编译选项更改为不编译它,但包含为" content"并且"始终复制",动态加载该文件(XmlReader.Load method)。

现在用户可以编辑XAML,应用程序将收听它。

当然:

  • 每次更改文件后都需要重新加载/重新启动app / window / etc
  • 他们现在可以在UI图层中更改所有
  • 他们必须正确编辑文件,他们可能需要一些基本的培训
  • 您的应用可能变得更复杂,因为现在更难在UI上找到正确的控件,但如果您使用VM和Bindings和命令,那么您本身就可以安全地使用它问题(如果你不使用那种方法,那么......考虑开始)