我在我的 asp.net 项目解决方案中创建了另一个 WPF 项目,现在想在我的 Web 应用程序中使用我的 WPF 控件。是否可以在我的 Web 项目中使用 wpf 控件?我在互联网上发现有人说您必须将 Silverlight 用于网络应用程序。据我所知,silverlight 是 WPF 的子部分,那么为什么我不能使用 WPF 呢??我必须使用 WPF 控件,因为已经做了足够的努力来构建 wpf 控件,现在想在 Web 应用程序中使用。
6 回答
是的,您可以在网页中嵌入 WPF 控件,但您需要启用相关插件(很像 Silverlight)。
例如,用于 WPF 的 Xceed Datagrid可在 Internet Explorer 中查看。
尽管默认情况下禁用 XAML 应用程序,但您需要在 Internet Explorer 安全设置中启用它们。
至于 Firefox,您将需要 .Net Framework Assistant 和MSDN建议的 WPF 插件。
WPF 是一个非常棒的框架,启用基于 WPF/XAML 的应用程序以供 Intranet 使用会很好(您可以通过组策略继承安全权限),或者对于不介意额外配置的一组受众。
虽然有很多方法可以做到这一点(本页面上的其他用户已经提到过),但依靠您的访问者在他们的浏览器中配置或安装插件意味着实现这一点非常危险(假设您的目标是 WWW 而不仅仅是本地用户)。
我会考虑构建一个 Web 应用程序 UI,并通过类库引用所有内容(如果使用 N 层设计)
不管有没有可能,使用嵌入在 html 页面中的 WPF 控件实在是太可怕了。
经典的 WPF 控件可能正在运行(更改浏览器设置后),但存在许多安全问题。此外,您必须在任何人看到真实页面之前向您的用户展示一个待办事项列表。
Silverlight 作为 WPF 的子集,但它也是一个插件,并非适用于所有平台,例如 iOS。
我推荐使用 HTML 5,它本身就是一个标准并且可以在所有其他平台上查看。它会引起更多的努力,但绝对值得。
不,您不能在网页中使用 WPF。WPF 适用于 Windows 应用程序,只能在 Windows 机器上运行。互联网与设备无关,将在 Windows、Linux、Android、iOS 等平台上运行。因此,您需要对 Web 应用程序使用 ASP .NET(或类似的),对 Windows 使用 WPF。
Silverlight 是 WPF 的一个子集,可以在网页上运行……但并非所有设备都支持它(即 iOS)。因此,如果您真的想成为系统不可知论者并忠实于 Web 的精神,请使用 HTML/CSS 和 JavaScript。
实现这一目标的唯一方法是使用 Silverlight 组件而不是 WPF。正如您所说,silverlight 是 WFP 的子集,因此并非支持所有 WPF 功能,但支持 silverlight runner。在大多数情况下,视觉效果是完全兼容的,即用户控件,所以如果你没有使用任何特定于 WPF 的东西,那么你应该是伟大的。
也许在这里检查:
顺便说一句,您可以发布您的 xaml,以便我们了解一下吗?
马可
我相信您可以使用 XML WPF 浏览器应用程序来执行此操作,但我可能不推荐它,因为我认为您的用户必须下载客户端组件才能运行它。以下链接提供了更多信息。