C# 从UWP运行时组件项目更新UWP应用程序UI的方法
我们可以从AppService更新UWP文本块的文本吗 在这里,我在不同的UWP运行时组件项目中使用应用程序服务,并将其作为UI项目的参考添加 所以我和UI没有直接的联系。但如果应用程序以活动状态运行,我需要更新UI 注意:我们可以展示烤面包片和活动瓷砖。但是我想知道直接更新用户界面的可能性 编辑:[18/3/18] 我正在尝试使用DesktopBridge将现有WPF应用程序合并到UWP中。在这里,我需要有两个应用程序之间的双向通信 因此,分别在WPF和UWP中创建了两个AppServices,以值集的形式发送和接收数据,并根据请求的数据更新UI 对于在同一项目中具有UI和AppService的WPF应用程序。对于UWP应用程序,将AppServices分离为运行时组件项目(进程外)。在这种情况下,两个AppServices在运行时都工作正常,但无法更新UWP UI(但能够更新WPF UI) 此外,我还尝试使用进程内服务,在本例中,两个AppServices都工作正常,但我无法建立从UWP到WPF的连接。所以我不能从UWP发送请求(WPF到UWP正在工作) 这就是我的实际问题。想知道我做得对吗?有没有办法解决这个问题或者其他更好的办法 以下是.appmanifest代码 与过程服务相同C# 从UWP运行时组件项目更新UWP应用程序UI的方法,c#,visual-studio,uwp,windows-10,background-task,C#,Visual Studio,Uwp,Windows 10,Background Task,我们可以从AppService更新UWP文本块的文本吗 在这里,我在不同的UWP运行时组件项目中使用应用程序服务,并将其作为UI项目的参考添加 所以我和UI没有直接的联系。但如果应用程序以活动状态运行,我需要更新UI 注意:我们可以展示烤面包片和活动瓷砖。但是我想知道直接更新用户界面的可能性 编辑:[18/3/18] 我正在尝试使用DesktopBridge将现有WPF应用程序合并到UWP中。在这里,我需要有两个应用程序之间的双向通信 因此,分别在WPF和UWP中创建了两个AppServices
<Extensions>
<uap:Extension Category="windows.appService">
<uap:AppService Name="com.mycompany.scanner.uwpappservice" />
</uap:Extension>
<uap:Extension Category="windows.appService">
<uap:AppService Name="com.mycompany.scanner.wpfappservice" />
</uap:Extension>
<desktop:Extension Category="windows.fullTrustProcess" Executable="Scanner.WPF.exe" />
</Extensions>
<Extensions>
<uap:Extension Category="windows.appService" EntryPoint="UWPApp.AppServiceLibrary.UWPAppService">
<uap:AppService Name="com.mycompany.scanner.uwpappservice" />
</uap:Extension>
<uap:Extension Category="windows.appService">
<uap:AppService Name="com.mycompany.scanner.wpfappservice" />
</uap:Extension>
<desktop:Extension Category="windows.fullTrustProcess" Executable="Scanner.WPF.exe" />
</Extensions>
作为程序外服务
<Extensions>
<uap:Extension Category="windows.appService">
<uap:AppService Name="com.mycompany.scanner.uwpappservice" />
</uap:Extension>
<uap:Extension Category="windows.appService">
<uap:AppService Name="com.mycompany.scanner.wpfappservice" />
</uap:Extension>
<desktop:Extension Category="windows.fullTrustProcess" Executable="Scanner.WPF.exe" />
</Extensions>
<Extensions>
<uap:Extension Category="windows.appService" EntryPoint="UWPApp.AppServiceLibrary.UWPAppService">
<uap:AppService Name="com.mycompany.scanner.uwpappservice" />
</uap:Extension>
<uap:Extension Category="windows.appService">
<uap:AppService Name="com.mycompany.scanner.wpfappservice" />
</uap:Extension>
<desktop:Extension Category="windows.fullTrustProcess" Executable="Scanner.WPF.exe" />
</Extensions>
您可以使用流程内应用程序服务,如中所述 应用程序服务现在可以在与前台相同的进程中运行 应用程序,使应用程序之间的通信更加容易 无需将服务代码分离到单独的项目中
这意味着您甚至不必将代码移动到单独的Windows运行时组件,如果UI处于活动状态,您可以通过
Window.Current
与UI通信。但是,您需要记住确保使用Dispatcher
操作UI的代码在UI线程上运行。您可以使用进程内应用程序服务,如中所述
应用程序服务现在可以在与前台相同的进程中运行
应用程序,使应用程序之间的通信更加容易
无需将服务代码分离到单独的项目中
这意味着您甚至不必将代码移动到单独的Windows运行时组件,如果UI处于活动状态,您可以通过
Window.Current
与UI通信。但是,您需要记住,使用Dispatcher
确保操作UI的代码在UI线程上运行。如果您已将AppService配置为在proc中与前台应用一起运行,则可以直接更新UI。如果AppService的proc已用完,则需要向前台应用发送请求,以代表您更新其UI,或者使用toast/tile通知
以下是有关如何使AppService在应用程序进程的proc中运行的一些信息:
对于已编辑的问题,使用的典型模式是:当WPF应用程序启动时,打开与UWP的应用程序服务连接。现在,两边都保留对AppServiceConnection对象各自实例的引用。通过这种方式,您可以进行双向通信,任何一方(UWP和WPF)都可以向另一方建立请求。如果您已将AppService配置为在proc中与前台应用程序一起运行,则可以直接更新UI。如果AppService的proc已用完,则需要向前台应用发送请求,以代表您更新其UI,或者使用toast/tile通知 以下是有关如何使AppService在应用程序进程的proc中运行的一些信息:
对于已编辑的问题,使用的典型模式是:当WPF应用程序启动时,打开与UWP的应用程序服务连接。现在,两边都保留对AppServiceConnection对象各自实例的引用。通过这种方式,您可以进行双向通信,任何一方(UWP和WPF)都可以向另一方发出请求。嗨,Stefan,我为我的问题添加了更多要点,请检查。谢谢。嗨,Stefan,我为我的问题增加了更多的分数,请检查。谢谢。嗨,马丁,我为我的问题增加了更多的分数,请检查。谢谢。嗨,马丁,我为我的问题增加了更多的分数,请检查。谢谢