WPF-从WPF应用程序切换到xbap

WPF-从WPF应用程序切换到xbap,wpf,xbap,Wpf,Xbap,我有一个工作WPF应用程序。我希望看到它作为xbap运行。我需要在我的WPF应用程序中更改什么才能使其作为xbap运行?当涉及到可以以图形方式执行的操作时,两者之间的唯一区别是xbap不能使用位图效果。除此之外,沙箱安全问题几乎是您需要处理的唯一问题。大多数纯WPF程序应该平稳过渡 看看这个 这是一个例子 基于此,您可以进行一个相当简单的重构,以适应程序的WPF和XBAP 首先,将所有WPF代码移动到 与核心分离的.dll项目 WPF EXE项目。在核心WPF EXE项目中引用此项目 修改EX

我有一个工作WPF应用程序。我希望看到它作为xbap运行。我需要在我的WPF应用程序中更改什么才能使其作为xbap运行?

当涉及到可以以图形方式执行的操作时,两者之间的唯一区别是xbap不能使用位图效果。除此之外,沙箱安全问题几乎是您需要处理的唯一问题。大多数纯WPF程序应该平稳过渡

看看这个

这是一个例子

基于此,您可以进行一个相当简单的重构,以适应程序的WPF和XBAP

  • 首先,将所有WPF代码移动到 与核心分离的.dll项目 WPF EXE项目。在核心WPF EXE项目中引用此项目
  • 修改EXE项目的App.xaml以指向 从.dll下载您的主页 项目
  • 创建一个新的XBAP项目
  • 在XBAP项目中引用上述dll项目
  • 修改XBAP项目的App.xaml以从.dll指向主页面
  • 发布并运行
    是的,我们可以在XBAP中使用Windows。
    但第一个对象必须是页面,因为页面将显示在浏览器上。您可以在页面上放置一个按钮,然后从中打开窗口。

    谢谢Randolpho,这很好,但我在xbap中尝试使用“窗口”而不是“页面”时出错。这是否意味着我不能在xbap中使用任何窗口对象?不幸的是,这是限制之一——xbap中没有模式窗口。AFAIK您可以在xbap中使用模式窗口,但它们被称为“子窗口”。