我有另一个建议你 - 真正的问题是:
“我想,让一个屏幕的简单的布局在运行 - 编辑通过编辑XAML的时间,有谁知道这是否可能?“
答案肯定是“YES”!有很多方法可以做到这一点,当然做一些假设。
如果您不需要在XAML的“动态”部分中处理事件或编写自定义值转换器(或其他任何通常会在代码中执行的操作),那么您可以简单地使用XamlReader类来解析包含XAML的XAML文件或字符串。既然你只是编辑布局,我认为这些假设是正确的。
所以,这里是我会做什么:
1)撰写您所有的自定义控制,数据模型,数值转换器等,并且在装配他们坚持。
2)加载该程序集,可以通过让应用程序引用它或动态加载它 - 两者都可以工作。
3)创建一个字符串/文件/资源(可以选择),它具有用于布局的XAML,并将.NET名称空间映射到XML名称空间。确保根元素没有“x:Class”属性,因为您没有代码背后的代码!该字符串将使用标准的WPF控件(如StackPanel)来布局自定义控件。 (当然你也可以编写自定义布局控件)。
4)允许用户编辑此字符串。当他们编辑它时,使用XamlReader解析文件,然后在窗口中显示生成的UIElement。
BINGO!
一个问题 - 每次更改XAML时,都会抛出GUI并创建一个新的问题。如果你的图形用户界面是健康的(即使当前的插入符号位置很重要),用户会很快感到恼火。这取决于你打算使用什么 - 这可能不是问题。
我希望通过一些更多的工作,您可以编写一个MarkupExtension,用于引用您尝试布局的部分。这样,布局更改时可以重用它们。
我希望这很清楚。如果没有,让我知道,我可以扩展这个概念 - 它会创建一个不错的博客条目。
FWIW,我能用FF3打开它。如果有问题,我安装.NET 3.5SP1。 – Andy 2008-12-01 17:23:53
但它并没有真正回答这个问题。操作系统明确指出,这是一个WPF应用程序,所以XAML在Web浏览器中显示的能力完全没有意义。 – GalacticCowboy 2008-12-01 18:54:31
我使用'Web浏览器'来解释LooseXAML概念的更多特征。 – 2008-12-02 22:38:45