我一直在尝试使用 WPF 并在 Web 浏览器中渲染严格的 XAML 标记,也称为松散 XAML(解释为 这里这里).

我觉得它对于显示静态内容最有用。然而,绑定到 XML 数据提供者似乎也是可能的。

松散的 XAML 文件不与应用程序一起编译,这会产生以下限制:

  • 他们不允许外部组装
  • 不使用类、代码隐藏(或任何 C#)
  • 没有双向数据绑定

还有哪些额外限制?

  • 我还没有找到将数据绑定到数据库提供程序(SQL Server)的方法
  • 客户端计算机上是否需要 .NET Framework 才能在浏览器中呈现 XAML?
  • 搜索引擎是否能够询问松散的XAML以适当排名页面?

编辑:我尝试将 XML 数据提供程序绑定到 Web 服务(使用 简单的例子)但没有成功。这些发现引导我进行进一步的研究,我发现这不受支持:“ XMLDATAPROVIDER设计为仅阅读(换句话说,它没有提供提交更改的能力),并且无法处理可能来自其他来源的XML数据(例如数据库记录,网络服务消息,等等)。” -Matthew MacDonald, 专业WPF

有帮助吗?

解决方案

AFAIK 在 XAML 中定义连接字符串是不可能的。所以你无法访问你的 SQL 数据库。

笔记:但是可以使用 XmlDataProvider 将数据绑定到 Web 服务。所以这可能是你发送数据的一种方式......

编辑:顺便说一句,我发现了这个 沙盒环境的功能列表, ,当使用 XBAP 和松散的 XAML 时,您的应用程序正在其中运行。它有点过时了,但可能大多数限制仍然适用。

其他提示

至少需要框架 3.0 才能在 IE 中查看松散的 XAML 页面。您甚至可以通过在用户代理字符串中查找“.NET CLR 3.0”来在您的站点上进行检查。

数据库连接(即使可能)也不会直接在松散的 XAML 中完成,因为需要过程代码来打开连接。

我在托管动态语言运行时 (DLR) 和允许将脚本嵌入 XAML 方面做了很多工作。我现在觉得 Loose XAML 不是二等公民,因为我可以处理事件、编写值转换器、运行 Python/Ruby/JScript 来执行连接到 SQL Server 等操作。

看我的 博客 看看这个方向是否适合你。

我使用附加属性动态加载程序集 - 加载后,您可以以通常的方式引用程序集中的类。

因此,也回答这个问题,开箱即用的松散 XAML 有许多限制(例如无法将事件路由到事件处理程序),但这些可以通过一些工作来克服。

我仅将 XAML/WPF 用于桌面应用程序。希望其他人能够回答您浏览器的特定问题。

我有一个在商业工作中用于 DLR 托管和在 XAML 中嵌入 DLR 脚本的库,我一直打算将其变成受支持的产品。如果您对此感兴趣,请务必告诉我。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top