Xaml不是WPF。

4

我有兴趣使用Xaml和Expression Blend创建应用程序的用户界面,但由于目标架构的限制,我不能使用WPF或C#。

因此,我感兴趣的是在任何拥有这种技术经验的人提供的示例/现有项目或建议中,使用Xaml作为规范语言而不是与WPF绑定的形式。

具体问题:

1)是否可以使用Blend + Xaml而无需WPF元素或无需C#支持类?

2)是否有其他实现Xaml解析器等的不同架构,并且它们能够与Blend或类似工具一起使用。

3)是否有可帮助解决此类问题的替代编辑器/设计工具?

我知道MyXaml和MycroXaml项目,并在网上找到了很多关于Xaml的资源,但其中99%直接涉及WPF。这对于理解Xaml的概念很好,但对我需要的实现没有帮助。

非常感谢!

4个回答

3

你有查看过XAML规范吗?

http://download.microsoft.com/download/0/A/6/0A6F7755-9AF5-448B-907D-13985ACCF53E/[MS-XAML].pdf

如果你能等一下,XAML 2009和clr 4.0中的system.xaml.dll对你来说可能会很有用。

这是关于它的PDC演示。

http://channel9.msdn.com/pdc2008/TL36/

现在既然你说你不能使用C#,我猜想你可能无法使用.net框架?或者使用Mono。据我所知,没有计划在Mono中实现XAML支持。因此,你要么需要编写自己的XAML解析器和对象图,要么就得放弃。

当然,如果您愿意这样做,您可能需要等待XAML 2009规范,因为它对xaml语言进行了重大改进。
道格拉斯

你混淆了Mono对XAML和WPF的支持,XAML是一种XML序列化/对象图表示。WPF和Silverlight是可以选择使用XAML创建的图形工具包。自Silverlight 2.0以来,mono已经支持XAML很长时间了。现在(2010年12月),它支持在Linux桌面上使用mono编写运行Silverlight 3.0应用程序,但项目的构建过程有点手动。通过一些仔细的工作,您可以在mono上部署Silverlight 3.0桌面应用程序,但目前远非易事。 - IanNorton

3

Silverlight对你有什么帮助吗?现在有一个Eclipse插件可供您使用Silverlight与eclispe。因此,您将能够使用Expression blend设计您的用户界面,并使用Java进行后端编码(我认为这是未来计划)。请查看此链接以了解更多详情。http://www.eclipse4sl.org/


1

我正在使用基于XAML的XML文档作为新的AppMaker v3的核心。目前我正在用Ruby解析它,以生成各种输出,包括纯XAML/C# WPF应用程序。

XAML非常容易解析,特别是如果您采用XPath方法:

windows = []
REXML::XPath.each(doc, "//Window") do |xml|
  windows << Window.new(xml)
end

#... invoking ...

@items = []
xml.each_element("Canvas/*") do |itemXML|
  @items << WindowItem.makeItem(itemXML)
end

真正的问题在于我们需要更多的信息,了解你正在尝试生成什么样的 GUI。Canvas 明确的位置布局在 XAML 中易于解析,可以生成一些简单的 Win32 控件和绘图。如果你涉及基于约束的布局(如 StackPanel),那么你将不得不重新创建许多 WPF 行为。


0

如果您不使用WPF,那么Xaml作为其核心实际上并不比XML更好。 Xaml有一些变体,但它们本质上是以库的形式提供的附加功能。 您可以使用Vanilla Xaml作为基础,但然后您基本上必须构建一个解析器来读取它,然后是一个代码框架,它基本上映射到该解析器。 Xaml不知道StackPanel是什么,它基本上将文本数据发送给任何知道它是什么的编译器进行编译,这是您将要错过的部分,而且这是一个相当重要的部分。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接